The branch, frodo has been updated
via abd98bbb067fe5736f8386a4cbc8eb79f0e903fc (commit)
via 615b941ed1a4a1d79aee84297d605a6827a1a748 (commit)
from e2a41abb665aaf544604533733f95f45108a0206 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=abd98bbb067fe5736f8386a4cbc8eb79f0e903fc
commit abd98bbb067fe5736f8386a4cbc8eb79f0e903fc
Author: beenje <[email protected]>
Date: Sun Feb 24 22:10:38 2013 +0100
[plugin.video.nrk] updated to version 4.4.4
diff --git a/plugin.video.nrk/addon.xml b/plugin.video.nrk/addon.xml
index fc8b33f..ffb7c1d 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.3"
+ version="4.4.4"
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.module.xbmcswift2" version="1.3.1"/>
<import addon="script.common.plugin.cache" version="1.1.0"/>
</requires>
<extension point="xbmc.python.pluginsource" library="default.py">
diff --git a/plugin.video.nrk/default.py b/plugin.video.nrk/default.py
index 3c2c67e..451873d 100644
--- a/plugin.video.nrk/default.py
+++ b/plugin.video.nrk/default.py
@@ -14,9 +14,8 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
'''
import os
-import sys
import time
-import xbmc, xbmcaddon, xbmcplugin
+import xbmc, xbmcplugin
from itertools import repeat
from urllib import quote
from xbmcplugin import addDirectoryItem
@@ -113,17 +112,17 @@ def letters():
@plugin.route('/search')
def search():
- query = plugin.keyboard(heading="Søk")
+ keyboard = xbmc.Keyboard(heading="Søk")
+ keyboard.doModal()
+ query = keyboard.getText()
if query:
- plugin.redirect(plugin.make_url('/search/%s/1' % quote(query)))
- else:
- plugin._end_of_directory = True # hack: prevent xbmcswift from calling
endOfDirectory
+ plugin.redirect('/search/%s/1' % quote(query))
@plugin.route('/search/<query>/<page>')
def search_results(query, page):
import data
results = data.get_search_results(query, page)
- more_node = ["Flere", '/search/%s/%s' % (query, int(page)+1), "", "" ]
+ more_node = [ "Flere", '/search/%s/%s' % (query, int(page)+1), "", "" ]
for i in range(0, len(more_node)):
results[i].append(more_node[i])
view(*results, update_listing=int(page) > 1)
@@ -138,8 +137,7 @@ def seasons(arg):
import data
titles, urls, thumbs, bgs = data.get_seasons(arg)
if len(titles) == 1:
- plugin.redirect(plugin.make_url(urls[0]))
- return
+ return plugin.redirect(urls[0])
view(titles, urls, thumbs=thumbs, bgs=bgs)
@plugin.route('/program/Episodes/<series_id>/<season_id>')
@@ -165,5 +163,5 @@ def play(video_id, series_id=""):
if not SHOW_SUBS:
player.showSubtitles(False)
-if __name__ == "__main__" :
+if __name__ == '__main__':
plugin.run()
diff --git a/plugin.video.nrk/plugin.py b/plugin.video.nrk/plugin.py
index 8e38d39..6567cb8 100644
--- a/plugin.video.nrk/plugin.py
+++ b/plugin.video.nrk/plugin.py
@@ -12,25 +12,60 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
'''
-import xbmcaddon
-import xbmcswift2 as xbmcswift
+import re
+import sys
+import xbmc, xbmcaddon
-class Plugin(xbmcswift.Plugin):
+class Plugin(object):
def __init__(self):
- xbmcswift.Plugin.__init__(self)
+ self._routes = []
+ self._addon = xbmcaddon.Addon()
+ self.handle = int(sys.argv[1])
+ self.addon_id = self._addon.getAddonInfo('id')
+ self.path = self._addon.getAddonInfo('path')
- @property
- def path(self):
- return self.addon.getAddonInfo('path')
+ def get_setting(self, key):
+ return self._addon.getSetting(id=key)
def make_url(self, url):
- return 'plugin://%s%s' % (self.id, url)
-
+ return 'plugin://%s%s' % (self.addon_id, url)
+
def route_for(self, path):
for rule in self._routes:
- try:
- view_func, items = rule.match(path)
- except xbmcswift.urls.NotFoundException:
- continue
- return view_func
+ view_func, items = rule.match(path)
+ if view_func:
+ return view_func
return None
+
+ def route(self, url_rule):
+ def decorator(f):
+ rule = UrlRule(url_rule, f)
+ self._routes.append(rule)
+ return f
+ return decorator
+
+ def run(self):
+ path = sys.argv[0].split('plugin://%s' % self.addon_id)[1] or '/'
+ self._dispatch(path)
+
+ def redirect(self, path):
+ self._dispatch(path)
+
+ def _dispatch(self, path):
+ for rule in self._routes:
+ view_func, kwargs = rule.match(path)
+ if view_func:
+ view_func(**kwargs)
+ return
+
+class UrlRule(object):
+ def __init__(self, url_rule, view_func):
+ self._view_func = view_func
+ p = url_rule.replace('<', '(?P<').replace('>', '>[^/]+?)')
+ self._regex = re.compile('^' + p + '$')
+
+ def match(self, path):
+ m = self._regex.search(path)
+ if not m:
+ return False, None
+ return self._view_func, m.groupdict()
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=615b941ed1a4a1d79aee84297d605a6827a1a748
commit 615b941ed1a4a1d79aee84297d605a6827a1a748
Author: beenje <[email protected]>
Date: Sun Feb 24 22:10:35 2013 +0100
[plugin.video.arte_tv] updated to version 2.0.2
diff --git a/plugin.video.arte_tv/addon.xml b/plugin.video.arte_tv/addon.xml
index 1c95e85..948d515 100644
--- a/plugin.video.arte_tv/addon.xml
+++ b/plugin.video.arte_tv/addon.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.arte_tv" name="Arte.tv" version="1.0.1"
provider-name="AddonScriptorDE">
+<addon id="plugin.video.arte_tv" name="Arte.tv" version="2.0.2"
provider-name="AddonScriptorDE">
<requires>
- <import addon="xbmc.python" version="2.0"/>
+ <import addon="xbmc.python" version="2.1.0"/>
</requires>
<extension point="xbmc.python.pluginsource" library="default.py">
<provides>video</provides>
@@ -16,6 +16,5 @@
<description lang="en">ARTE Media Library (DE/FR)</description>
<description lang="fr">ARTE médiathèque (DE/FR)</description>
<disclaimer lang="en">Some parts of this addon may not be legal in
your country of residence - please check with your local laws before
installing.</disclaimer>
- <platform>all</platform>
</extension>
</addon>
diff --git a/plugin.video.arte_tv/changelog.txt
b/plugin.video.arte_tv/changelog.txt
index 24c2d29..8c3e66f 100644
--- a/plugin.video.arte_tv/changelog.txt
+++ b/plugin.video.arte_tv/changelog.txt
@@ -3,4 +3,6 @@
1.0.1
- Added "Videos of the day"
- Added "Arte Live Web"
-- Some other fixes
\ No newline at end of file
+- Some other fixes
+1.0.2 / 2.0.2
+- Fixed video playback
diff --git a/plugin.video.arte_tv/default.py b/plugin.video.arte_tv/default.py
index 3251905..6c75731 100644
--- a/plugin.video.arte_tv/default.py
+++ b/plugin.video.arte_tv/default.py
@@ -3,23 +3,19 @@
import urllib,urllib2,re,xbmcplugin,xbmcgui,sys,xbmcaddon,socket,time
pluginhandle = int(sys.argv[1])
-settings = xbmcaddon.Addon(id='plugin.video.arte_tv')
-translation = settings.getLocalizedString
+addon = xbmcaddon.Addon(id='plugin.video.arte_tv')
+translation = addon.getLocalizedString
-forceViewMode=settings.getSetting("forceViewMode")
-if forceViewMode=="true":
- forceViewMode=True
-else:
- forceViewMode=False
-viewMode=str(settings.getSetting("viewMode"))
-timeout=int(settings.getSetting("timeout"))
+forceViewMode=addon.getSetting("forceViewMode")
+viewMode=str(addon.getSetting("viewMode"))
+timeout=int(addon.getSetting("timeout"))
socket.setdefaulttimeout(timeout)
language=""
-language=settings.getSetting("language")
+language=addon.getSetting("language")
if language=="":
- settings.openSettings()
- language=settings.getSetting("language")
+ addon.openSettings()
+ language=addon.getSetting("language")
if language=="0":
language="de"
@@ -27,7 +23,7 @@ elif language=="1":
language="fr"
numbers=["10","25","50","100",]
-videosPerPage=numbers[int(settings.getSetting("itemsPerPage"))]
+videosPerPage=numbers[int(addon.getSetting("itemsPerPage"))]
def cleanTitle(title):
title=title.replace("<","<").replace(">",">").replace("&","&").replace("'","'").replace("'","'").replace(""","\"").replace("ß","Ã").replace("–","-")
@@ -44,6 +40,8 @@ def index():
addDir(translation(30005),"SEARCH","search","")
addDir(translation(30012),"","listWebLiveMain","")
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def showSortList(url):
if url=="ARTE_7":
@@ -64,6 +62,8 @@ def showSortList(url):
addDir(translation(30008),urlRated,"listVideos","")
addDir(translation(30006),urlTitle,"listVideos","")
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def listShows(url):
if url=="ALL_VIDS":
@@ -90,6 +90,8 @@ def listShows(url):
url="http://videos.arte.tv"+match[0]
addDir(title,url,'showSortList',"")
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def vidsDay(url):
content = getUrl(url)
@@ -107,6 +109,8 @@ def vidsDay(url):
thumb="http://videos.arte.tv"+match[0][2]
addLink(title,url,'playVideo',thumb,desc)
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def listWebLive(url):
urlMain=url
@@ -138,8 +142,11 @@ def listWebLive(url):
match=re.compile('moveValue=(.+?)&', re.DOTALL).findall(urlMain)
page=int(match[0])
if hasNextPage:
-
addDir("Next",urlMain.replace("moveValue="+str(page)+"&","moveValue="+str(page+1)+"&"),"listWebLive","")
+ nextPage=str(page+1)
+ addDir(translation(30010)+"
("+nextPage+")",urlMain.replace("moveValue="+str(page)+"&","moveValue="+nextPage+"&"),"listWebLive","")
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def listWebLiveMain():
addDir(translation(30002),"http://liveweb.arte.tv/searchEvent.do?method=displayElements&eventDateMode=0&moveValue=1&eventDateMode=0&chronology=&globalNames=&classification=0&categoryId=&displayMode=0&eventTagName=","listWebLive","")
@@ -150,7 +157,8 @@ def listWebLiveMain():
addDir(translation(30017),"http://liveweb.arte.tv/searchEvent.do?method=displayElements&categoryId=3&eventDateMode=0&moveValue=1&eventDateMode=0&chronology=&globalNames=&classification=0&displayMode=0&eventTagName=","listWebLive","")
addDir(translation(30005),"","searchWebLive","")
xbmcplugin.endOfDirectory(pluginhandle)
-
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def listVideos(url):
urlMain=url
@@ -199,6 +207,8 @@ def listVideos(url):
nextPage=match[0]
addDir(translation(30010)+" ("+nextPage+")",url,"listVideos","")
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
def search():
keyboard = xbmc.Keyboard('', translation(30005))
@@ -232,8 +242,12 @@ def playVideo(url):
urlNew=match1[0]
elif len(match2)==1:
urlNew=match2[0]
- listitem = xbmcgui.ListItem(path=urlNew.replace("/MP4:","/mp4:")+"
swfVfy=1
swfUrl=http://videos.arte.tv/blob/web/i18n/view/player_23-3188338-data-5044926.swf")
- return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
+ if urlNew!="":
+ urlNew=urlNew.replace("MP4:","mp4:")
+ base=urlNew[:urlNew.find("mp4:")]
+ playpath=urlNew[urlNew.find("mp4:"):]
+ listitem = xbmcgui.ListItem(path=base+" playpath="+playpath+"
swfVfy=1
swfUrl=http://videos.arte.tv/blob/web/i18n/view/player_24-3188338-data-5168030.swf")
+ return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
def playLiveEvent(url):
content = getUrl(url)
@@ -256,7 +270,9 @@ def playLiveEvent(url):
xbmc.executebuiltin('XBMC.Notification(Info:,'+translation(30019)+'!,5000)')
else:
urlNew=urlNew[:urlNew.find("?")].replace("/MP4:","/mp4:")
- listitem = xbmcgui.ListItem(path=urlNew)
+ base=urlNew[:urlNew.find("mp4:")]
+ playpath=urlNew[urlNew.find("mp4:"):]
+ listitem = xbmcgui.ListItem(path=base+" playpath="+playpath)
return xbmcplugin.setResolvedUrl(pluginhandle, True, listitem)
def getUrl(url,cookie=None):
diff --git a/plugin.video.arte_tv/resources/language/English/strings.xml
b/plugin.video.arte_tv/resources/language/English/strings.xml
index 1b51161..3b6b138 100644
--- a/plugin.video.arte_tv/resources/language/English/strings.xml
+++ b/plugin.video.arte_tv/resources/language/English/strings.xml
@@ -21,7 +21,7 @@
<string id="30019">Video is no longer available</string>
<string id="30101">Language (Videos)</string>
<string id="30102">Videos per Page</string>
- <string id="30103">Timeout</string>
+ <string id="30103">Timeout (sec)</string>
<string id="30104">Force View</string>
<string id="30105">ViewID</string>
</strings>
-----------------------------------------------------------------------
Summary of changes:
plugin.video.arte_tv/addon.xml | 5 +-
plugin.video.arte_tv/changelog.txt | 4 +-
plugin.video.arte_tv/default.py | 52 +++++++++++------
.../resources/language/English/strings.xml | 2 +-
plugin.video.nrk/addon.xml | 3 +-
plugin.video.nrk/default.py | 18 +++---
plugin.video.nrk/plugin.py | 63 +++++++++++++++----
7 files changed, 98 insertions(+), 49 deletions(-)
hooks/post-receive
--
Plugins
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons