The branch, frodo has been updated
via 4402e16e2644def7f47bfb000082289019e76b73 (commit)
via 93bde9f6ae75435a03994c57a527ce6929eace36 (commit)
via b95ef2413adcbca943949a8dcc9a0504f38ca108 (commit)
from 9f58781b40f28a05c78d24ef954dd798b3fb748b (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=4402e16e2644def7f47bfb000082289019e76b73
commit 4402e16e2644def7f47bfb000082289019e76b73
Author: Martijn Kaijser <[email protected]>
Date: Sat Sep 27 09:47:42 2014 +0200
[plugin.video.espn_3] 1.0.1
diff --git a/plugin.video.espn_3/addon.xml b/plugin.video.espn_3/addon.xml
index b030ef3..a9bba2b 100644
--- a/plugin.video.espn_3/addon.xml
+++ b/plugin.video.espn_3/addon.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.espn_3"
name="ESPN 3"
- version="1.0.0"
- provider-name="Ksosez,BlueCop,Romans I XVI">
+ version="1.0.1"
+ provider-name="BlueCop,Romans I XVI,Locomot1f">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.beautifulsoup" version="3.2.1"/>
diff --git a/plugin.video.espn_3/default.py b/plugin.video.espn_3/default.py
index fca0226..2ffccc5 100644
--- a/plugin.video.espn_3/default.py
+++ b/plugin.video.espn_3/default.py
@@ -43,7 +43,7 @@ def CATEGORIES():
days = (curdate+timedelta(days=upcoming)).strftime("%Y%m%d")
addDir(translation(30029),
'http://espn.go.com/watchespn/feeds/startup?action=live'+channels, 1,
defaultlive)
addDir(translation(30030),
'http://espn.go.com/watchespn/feeds/startup?action=upcoming'+channels+'&endDate='+days+'&startDate='+curdate.strftime("%Y%m%d"),
2,defaultupcoming)
- enddate = '&endDate='+ curdate.strftime("%Y%m%d")
+ enddate = '&endDate='+ (curdate+timedelta(days=1)).strftime("%Y%m%d")
replays1 = [5,10,15,20,25]
replays1 = replays1[int(selfAddon.getSetting('replays1'))]
start1 = (curdate-timedelta(days=replays1)).strftime("%Y%m%d")
@@ -56,11 +56,12 @@ def CATEGORIES():
replays4 = [60,90,120,240]
replays4 = replays4[int(selfAddon.getSetting('replays4'))]
start4 = (curdate-timedelta(days=replays4)).strftime("%Y%m%d")
+ startAll = (curdate-timedelta(days=730)).strftime("%Y%m%d")
addDir(translation(30031)+str(replays1)+' Days',
'http://espn.go.com/watchespn/feeds/startup?action=replay'+channels+enddate+'&startDate='+start1,
2, defaultreplay)
addDir(translation(30031)+str(replays2)+' Days',
'http://espn.go.com/watchespn/feeds/startup?action=replay'+channels+enddate+'&startDate='+start2,
2, defaultreplay)
addDir(translation(30031)+str(replays3)+' Days',
'http://espn.go.com/watchespn/feeds/startup?action=replay'+channels+enddate+'&startDate='+start3,
2, defaultreplay)
addDir(translation(30031)+str(replays3)+'-'+str(replays4)+' Days',
'http://espn.go.com/watchespn/feeds/startup?action=replay'+channels+'&endDate='+start3+'&startDate='+start4,
2, defaultreplay)
- addDir(translation(30032),
'http://espn.go.com/watchespn/feeds/startup?action=replay'+channels, 2,
defaultreplay)
+ addDir(translation(30032),
'http://espn.go.com/watchespn/feeds/startup?action=replay'+channels+enddate+'&startDate='+startAll,
2, defaultreplay)
xbmcplugin.endOfDirectory(int(sys.argv[1]))
def LISTNETWORKS(url,name):
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=93bde9f6ae75435a03994c57a527ce6929eace36
commit 93bde9f6ae75435a03994c57a527ce6929eace36
Author: Martijn Kaijser <[email protected]>
Date: Sat Sep 27 09:46:55 2014 +0200
[plugin.video.nrk] 4.4.17
diff --git a/plugin.video.nrk/addon.xml b/plugin.video.nrk/addon.xml
index 695a9c0..0e7b7a7 100644
--- a/plugin.video.nrk/addon.xml
+++ b/plugin.video.nrk/addon.xml
@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.nrk"
name="NRK Nett-TV"
- version="4.4.16"
+ version="4.4.17"
provider-name="takoi">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.parsedom" version="0.9.2"/>
<import addon="script.module.requests" version="1.0.4"/>
- <import addon="script.common.plugin.cache" version="1.1.0"/>
</requires>
<extension point="xbmc.python.pluginsource" library="default.py">
<provides>video</provides>
diff --git a/plugin.video.nrk/changelog.txt b/plugin.video.nrk/changelog.txt
index be0d7ef..881e9f7 100644
--- a/plugin.video.nrk/changelog.txt
+++ b/plugin.video.nrk/changelog.txt
@@ -1,3 +1,6 @@
+[B]4.4.17[/B]
+- Sideendringer
+
[B]4.4.16[/B]
- Sideendringer
diff --git a/plugin.video.nrk/default.py b/plugin.video.nrk/default.py
index 3684d77..059956a 100644
--- a/plugin.video.nrk/default.py
+++ b/plugin.video.nrk/default.py
@@ -79,32 +79,45 @@ def add(title, url, mimetype, thumb="", fanart=""):
addDirectoryItem(plugin.handle, url, li, False)
-def view(items, update_listing=False):
+def view(items, update_listing=False, urls=None):
+ if urls is None:
+ urls = [plugin.url_for_path(item.url) for item in items]
total = len(items)
- for item in items:
+ for item, url in zip(items, urls):
li = ListItem(item.title, thumbnailImage=getattr(item, 'thumb', ''))
- playable = plugin.route_for(item.url) == play
+ playable = plugin.route_for(url) == play
li.setProperty('isplayable', str(playable))
if hasattr(item, 'fanart'):
li.setProperty('fanart_image', item.fanart)
if playable:
- li.setInfo('video', {'title': item.title, 'plot': getattr(item,
'description', '')})
+ li.setInfo('video', {
+ 'title': item.title,
+ 'genre': item.category.title if hasattr(item, 'category') else
'',
+ 'mpaa': getattr(item, 'legal_age', ''),
+ 'plot': getattr(item, 'description', '')
+ })
li.addStreamInfo('video', {'codec': 'h264', 'width': 1280,
'height': 720})
li.addStreamInfo('audio', {'codec': 'aac', 'channels': 2})
- addDirectoryItem(plugin.handle, plugin.url_for_path(item.url), li, not
playable, total)
+ addDirectoryItem(plugin.handle, url, li, not playable, total)
endOfDirectory(plugin.handle, updateListing=update_listing)
@plugin.route('/recommended')
def recommended():
- import nrktv
- view(nrktv.get_recommended())
+ import nrktv_mobile as nrktv
+ xbmcplugin.setContent(plugin.handle, 'episodes')
+ programs = nrktv.recommended_programs()
+ urls = [plugin.url_for(play, item.id) for item in programs]
+ view(programs, urls=urls)
@plugin.route('/mostrecent')
def mostrecent():
- import nrktv
- view(nrktv.get_most_recent())
+ import nrktv_mobile as nrktv
+ xbmcplugin.setContent(plugin.handle, 'episodes')
+ programs = nrktv.recent_programs()
+ urls = [plugin.url_for(play, item.id) for item in programs]
+ view(programs, urls=urls)
@plugin.route('/mostpopularweek')
@@ -191,10 +204,10 @@ def episodes(series_id, season_id):
@plugin.route('/serie/<series_id>/<video_id>')
[email protected]('/serie/<series_id>/<video_id>/.*')
[email protected]('/serie/<series_id>/<video_id>/<path:unused>')
@plugin.route('/program/<video_id>')
[email protected]('/program/<video_id>/.*')
-def play(video_id, series_id=""):
[email protected]('/program/<video_id>/<path:unused>')
+def play(video_id, series_id="", unused=""):
import nrktv
import subs
url = nrktv.get_media_url(video_id)
diff --git a/plugin.video.nrk/nrktv.py b/plugin.video.nrk/nrktv.py
index 5d66d03..60052de 100644
--- a/plugin.video.nrk/nrktv.py
+++ b/plugin.video.nrk/nrktv.py
@@ -19,6 +19,7 @@ import requests
import HTMLParser
import CommonFunctions as common
from itertools import repeat
+from nrktv_mobile import Program
html_decode = HTMLParser.HTMLParser().unescape
parseDOM = common.parseDOM
@@ -29,23 +30,12 @@ session.headers['X-Requested-With'] = 'XMLHttpRequest'
session.headers['Cookie'] =
"NRK_PLAYER_SETTINGS_TV=devicetype=desktop&preferred-player-odm=hlslink&preferred-player-live=hlslink"
-class Program(object):
- title = None
- description = None
- url = None
- thumb = None
- fanart = None
-
- def __init__(self, **kwargs):
- self.__dict__.update(kwargs)
-
- @staticmethod
- def from_lists(titles, urls, thumbs, fanart, descr=repeat(None)):
- programs = []
- for t, u, th, f, d in zip(titles, urls, thumbs, fanart, descr):
- p = Program(title=t, url=u, thumb=th, fanart=f, description=d)
- programs.append(p)
- return programs
+def _programs_from_lists(titles, urls, thumbs, fanart, descr=repeat(None)):
+ programs = []
+ for t, u, th, f, d in zip(titles, urls, thumbs, fanart, descr):
+ p = Program(title=t, url=u, thumb=th, fanart=f, description=d)
+ programs.append(p)
+ return programs
def get_live_stream(ch):
@@ -81,7 +71,7 @@ def _program_list(url):
urls = [i['Url'] for i in items]
thumbs = [i['ImageUrl'] for i in items]
fanart = [_fanart_url(url) for url in urls]
- return Program.from_lists(titles, urls, thumbs, fanart)
+ return _programs_from_lists(titles, urls, thumbs, fanart)
def get_recommended():
@@ -92,7 +82,7 @@ def get_recommended():
urls = parseDOM(html, 'a', ret='href')
thumbs = parseDOM(html, 'img', ret='src')
fanart = [_fanart_url(url) for url in urls]
- return Program.from_lists(titles, urls, thumbs, fanart)
+ return _programs_from_lists(titles, urls, thumbs, fanart)
def get_most_recent():
@@ -117,7 +107,7 @@ def _json_list(url):
urls = [e['Url'] for e in elems]
thumbs = [e['Images'][0]['ImageUrl'] for e in elems]
fanart = [_fanart_url(url) for url in urls]
- return Program.from_lists(titles, urls, thumbs, fanart)
+ return _programs_from_lists(titles, urls, thumbs, fanart)
def get_search_results(query, page=0):
@@ -136,7 +126,7 @@ def get_search_results(query, page=0):
thumbs = [parseDOM(li, 'img', ret='src')[0] for li in lis]
fanart = [_fanart_url(url) for url in urls]
- return Program.from_lists(titles, urls, thumbs, fanart, descr)
+ return _programs_from_lists(titles, urls, thumbs, fanart, descr)
def get_seasons(arg):
@@ -148,7 +138,7 @@ def get_seasons(arg):
urls = ["/program/Episodes/%s/%s/0" % (arg, i) for i in ids]
thumbs = repeat(_thumb_url(arg))
fanart = repeat(_fanart_url(arg))
- return Program.from_lists(titles, urls, thumbs, fanart)
+ return _programs_from_lists(titles, urls, thumbs, fanart)
def get_episodes(series_id, season_id):
@@ -166,7 +156,7 @@ def get_episodes(series_id, season_id):
descr = [html_decode(common.stripTags(_)) for _ in descr]
thumbs = repeat(_thumb_url(series_id))
fanart = repeat(_fanart_url(series_id))
- return Program.from_lists(titles, urls, thumbs, fanart, descr)
+ return _programs_from_lists(titles, urls, thumbs, fanart, descr)
def get_media_url(video_id):
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=b95ef2413adcbca943949a8dcc9a0504f38ca108
commit b95ef2413adcbca943949a8dcc9a0504f38ca108
Author: Martijn Kaijser <[email protected]>
Date: Sat Sep 27 09:45:28 2014 +0200
[plugin.video.itbn_org] 1.2.7
diff --git a/plugin.video.itbn_org/addon.xml b/plugin.video.itbn_org/addon.xml
index 8eb0353..c9a63eb 100644
--- a/plugin.video.itbn_org/addon.xml
+++ b/plugin.video.itbn_org/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="plugin.video.itbn_org"
- version="1.2.6"
+ version="1.2.7"
name="iTBN"
provider-name="Romans I XVI"
>
diff --git a/plugin.video.itbn_org/default.py b/plugin.video.itbn_org/default.py
index eeeece5..be77f7f 100644
--- a/plugin.video.itbn_org/default.py
+++ b/plugin.video.itbn_org/default.py
@@ -15,7 +15,7 @@ def MAIN():
addDir('Categories','http://www.itbn.org',3,'')
addDir('Programs','http://www.itbn.org/programs',5,'')
addDir('Movies','http://www.tbn.org/watch/mobile_app/v3/itbnapi.php?platform=android&request_path=%2Fapi%2Fv1.0%2Fvideos%2Flimit%2F250%2Fsortby%2Fairdate%2Fcategory%2F1723&device_name=GT-I9100&os_ver=2.3.4&screen_width=1600&screen_height=900&app_ver=3.0&UUID=1d5f5000-656a-4a16-847f-138937d4d0c4',10,movies_thumb)
-
addDir('Live','http://www.tbn.org/watch/mobile_app/v3/getlivestreams.php?device_name=GT-I9100&os_ver=2.3.4&screen_width=1600&screen_height=900&app_ver=3.0&UUID=1d5f5000-656a-4a16-847f-138937d4d0c4',7,live_thumb)
+
addDir('Live','http://www.tbn.org/watch/mobile_app/v3/getlivestreams.php',7,live_thumb)
addDir('Search','http://itbn.org/',8,search_thumb)
addDir('Air Date','http://itbn.org/',9,search_thumb)
if 1==1:
@@ -215,11 +215,13 @@ def LIVE(url):
response = urllib2.urlopen(req)
link=response.read()
response.close()
-
match='http://ooyalahd2-f.akamaihd.net/i/tbn01_delivery@120258/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn02_delivery@120259/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn03_delivery@120260/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn04_delivery@149649/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn07_delivery@149653/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn08_delivery@149654/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn05_delivery@149650/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn06_delivery@149652/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn09_delivery@149656/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn10_delivery@149657/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn11_delivery@149658/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn13_delivery@168536/master.m3u8','http://ooyalahd2-f.akamaihd.net/i/tbn12_delivery@149659/master.m3u8'
+ match=re.compile('\"streamurl\":\"(.+?)\"').findall(link)
title=re.compile('\"name\":\"(.+?)\"').findall(link)
thumbnail=re.compile('\"icon\":\"(.+?)\"').findall(link)
mylist=zip((match),(title),(thumbnail))
for url,name,thumbnail in mylist:
+ if
url=='http://acaooyalahd2-lh.akamaihd.net/i/TBN11_delivery@186249/master.m3u8':
+ name='JUCE TV Russia'
addLink(name,url,thumbnail)
if 1==1:
xbmc.executebuiltin('Container.SetViewMode(500)')
-----------------------------------------------------------------------
Summary of changes:
plugin.video.espn_3/addon.xml | 4 +-
plugin.video.espn_3/default.py | 5 +-
plugin.video.itbn_org/addon.xml | 2 +-
plugin.video.itbn_org/default.py | 6 ++-
plugin.video.nrk/addon.xml | 3 +-
plugin.video.nrk/changelog.txt | 3 +
plugin.video.nrk/default.py | 37 +++++++++++-----
plugin.video.nrk/nrktv.py | 36 ++++++----------
plugin.video.nrk/nrktv_mobile.py | 86 ++++++++++++++++++++++++++++++++++++++
9 files changed, 138 insertions(+), 44 deletions(-)
create mode 100644 plugin.video.nrk/nrktv_mobile.py
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons