The branch, eden has been updated
       via  35fdb34ee8c4a659078216d3869e98073c9ab9e2 (commit)
       via  485c97a99cd2165162a25f88a49835d9971f2420 (commit)
      from  9121d0843386abaa950ab2237beda59e3e7bdd38 (commit)

- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=35fdb34ee8c4a659078216d3869e98073c9ab9e2

commit 35fdb34ee8c4a659078216d3869e98073c9ab9e2
Author: beenje <[email protected]>
Date:   Sun Feb 24 22:10:41 2013 +0100

    [plugin.video.nrk] updated to version 4.3.4

diff --git a/plugin.video.nrk/addon.xml b/plugin.video.nrk/addon.xml
index bbe1986..764e4bb 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.3.3"
+       version="4.3.4"
        provider-name="takoi">
   <requires>
     <import addon="xbmc.python" version="2.0"/>
     <import addon="script.module.parsedom" version="0.9.2"/>
     <import addon="script.module.requests" version="0.13.2"/>
-    <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 450e377..84ccdae 100644
--- a/plugin.video.nrk/default.py
+++ b/plugin.video.nrk/default.py
@@ -113,11 +113,11 @@ 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):
@@ -138,7 +138,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]))
+    plugin.redirect(urls[0])
     return
   view(titles, urls, thumbs=thumbs, bgs=bgs)
 
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=485c97a99cd2165162a25f88a49835d9971f2420

commit 485c97a99cd2165162a25f88a49835d9971f2420
Author: beenje <[email protected]>
Date:   Sun Feb 24 22:10:33 2013 +0100

    [plugin.video.arte_tv] updated to version 1.0.2

diff --git a/plugin.video.arte_tv/addon.xml b/plugin.video.arte_tv/addon.xml
index 1c95e85..071a8fc 100644
--- a/plugin.video.arte_tv/addon.xml
+++ b/plugin.video.arte_tv/addon.xml
@@ -1,5 +1,5 @@
 <?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="1.0.2" 
provider-name="AddonScriptorDE">
     <requires>
         <import addon="xbmc.python" version="2.0"/>
     </requires>
@@ -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("&lt;","<").replace("&gt;",">").replace("&amp;","&").replace("&#39;","'").replace("&#039;","'").replace("&quot;","\"").replace("&szlig;","ß").replace("&ndash;","-")
@@ -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                     |    3 +-
 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                        |   10 ++--
 plugin.video.nrk/plugin.py                         |   63 +++++++++++++++----
 7 files changed, 94 insertions(+), 43 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

Reply via email to