The branch, frodo has been updated
via 7539e8f8fc9122e7ca581da8e5e5bdb2d9586c94 (commit)
via 9bfd8a6e01a0d43b1bd8f8a540eed0b1201754ad (commit)
via b1d993ed06562b71247c356b37218485782827c0 (commit)
via f8fd11d32759e9bd61201cfe4d9514783ca84f6e (commit)
from 685ed112a9560cd02f925ecc511f5ca50214ae16 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=7539e8f8fc9122e7ca581da8e5e5bdb2d9586c94
commit 7539e8f8fc9122e7ca581da8e5e5bdb2d9586c94
Author: sphere <sph...@dersphere.de>
Date: Tue Jul 15 16:32:32 2014 +0200
[plugin.audio.dr.dk.netradio] updated to version 2.1.7
diff --git a/plugin.audio.dr.dk.netradio/addon.py
b/plugin.audio.dr.dk.netradio/addon.py
index 72db923..7517dc8 100644
--- a/plugin.audio.dr.dk.netradio/addon.py
+++ b/plugin.audio.dr.dk.netradio/addon.py
@@ -31,7 +31,7 @@ import xbmcvfs
import channels
import buggalo
-CHANNELS_URL = 'http://www.dr.dk/radio/external/channels?mediaType=radio'
+CHANNELS_URL =
'http://www.dr.dk/mu-online/api/1.0/channel/all-active-dr-radio-channels'
def showOverview():
@@ -55,25 +55,28 @@ def showDRChannels():
showError(str(ex))
return
- for channel in channelList['Data']:
+ for channel in channelList:
+ title = channel['Title']
+ if title[0:3] == 'DR ':
+ title = title[3:]
sourceUrl = channel['SourceUrl']
logoImage = os.path.join(LOGO_PATH, sourceUrl[sourceUrl.rindex('/') +
1:] + '.png')
if xbmcvfs.exists(logoImage):
- item = xbmcgui.ListItem(channel['Title'], iconImage=logoImage)
+ item = xbmcgui.ListItem(title, iconImage=logoImage)
else:
- item = xbmcgui.ListItem(channel['Title'], iconImage=ICON)
+ item = xbmcgui.ListItem(title, iconImage=ICON)
item.setProperty('IsPlayable', 'true')
item.setProperty('Fanart_Image', FANART)
item.setInfo(type='music', infoLabels={
- 'title': channel['Title']
+ 'title': title
})
url = None
if 'StreamingServers' in channel:
for server in channel['StreamingServers']:
- if 'LinkType' in server and server['LinkType'] == 'Streaming'
and 'Qualities' in server:
+ if 'LinkType' in server and server['LinkType'] == 'ICY' and
'Qualities' in server:
try:
url = server['Server'] + '/' +
server['Qualities'][0]['Streams'][0]['Stream']
break
@@ -81,7 +84,7 @@ def showDRChannels():
pass
if url:
- xbmcplugin.addDirectoryItem(HANDLE, url + ' live=1', item)
+ xbmcplugin.addDirectoryItem(HANDLE, url, item)
xbmcplugin.addSortMethod(HANDLE, xbmcplugin.SORT_METHOD_TITLE)
xbmcplugin.endOfDirectory(HANDLE)
diff --git a/plugin.audio.dr.dk.netradio/addon.xml
b/plugin.audio.dr.dk.netradio/addon.xml
index 870d7d7..5dbd5aa 100644
--- a/plugin.audio.dr.dk.netradio/addon.xml
+++ b/plugin.audio.dr.dk.netradio/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="plugin.audio.dr.dk.netradio"
- version="2.1.5"
+ version="2.1.7"
name="Danish Netradio"
provider-name="stemann, twinther">
<requires>
diff --git a/plugin.audio.dr.dk.netradio/changelog.txt
b/plugin.audio.dr.dk.netradio/changelog.txt
index 6ce2ea3..7f60f78 100644
--- a/plugin.audio.dr.dk.netradio/changelog.txt
+++ b/plugin.audio.dr.dk.netradio/changelog.txt
@@ -1,4 +1,11 @@
-[B]Version 2.1.5 - 2013-02-02[/B]
+[B]Version 2.1.7 - 2014-07-13[/B]
+- Added myRock
+- Fixed DR channels
+
+[B]Version 2.1.6 - 2014-03-20[/B]
+- Switched DR channels to icecast streams to receive metadata about songs
played
+
+[B]Version 2.1.5 - 2014-02-02[/B]
- Fixed DR channels
- Added Globus Guld
diff --git a/plugin.audio.dr.dk.netradio/channels.py
b/plugin.audio.dr.dk.netradio/channels.py
index 1f423d1..a384fe3 100644
--- a/plugin.audio.dr.dk.netradio/channels.py
+++ b/plugin.audio.dr.dk.netradio/channels.py
@@ -50,3 +50,4 @@ Channel(18, 'Skala.fm', 'shout://netradio.skala.fm/high')
Channel(19, 'Radio Mojn', 'shout://mojn.radiostreaming.dk:8050/')
Channel(20, 'Radio Skive', 'shout://skive.radiostreaming.dk:8050/')
Channel(21, 'Globus Guld', 'shout://media.wlmm.dk:80/guld')
+Channel(22, 'myRock', 'shout://stream.myrock.fm/myrock128')
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=9bfd8a6e01a0d43b1bd8f8a540eed0b1201754ad
commit 9bfd8a6e01a0d43b1bd8f8a540eed0b1201754ad
Author: sphere <sph...@dersphere.de>
Date: Tue Jul 15 16:31:46 2014 +0200
[plugin.video.filmsforaction] updated to version 1.0.2
diff --git a/plugin.video.filmsforaction/addon.xml
b/plugin.video.filmsforaction/addon.xml
index 686930d..c72412c 100644
--- a/plugin.video.filmsforaction/addon.xml
+++ b/plugin.video.filmsforaction/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.filmsforaction" name="Films For Action"
version="1.0.1" provider-name="Jose Antonio Montes (jamontes)">
+<addon id="plugin.video.filmsforaction" name="Films For Action"
version="1.0.2" provider-name="Jose Antonio Montes (jamontes)">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
<import addon="plugin.video.youtube" version="4.4.8"/>
diff --git a/plugin.video.filmsforaction/changelog.txt
b/plugin.video.filmsforaction/changelog.txt
index 20e4744..cd093f5 100644
--- a/plugin.video.filmsforaction/changelog.txt
+++ b/plugin.video.filmsforaction/changelog.txt
@@ -1,3 +1,8 @@
+1.0.2
+- Added Travis-CI integration support for scraper API testing.
+- Added support for Disclose TV videos.
+- Modified video list parser due to website changes.
+- Improved Search option for retrieve all kind of videos.
1.0.1
- Added mail tag into addon.xml file.
- Added settings.xml encoding line.
diff --git a/plugin.video.filmsforaction/resources/lib/ffa_api.py
b/plugin.video.filmsforaction/resources/lib/ffa_api.py
index ae8e060..599d55e 100644
--- a/plugin.video.filmsforaction/resources/lib/ffa_api.py
+++ b/plugin.video.filmsforaction/resources/lib/ffa_api.py
@@ -20,7 +20,7 @@
Description:
These funtions are called from the main plugin module, aimed to ease
and simplify the add-on development process.
- Release 0.1.5
+ Release 0.1.6
'''
import lutil as l
@@ -50,11 +50,11 @@ def get_categories():
def get_videolist(url, localized=lambda x: x):
"""This function gets the video list from the FFA website and returns them
in a pretty data format."""
- video_entry_sep = '<div class="content-view view-horizontal
clearfix">'
+ video_entry_sep = '<div class="content-view view-horizontal
clearfix ">'
video_urls_pattern = '<div class="content-image-wrapper">[^<]*?<a
href=\'([^"]*?)\'><img class="[^"]*?" data-original="([^"]*?)"'
video_title_pattern = '<div class="content-name">[^<]*?<a
href="[^"]*?">([^<]*?)</a>'
video_plot_pattern = '<div class="content-text">([^<]*?)</div>'
- video_info_pattern = '<div class="content-info"><a
href="[^"]*?">([^<]*?)</a>([^<]*?)<a href="[^"]*?">([^<]*?)</a></div>'
+ video_info_pattern = '<div class="content-info"><a
href="[^>]*?>([^<]*?)</a>([^<]*?)<a href="[^>]*?>([^<]*?)</a></div>'
video_duration_pattern = ' ([0-9]*?) min '
video_rating_pattern = ' ([0-9.]*?) stars '
page_count_pattern = '<span
id="C_SR_LabelResultsCount[^"]*?">([0-9]*?)-([0-9]*?) of ([0-9]*?)
[^<]*?</span>'
@@ -83,6 +83,7 @@ def get_videolist(url, localized=lambda x: x):
title = l.find_first(video_section, video_title_pattern)
plot = l.find_first(video_section, video_plot_pattern)
category, info, author = l.find_first(video_section,
video_info_pattern) or ('', '', '')
+ l.log('Video info. url: "%s" thumb: "%s" title: "%s" category: "%s"' %
(url, thumb, title, category))
if category in ('Video', 'Short Film', 'Trailer', 'Documentary',
'Presentation'): # This is to avoid blog posts yielded from Search.
duration = l.find_first(info, video_duration_pattern)
rating = l.find_first(info, video_rating_pattern)
@@ -109,7 +110,7 @@ def get_videolist(url, localized=lambda x: x):
def get_search_url(search_string):
"""This function returns the search encoded URL to find the videos from
the input search string"""
- return 'http://www.filmsforaction.org/search/?t=4937&s=' +
l.get_url_encoded(search_string)
+ return 'http://www.filmsforaction.org/search/?s=' +
l.get_url_encoded(search_string)
def get_playable_url(url):
@@ -126,6 +127,7 @@ def get_playable_url(url):
('snagfilms1', '
src="http://embed.snagfilms.com/embed/player\?filmId=([^"]*?)"', 'snagfilms'),
('kickstarter1', ' src="(https://www.kickstarter.com/[^"]*?)"',
'kickstarter'),
('tagtele1', ' src="(http://www.tagtele.com/embed/[^"]*?)"',
'tagtele'),
+ ('disclosetv1', ' src="(http://www.disclose.tv/embed/[^"]*?)"',
'disclosetv'),
)
buffer_url = l.carga_web(url)
@@ -197,3 +199,15 @@ def get_playable_tagtele_url(tagtele_url):
buffer_link = l.carga_web(tagtele_url)
return l.find_first(buffer_link, pattern_tagtele_video)
+
+def get_playable_disclosetv_url(disclose_url):
+ """This function returns the playable URL for the Disclose TV embedded
video from the video link retrieved."""
+ pattern_disclose_location = 'location.href="(.+?)"'
+ pattern_disclose_video = '{ url: "(.+?)"'
+
+ buffer_link = l.carga_web(disclose_url)
+ location_link = l.find_first(buffer_link, pattern_disclose_location)
+ if location_link:
+ location_url = 'http://www.disclose.tv%s1280&height=720&flash=11&url='
% location_link
+ buffer_link = l.carga_web(location_url)
+ return l.find_first(buffer_link, pattern_disclose_video)
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=b1d993ed06562b71247c356b37218485782827c0
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=f8fd11d32759e9bd61201cfe4d9514783ca84f6e
commit f8fd11d32759e9bd61201cfe4d9514783ca84f6e
Author: sphere <sph...@dersphere.de>
Date: Tue Jul 15 16:15:55 2014 +0200
[plugin.video.tvvn] updated to version 0.9.3
diff --git a/plugin.video.tvvn/addon.xml b/plugin.video.tvvn/addon.xml
index 4162bfc..0dd62bc 100644
--- a/plugin.video.tvvn/addon.xml
+++ b/plugin.video.tvvn/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="plugin.video.tvvn"
- version="0.9.1"
+ version="0.9.3"
name="TV Viet Nam"
provider-name="Binh Nguyen">
<requires>
@@ -13,11 +13,14 @@
<extension point="xbmc.addon.metadata">
<platform>all</platform>
<language>en vi</language>
+ <website>http://zecoj.com</website>
+ <source>https://github.com/zecoj/xbmc-tvvn</source>
<summary lang="en">TV Viet Nam</summary>
<summary lang="vi">TV Viá»t Nam</summary>
<description lang="en">This plugin allows you to watch live TV
channels or listen to radio stations in Viet Nam or from oversea providers
straight from the XBMC interface, thus eliminates the needs for using browsers
and flashplayer, etc. Bug report at: zecoj.com. If you enjoy using the plugin,
consider donate via PayPal to b [AT] zecoj [DOT] com</description>
<description lang="vi">Xem trá»±c tiếp các kênh truyá»n
hình và các Äà i phát thanh từ Viá»t Nam và hải ngoại. If you
enjoy using the plugin, consider donate via PayPal to b [AT] zecoj [DOT]
com</description>
<disclaimer lang="en">All live streams are pulled from online
providers and in no way represent my views or opinions. I also hold no control
over the quality of the streams nor that of your internet connection
:)</disclaimer>
<disclaimer lang="vi">Tất cả live streams Äược tải
vá» từ các nhà cung cấp dá»ch vụ. Tác giả phần má»m nà y không
chá»u trách nhiá»m vá» ná»i dung của chúng.</disclaimer>
+ <license>GNU GENERAL PUBLIC LICENSE. Version 3, 29 June
2007</license>
</extension>
</addon>
diff --git a/plugin.video.tvvn/changelog.txt b/plugin.video.tvvn/changelog.txt
index 0d61363..c818a9c 100644
--- a/plugin.video.tvvn/changelog.txt
+++ b/plugin.video.tvvn/changelog.txt
@@ -1,3 +1,12 @@
+version 0.9.3 (11/07/2014):
+ * Futher changes to comply with Gotham
+
+version 0.9.2 (10/07/2014):
+ * Futher changes to comply with Gotham
+ * Error proof channel-list update
+ * This is the last version for Frodo (v12) future updates will be Gotham (v13)
+ only
+
version 0.9.1 (05/06/2013):
* Changes to comply with Frodo API. Frodo-only going forward.
diff --git a/plugin.video.tvvn/data.json b/plugin.video.tvvn/data.json
index 6f265ab..655882d 100644
--- a/plugin.video.tvvn/data.json
+++ b/plugin.video.tvvn/data.json
@@ -1,19 +1,26 @@
{
- "timestamp":"1370385663",
+ "timestamp":"0404119952",
"sources": {
+ "fpt": {
+ "url": "http://hlscache.fptplay.net.vn/live/",
+ "swfurl": "",
+ "pageurl": "",
+ "token": "",
+ "app": ""
+ },
"vtc": {
- "url": "rtmp://111.91.233.197/live",
+ "url": "rtmp://38.107.180.195:1935/live",
"swfurl": "http://vtc.com.vn/player_6_10_2011.swf",
"pageurl": "http://vtc.com.vn/live",
"token": "",
"app": ""
},
"tv24": {
- "url": "rtmpe://112.197.2.11:1935/live",
+ "url": "rtmpe://112.197.2.154:1935/live/",
"swfurl": "http://tv24.vn/getflash.ashx",
- "pageurl": "http://tv24.vn",
- "token": "!3zxcvbnm4@",
- "app": ""
+ "pageurl": "http://tv24.vn/LiveTV",
+ "token": "1b#K8!3zc65ends!",
+ "app": "live"
},
"xunghe": {
"url": "rtmp://118.69.176.149/live",
@@ -23,18 +30,331 @@
"app": ""
}
},
+ "directories": {
+ "root": {
+ "title": "root",
+ "logo": "",
+ "desc": "root menu",
+ "content": [
+ {"type":"_chn","id":"fpt_vtv1"},
+ {"type":"_chn","id":"fpt_vtv2"},
+ {"type":"_chn","id":"fpt_vtv3hd"},
+ {"type":"_chn","id":"fpt_vtv4"},
+ {"type":"_chn","id":"fpt_vtv6"},
+ {"type":"_chn","id":"fpt_vtv9"},
+ {"type":"_chn","id":"fpt_qpvn"},
+ {"type":"_chn","id":"fpt_antv"},
+ {"type":"_chn","id":"fpt_htvchd"},
+ {"type":"_chn","id":"fpt_thuanviethd"},
+ {"type":"_chn","id":"fpt_vtc1"},
+ {"type":"_chn","id":"fpt_vtc2"},
+ {"type":"_chn","id":"fpt_vtc3hd"},
+ {"type":"_chn","id":"fpt_vtc5"},
+ {"type":"_chn","id":"fpt_vtc6"},
+ {"type":"_chn","id":"fpt_vtc7"},
+ {"type":"_chn","id":"fpt_vtc10"},
+ {"type":"_chn","id":"fpt_vtc14"},
+ {"type":"_chn","id":"fpt_vtc16"},
+ {"type":"_chn","id":"fpt_onetv"},
+ {"type":"chn","id":"vtc_vtv1"},
+ {"type":"chn","id":"vtc_vtv2"},
+ {"type":"chn","id":"vtc_vtv3"},
+ {"type":"chn","id":"vtc_vtv4"},
+ {"type":"_chn","id":"tv24_vtv6"},
+ {"type":"_chn","id":"tv24_vtv9"},
+ {"type":"chn","id":"tv24_antv"},
+ {"type":"chn","id":"vtc_vtc1"},
+ {"type":"chn","id":"vtc_vtc2"},
+ {"type":"chn","id":"vtc_vtc10"},
+ {"type":"dir","id":"sctv"},
+ {"type":"dir","id":"vov"},
+ {"type":"dir","id":"local"}
+ ]
+ },
+ "sctv": {
+ "title": "SCTV Channels",
+ "logo": "sctv.png",
+ "desc": "SCTV hợp tác và sản xuất",
+ "content": [
+ {"type":"chn","id":"tv24_sctv1"},
+ {"type":"chn","id":"tv24_sctv2"},
+ {"type":"chn","id":"tv24_sctv3"},
+ {"type":"chn","id":"tv24_sctv4"},
+ {"type":"chn","id":"tv24_sctv5"},
+ {"type":"chn","id":"tv24_sctv6"},
+ {"type":"chn","id":"tv24_sctv7"},
+ {"type":"chn","id":"tv24_sctv8"},
+ {"type":"chn","id":"tv24_sctv9"},
+ {"type":"chn","id":"tv24_sctv10"},
+ {"type":"chn","id":"tv24_sctv11"},
+ {"type":"chn","id":"tv24_sctv12"},
+ {"type":"chn","id":"tv24_sctv13"},
+ {"type":"chn","id":"tv24_sctv14"},
+ {"type":"chn","id":"tv24_sctv15"},
+ {"type":"chn","id":"tv24_sctv16"},
+ {"type":"chn","id":"tv24_sctv17"},
+ {"type":"chn","id":"tv24_sctv18"}
+ ]
+ },
+ "vov": {
+ "title": "VOV Radio",
+ "logo": "vov.png",
+ "desc": "Äà i Tiếng nói Viá»t Nam",
+ "content": [
+ {"type":"chn","id":"vtc_vov1"},
+ {"type":"chn","id":"vtc_vov2"},
+ {"type":"chn","id":"vtc_vov3"},
+ {"type":"chn","id":"vtc_vov5"}
+ ]
+ },
+ "local": {
+ "title": "Local Stations",
+ "logo": "",
+ "desc": "Truyá»n hình Äá»a phÆ°Æ¡ng",
+ "content": [
+ {"type":"chn","id":"vtc_htv7"},
+ {"type":"chn","id":"vtc_htv9"},
+ {"type":"chn","id":"vtc_hn1"},
+ {"type":"chn","id":"trt1"}
+ ]
+ },
+ "oversea": {
+ "title": "Oversea Stations",
+ "logo": "",
+ "desc": "Truyá»n hình Hải ngoại",
+ "content": [
+ {"type":"chn","id":"vtv1"},
+ {"type":"chn","id":"vtv2"}
+ ]
+ }
+ },
"channels": {
- "vtv1": {
+ "fpt_vtv1": {
+ "title": "VTV1",
+ "logo": "vtv1.png",
+ "desc": "Thông tin tá»ng hợp",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtv1_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtv2": {
+ "title": "VTV2",
+ "logo": "vtv2.png",
+ "desc": "Khoa há»c, Giáo dục",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtv2_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtv3hd": {
+ "title": "VTV3 HD",
+ "logo": "vtv3.png",
+ "desc": "Thá» thao, Giải trÃ, Thông tin Kinh tế",
+ "src": {
+ "id":"fpt",
+ "playpath": "vtv3HD_1000.stream/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtv4": {
+ "title": "VTV4",
+ "logo": "vtv4.png",
+ "desc": "Kênh cho ngÆ°á»i Viá»t Nam á» nÆ°á»c ngoà i",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtv4_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtv6": {
+ "title": "VTV6",
+ "logo": "vtv6.png",
+ "desc": "Kênh cho Thanh, thiếu niên",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtv6_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtv9": {
+ "title": "VTV9",
+ "logo": "vtv9.png",
+ "desc": "Kênh cho Khán giả miá»n Nam",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtv9_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_qpvn": {
+ "title": "QPVN",
+ "logo": "default.png",
+ "desc": "Kênh Truyá»n hình Quá»c phòng Viá»t Nam",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:quocphongHD_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_antv": {
+ "title": "ANTV",
+ "logo": "antv.png",
+ "desc": "Kênh An ninh Nhân dân",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:antv_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_thuanviethd": {
+ "title": "ThuanViet HD",
+ "logo": "default.png",
+ "desc": "Kênh vÄn hóa giải trà Viá»t Nam",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:htvcthuanvietHD_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_htvchd": {
+ "title": "HTVC+ HD",
+ "logo": "default.png",
+ "desc": "Thông tin tá»ng hợp",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:htvcplusHD_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_onetv": {
+ "title": "OneTV",
+ "logo": "default.png",
+ "desc": "Kênh giá»i thiá»u riêng của OneTV",
+ "src": {
+ "id":"fpt",
+ "playpath": "onetv_2500.stream/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc1": {
+ "title": "VTC1",
+ "logo": "vtc1.png",
+ "desc": "Thá»i sá»± tá»ng hợp",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc1_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc2": {
+ "title": "VTC2",
+ "logo": "vtc2.png",
+ "desc": "Khoa há»c, Công nghá»",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc2_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc3hd": {
+ "title": "VTC3 HD",
+ "logo": "default.png",
+ "desc": "Kênh thỠthao",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc3HD_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc5": {
+ "title": "VTC5",
+ "logo": "default.png",
+ "desc": "Kênh Phim truyá»n",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc5_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc6": {
+ "title": "VTC6",
+ "logo": "default.png",
+ "desc": "Kênh giải trà tá»ng hợp Saigon Channel",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc6_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc7": {
+ "title": "VTC7",
+ "logo": "default.png",
+ "desc": "Kênh tá»ng hợp TodayTV",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc7_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc10": {
+ "title": "VTC10",
+ "logo": "default.png",
+ "desc": "Kênh truyá»n hình chuyên biá»t vá» VÄn hóa
Viá»t",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc10_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc14": {
+ "title": "VTC14",
+ "logo": "default.png",
+ "desc": "Kênh truyá»n hình chuyên biá»t vá» môi trÆ°á»ng",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc14_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+ "fpt_vtc16": {
+ "title": "VTC16",
+ "logo": "default.png",
+ "desc": "Kênh truyá»n hình Nông nghiá»p và Nông thôn",
+ "src": {
+ "id":"fpt",
+ "playpath": "smil:vtc16_hls.smil/playlist.m3u8",
+ "referer": ""
+ }
+ },
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "vtc_vtv1": {
"title": "VTV1",
"logo": "vtv1.png",
"desc": "Thông tin tá»ng hợp",
"src": {
"id":"vtc",
- "playpath": "vtv11",
+ "playpath": "vtv11_h",
"referer": "VTV1/15"
}
},
- "vtv2": {
+ "vtc_vtv2": {
"title": "VTV2",
"logo": "vtv2.png",
"desc": "Khoa há»c, Giáo dục",
@@ -44,87 +364,87 @@
"referer": "VTV2/23"
}
},
- "vtv3": {
+ "vtc_vtv3": {
"title": "VTV3",
"logo": "vtv3.png",
"desc": "Thá» thao, Giải trÃ, Thông tin Kinh tế",
"src": {
"id":"vtc",
- "playpath": "vtv31",
+ "playpath": "vtv31_h",
"referer": "VTV3/3"
}
},
- "vtv4": {
+ "vtc_vtv4": {
"title": "VTV4",
"logo": "vtv4.png",
"desc": "Kênh cho ngÆ°á»i Viá»t Nam á» nÆ°á»c ngoà i",
"src": {
"id":"vtc",
- "playpath": "vtv4",
+ "playpath": "vtv4_h",
"referer": "VTV4/2"
}
},
- "vtc1": {
+ "vtc_vtc1": {
"title": "VTC1",
"logo": "vtc1.png",
"desc": "Thá»i sá»± tá»ng hợp",
"src": {
"id":"vtc",
- "playpath": "vtc11",
+ "playpath": "vtc11_h",
"referer": "VTC1/10"
}
},
- "vtc2": {
+ "vtc_vtc2": {
"title": "VTC2",
"logo": "vtc2.png",
"desc": "Khoa há»c, Công nghá»",
"src": {
"id":"vtc",
- "playpath": "vtc21",
+ "playpath": "vtc21_h",
"referer": "VTC2/11"
}
},
- "vtc10": {
+ "vtc_vtc10": {
"title": "VTC10",
"logo": "vtc10.png",
"desc": "Kênh VÄn hóa Viá»t",
"src": {
"id":"vtc",
- "playpath": "vtc101",
+ "playpath": "vtc101_h",
"referer": "VTC10/22"
}
},
- "htv7": {
+ "vtc_htv7": {
"title": "HTV7",
"logo": "htv7.png",
"desc": "Thông tin, Giải trÃ, Thá» thao",
"src": {
"id":"vtc",
- "playpath": "htv7",
+ "playpath": "htv7_h",
"referer": ""
}
},
- "htv9": {
+ "vtc_htv9": {
"title": "HTV9",
"logo": "htv9.png",
"desc": "ChÃnh trá», Xã há»i, VÄn hóa",
"src": {
"id":"vtc",
- "playpath": "htv91",
+ "playpath": "htv91_h",
"referer": ""
}
},
- "hn1": {
+ "vtc_hn1": {
"title": "HN1",
"logo": "",
"desc": "Hà Ná»i 1",
"src": {
"id":"vtc",
- "playpath": "hanoi11",
+ "playpath": "hanoi11_h",
"referer": ""
}
},
- "vov1": {
+ "vtc_vov1": {
"title": "VOV1",
"logo": "vov1.png",
"desc": "Thá»i sá»±, ChÃnh trá», Tá»ng hợp",
@@ -134,7 +454,7 @@
"referer": "VOV1/29"
}
},
- "vov2": {
+ "vtc_vov2": {
"title": "VOV2",
"logo": "vov2.png",
"desc": "VÄn hóa, Äá»i sá»ng, Khoa giáo",
@@ -144,7 +464,7 @@
"referer": "VOV2/28"
}
},
- "vov3": {
+ "vtc_vov3": {
"title": "VOV3",
"logo": "vov3.png",
"desc": "Ãm nhạc, Giải trÃ",
@@ -154,7 +474,7 @@
"referer": "VOV3/27"
}
},
- "vov5": {
+ "vtc_vov5": {
"title": "VOV5",
"logo": "vov5.png",
"desc": "Phát thanh Äá»i ngoại",
@@ -168,203 +488,253 @@
- "vtv6": {
+ "tv24_vtv1": {
+ "title": "VTV1",
+ "logo": "vtv1.png",
+ "desc": "Thông tin tá»ng hợp",
+ "src": {
+ "id":"tv24",
+ "playpath": "vtv1_3",
+ "referer": ""
+ }
+ },
+ "tv24_vtv2": {
+ "title": "VTV2",
+ "logo": "vtv2.png",
+ "desc": "Khoa há»c, Giáo dục",
+ "src": {
+ "id":"tv24",
+ "playpath": "vtv2_3",
+ "referer": ""
+ }
+ },
+ "tv24_vtv3": {
+ "title": "VTV3",
+ "logo": "vtv3.png",
+ "desc": "Thá» thao, Giải trÃ, Thông tin Kinh tế",
+ "src": {
+ "id":"tv24",
+ "playpath": "vtv3_3",
+ "referer": ""
+ }
+ },
+ "tv24_vtv4": {
+ "title": "VTV4",
+ "logo": "vtv4.png",
+ "desc": "Kênh cho ngÆ°á»i Viá»t Nam á» nÆ°á»c ngoà i",
+ "src": {
+ "id":"tv24",
+ "playpath": "vtv4_3",
+ "referer": ""
+ }
+ },
+ "tv24_vtv6": {
"title": "VTV6",
"logo": "vtv6.png",
"desc": "Kênh cho Thanh, thiếu niên",
"src": {
"id":"tv24",
- "playpath": "vtv6.stream",
+ "playpath": "vtv6_3",
"referer": ""
}
},
- "vtv9": {
+ "tv24_vtv9": {
"title": "VTV9",
"logo": "vtv9.png",
"desc": "Kênh cho Khán giả miá»n Nam",
"src": {
"id":"tv24",
- "playpath": "vtv9.stream",
+ "playpath": "vtv9_3",
+ "referer": ""
+ }
+ },
+ "tv24_antv": {
+ "title": "ANTV",
+ "logo": "antv.png",
+ "desc": "Kênh An ninh Nhân dân",
+ "src": {
+ "id":"tv24",
+ "playpath": "antv_2",
"referer": ""
}
},
- "sctv1": {
+ "tv24_sctv1": {
"title": "SCTV1",
"logo": "sctv.png",
"desc": "HÃ i",
"src": {
"id":"tv24",
- "playpath": "SDsctv1.stream",
+ "playpath": "sctv1_2",
"referer": ""
}
},
- "sctv2": {
+ "tv24_sctv2": {
"title": "SCTV2",
"logo": "sctv.png",
"desc": "Yan TV: Ãm nhạc quá»c tế",
"src": {
"id":"tv24",
- "playpath": "SDsctv2.stream",
+ "playpath": "sctv2_2",
"referer": ""
}
},
- "sctv3": {
+ "tv24_sctv3": {
"title": "SCTV3",
"logo": "sctv.png",
"desc": "Sao TV: Thiếu nhi",
"src": {
"id":"tv24",
- "playpath": "SDsctv3.stream",
+ "playpath": "sctv3_2",
"referer": ""
}
},
- "sctv4": {
+ "tv24_sctv4": {
"title": "SCTV4",
"logo": "sctv.png",
"desc": "Giải trà tá»ng hợp",
"src": {
"id":"tv24",
- "playpath": "SDsctv4.stream",
+ "playpath": "sctv4_2",
"referer": ""
}
},
- "sctv5": {
+ "tv24_sctv5": {
"title": "SCTV5",
"logo": "sctv.png",
"desc": "Shopping TV: Mua sắm SCJ",
"src": {
"id":"tv24",
- "playpath": "SDsctv5.stream",
+ "playpath": "sctv5_2",
"referer": ""
}
},
- "sctv6": {
+ "tv24_sctv6": {
"title": "SCTV6",
"logo": "sctv.png",
"desc": "Sóng nhạc",
"src": {
"id":"tv24",
- "playpath": "SDsctv6.stream",
+ "playpath": "sctv6_2",
"referer": ""
}
},
- "sctv7": {
+ "tv24_sctv7": {
"title": "SCTV7",
"logo": "sctv.png",
"desc": "Sân khấu, VÄn nghá» tá»ng hợp",
"src": {
"id":"tv24",
- "playpath": "SDsctv7.stream",
+ "playpath": "sctv7_2",
"referer": ""
}
},
- "sctv8": {
+ "tv24_sctv8": {
"title": "SCTV8",
"logo": "sctv.png",
"desc": "Thông tin Kinh tế, Thá» trÆ°á»ng",
"src": {
"id":"tv24",
- "playpath": "SDsctv8.stream",
+ "playpath": "sctv8_2",
"referer": ""
}
},
- "sctv9": {
+ "tv24_sctv9": {
"title": "SCTV9",
"logo": "sctv.png",
"desc": "Phim châu Ã",
"src": {
"id":"tv24",
- "playpath": "SDsctv9.stream",
+ "playpath": "sctv9_2",
"referer": ""
}
},
- "sctv10": {
+ "tv24_sctv10": {
"title": "SCTV10",
"logo": "sctv.png",
"desc": "Home Shopping Network: Mua sắm",
"src": {
"id":"tv24",
- "playpath": "SDsctv10.stream",
+ "playpath": "sctv10_2",
"referer": ""
}
},
- "sctv11": {
+ "tv24_sctv11": {
"title": "SCTV11",
"logo": "sctv.png",
"desc": "Hát trên truyá»n hình",
"src": {
"id":"tv24",
- "playpath": "SDsctv11.stream",
+ "playpath": "sctv11_2",
"referer": ""
}
},
- "sctv12": {
+ "tv24_sctv12": {
"title": "SCTV12",
"logo": "sctv.png",
"desc": "Du lá»ch, Khám phá",
"src": {
"id":"tv24",
- "playpath": "SDsctv12.stream",
+ "playpath": "sctv12_2",
"referer": ""
}
},
- "sctv13": {
+ "tv24_sctv13": {
"title": "SCTV13",
"logo": "sctv.png",
"desc": "Phụ nữ và Gia Äình",
"src": {
"id":"tv24",
- "playpath": "SDsctv13.stream",
+ "playpath": "sctv13_2",
"referer": ""
}
},
- "sctv14": {
+ "tv24_sctv14": {
"title": "SCTV14",
"logo": "sctv.png",
"desc": "Phim Viá»t",
"src": {
"id":"tv24",
- "playpath": "SDsctv14.stream",
+ "playpath": "sctv14_2",
"referer": ""
}
},
- "sctv15": {
+ "tv24_sctv15": {
"title": "SCTV15",
"logo": "sctv.png",
"desc": "Thá» thao",
"src": {
"id":"tv24",
- "playpath": "SDsctv15.stream",
+ "playpath": "sctv15_2",
"referer": ""
}
},
- "sctv16": {
+ "tv24_sctv16": {
"title": "SCTV16",
"logo": "sctv.png",
"desc": "Phim truyá»n nÆ°á»c ngoà i",
"src": {
"id":"tv24",
- "playpath": "SDsctv16.stream",
+ "playpath": "sctv16_2",
"referer": ""
}
},
- "sctv17": {
+ "tv24_sctv17": {
"title": "SCTV17",
"logo": "sctv.png",
"desc": "Phim tá»ng hợp",
"src": {
"id":"tv24",
- "playpath": "SDsctv17.stream",
+ "playpath": "sctv17_2",
"referer": ""
}
},
- "sctv18": {
+ "tv24_sctv18": {
"title": "SCTV18",
"logo": "sctv.png",
"desc": "Thá» thao",
"src": {
"id":"tv24",
- "playpath": "SDsctv18.stream",
+ "playpath": "sctvhdthethao_2",
"referer": ""
}
},
@@ -372,6 +742,10 @@
+
+
+
+
"trt1": {
"title": "TRT1",
"logo": "",
@@ -382,82 +756,5 @@
"referer": ""
}
}
- },
- "directories": {
- "root": {
- "title": "root",
- "logo": "",
- "desc": "root menu",
- "content": [
- {"type":"chn","id":"vtv1"},
- {"type":"chn","id":"vtv2"},
- {"type":"chn","id":"vtv3"},
- {"type":"chn","id":"vtv4"},
- {"type":"chn","id":"vtv6"},
- {"type":"chn","id":"vtv9"},
- {"type":"chn","id":"vtc1"},
- {"type":"chn","id":"vtc2"},
- {"type":"chn","id":"vtc10"},
- {"type":"dir","id":"sctv"},
- {"type":"dir","id":"vov"},
- {"type":"dir","id":"local"}
- ]
- },
- "sctv": {
- "title": "SCTV Channels",
- "logo": "sctv.png",
- "desc": "SCTV hợp tác và sản xuất",
- "content": [
- {"type":"chn","id":"sctv1"},
- {"type":"chn","id":"sctv2"},
- {"type":"chn","id":"sctv3"},
- {"type":"chn","id":"sctv4"},
- {"type":"chn","id":"sctv5"},
- {"type":"chn","id":"sctv6"},
- {"type":"chn","id":"sctv7"},
- {"type":"chn","id":"sctv8"},
- {"type":"chn","id":"sctv9"},
- {"type":"chn","id":"sctv10"},
- {"type":"chn","id":"sctv11"},
- {"type":"chn","id":"sctv12"},
- {"type":"chn","id":"sctv13"},
- {"type":"chn","id":"sctv14"},
- {"type":"chn","id":"sctv15"},
- {"type":"chn","id":"sctv16"},
- {"type":"chn","id":"sctv17"},
- {"type":"chn","id":"sctv18"}
- ]
- },
- "vov": {
- "title": "VOV Radio",
- "logo": "vov.png",
- "desc": "Äà i Tiếng nói Viá»t Nam",
- "content": [
- {"type":"chn","id":"vov1"},
- {"type":"chn","id":"vov2"},
- {"type":"chn","id":"vov3"},
- {"type":"chn","id":"vov5"}
- ]
- },
- "local": {
- "title": "Local Stations",
- "logo": "",
- "desc": "Truyá»n hình Äá»a phÆ°Æ¡ng",
- "content": [
- {"type":"chn","id":"htv7"},
- {"type":"chn","id":"htv9"},
- {"type":"chn","id":"hn1"},
- {"type":"chn","id":"trt1"}
- ]
- },
- "oversea": {
- "title": "Oversea Stations",
- "logo": "",
- "desc": "Truyá»n hình Hải ngoại",
- "content": [
- {"type":"chn","id":"vtv1"},
- {"type":"chn","id":"vtv2"}
- ]
- }
}
}
diff --git a/plugin.video.tvvn/resources/language/English/strings.xml
b/plugin.video.tvvn/resources/language/English/strings.xml
index e081621..3a34c5d 100644
--- a/plugin.video.tvvn/resources/language/English/strings.xml
+++ b/plugin.video.tvvn/resources/language/English/strings.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<strings>
<string id="30000">General settings</string>
<string id="30001">Show channel's description (Vietnamese Unicode)</string>
@@ -7,6 +8,9 @@
<string id="30005">New channels list update found</string>
<string id="30006">Your channels list is</string>
<string id="30007">Proceed with update?</string>
+ <string id="30008">Channels list update</string>
+ <string id="30009">Please wait and DO NOT cancel</string>
+ <string id="30010">Channel list updated, enjoy!</string>
<string id="30100">tv24.vn settings</string>
<string id="30101">Use HTTP streams instead of RTMP</string>
</strings>
diff --git a/plugin.video.tvvn/tvvn.py b/plugin.video.tvvn/tvvn.py
index 38e3419..b588746 100644
--- a/plugin.video.tvvn/tvvn.py
+++ b/plugin.video.tvvn/tvvn.py
@@ -1,8 +1,8 @@
# -*- coding: UTF-8 -*-
#---------------------------------------------------------------------
# File: tvvn.py
-# By: Binh Nguyen <b...@vnoss.org>
-# Date: 2013-06-05
+# By: Binh Nguyen <b...@zecoj.com>
+# Date: Fri Jul 11 19:33:48 AEST 2014
#---------------------------------------------------------------------
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#---------------------------------------------------------------------
-import os, re, sys, gzip, urllib, urllib2, xbmcaddon, xbmcplugin, xbmcgui,
xbmcvfs
+import os, re, sys, gzip, urllib, urllib2, string, xbmcaddon, xbmcplugin,
xbmcgui, xbmcvfs
from StringIO import StringIO
try:
@@ -142,29 +142,38 @@ def update_chn_list():
dialog = xbmcgui.Dialog()
ack = dialog.yesno(addon.getLocalizedString(30005),
addon.getLocalizedString(30006)+" "+day_diff+" day(s)
old",addon.getLocalizedString(30007))
if ack:
+ d_progress = xbmcgui.DialogProgress()
+
d_progress.create(addon.getLocalizedString(30008),
addon.getLocalizedString(30009))
d = open(datafile, 'r+')
d.seek(0)
d.write(ff)
d.close()
+ construct_menu("root")
+ d_progress.close()
+ d_ok =
xbmcgui.Dialog().ok(addon.getLocalizedString(30008),addon.getLocalizedString(30010))
def play_link(chn, src):
item = xbmcgui.ListItem(chn)
- playpath = data['channels'][chn]['src']['playpath']
videoUrl = data['sources'][src]['url']
+ playpath = data['channels'][chn]['src']['playpath']
if (playpath != ''):
videoUrl = videoUrl+"/"+playpath
- swfUrl = data['sources'][src]['swfurl']
- pageUrl = data['sources'][src]['pageurl']
- if (data['channels'][chn]['src']['referer'] != ''):
- pageUrl = pageUrl+"/"+data['channels'][chn]['src']['referer']
- flashVer = 'LNX_11,2,202,233'
- token = data['sources'][src]['token']
- app = data['sources'][src]['app']
-
- full_url = videoUrl+' swfVfy=1 live=1 token='+token+'
playpath='+playpath+' flashVer='+flashVer+' pageUrl='+pageUrl+'
tcUrl='+videoUrl+' swfUrl='+swfUrl
- xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(full_url, item)
+ url_protocol = videoUrl.split(':')[0]
+ if (url_protocol == "http"):
+ full_url = videoUrl
+ elif (url_protocol in ["rtmp", "rtmpe"]):
+ swfUrl = data['sources'][src]['swfurl']
+ pageUrl = data['sources'][src]['pageurl']
+ if (data['channels'][chn]['src']['referer'] != ''):
+ pageUrl =
pageUrl+"/"+data['channels'][chn]['src']['referer']
+ flashVer = 'LNX_11,2,202,233'
+ token = data['sources'][src]['token']
+ app = data['sources'][src]['app']
+
+ full_url = videoUrl+' swfVfy=1 live=1 token='+token+'
playpath='+playpath+' flashVer='+flashVer+' pageUrl='+pageUrl+'
tcUrl='+videoUrl+' swfUrl='+swfUrl
+ xbmc.Player().play(full_url, item)
return
def Init():
-----------------------------------------------------------------------
Summary of changes:
plugin.audio.dr.dk.netradio/addon.py | 17 +-
plugin.audio.dr.dk.netradio/addon.xml | 2 +-
plugin.audio.dr.dk.netradio/changelog.txt | 9 +-
plugin.audio.dr.dk.netradio/channels.py | 1 +
plugin.video.filmsforaction/.travis.yml | 4 +
plugin.video.filmsforaction/README | 44 --
plugin.video.filmsforaction/README.md | 46 ++
plugin.video.filmsforaction/addon.xml | 2 +-
plugin.video.filmsforaction/changelog.txt | 5 +
.../resources/lib/ffa_api.py | 22 +-
.../resources/tests}/__init__.py | 0
.../resources/tests/test_api.py | 57 ++
plugin.video.spi0n/LICENSE | 20 +
plugin.video.spi0n/LICENSE.txt | 20 +
plugin.video.spi0n/README.md | 27 +
plugin.video.spi0n/addon.py | 105 +++
plugin.video.spi0n/addon.xml | 22 +
plugin.video.spi0n/changelog.txt | 2 +
plugin.video.spi0n/fanart.jpg | Bin 0 -> 644047 bytes
plugin.video.spi0n/icon.png | Bin 0 -> 103344 bytes
plugin.video.tvvn/COPYING | 674 --------------------
.../LICENSE.txt | 0
plugin.video.tvvn/{README => README.txt} | 0
plugin.video.tvvn/addon.xml | 5 +-
plugin.video.tvvn/changelog.txt | 9 +
plugin.video.tvvn/data.json | 589 +++++++++++++-----
.../resources/language/English/strings.xml | 4 +
plugin.video.tvvn/tvvn.py | 37 +-
28 files changed, 830 insertions(+), 893 deletions(-)
create mode 100644 plugin.video.filmsforaction/.travis.yml
delete mode 100644 plugin.video.filmsforaction/README
create mode 100644 plugin.video.filmsforaction/README.md
copy {plugin.audio.abcradionational/resources =>
plugin.video.filmsforaction/resources/tests}/__init__.py (100%)
create mode 100644 plugin.video.filmsforaction/resources/tests/test_api.py
create mode 100644 plugin.video.spi0n/LICENSE
create mode 100644 plugin.video.spi0n/LICENSE.txt
create mode 100644 plugin.video.spi0n/README.md
create mode 100644 plugin.video.spi0n/addon.py
create mode 100644 plugin.video.spi0n/addon.xml
create mode 100644 plugin.video.spi0n/changelog.txt
create mode 100644 plugin.video.spi0n/fanart.jpg
create mode 100644 plugin.video.spi0n/icon.png
delete mode 100644 plugin.video.tvvn/COPYING
copy {plugin.audio.deejayIt.reloaded => plugin.video.tvvn}/LICENSE.txt (100%)
rename plugin.video.tvvn/{README => README.txt} (100%)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Xbmc-addons mailing list
Xbmc-addons@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xbmc-addons