The branch, frodo has been updated
       via  990694c3c22db024c2d1afad2eb8d7614005fd69 (commit)
       via  b6bea7d27a85447bece13fe723871ce3ea19035b (commit)
       via  a84ac442fbe7b505b2df205b9ce957c9662ca1e5 (commit)
       via  2a9e2653cf1eb490f6e1e05f629a5a31bdc97fcb (commit)
       via  ede5e6fd495ffae9c20fe6dd33df1b8ffdc49a0d (commit)
      from  27dddc48e553449a9e011580b78c78b02fe9a20c (commit)

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

commit 990694c3c22db024c2d1afad2eb8d7614005fd69
Author: Martijn Kaijser <mcm.kaij...@gmail.com>
Date:   Thu Sep 11 18:11:09 2014 +0200

    [plugin.video.foodnetwork] 2.1.2

diff --git a/plugin.video.foodnetwork/README.txt 
b/plugin.video.foodnetwork/README.txt
index f591292..b2dafab 100644
--- a/plugin.video.foodnetwork/README.txt
+++ b/plugin.video.foodnetwork/README.txt
@@ -3,5 +3,6 @@ plugin.video.foodnetwork================
 
 XBMC Addon for Food Network website
 
+version 2.1.2 website changes
 version 2.0.2 initial release
 
diff --git a/plugin.video.foodnetwork/addon.xml 
b/plugin.video.foodnetwork/addon.xml
index 999b32a..3435348 100644
--- a/plugin.video.foodnetwork/addon.xml
+++ b/plugin.video.foodnetwork/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.foodnetwork"
        name="Food Network"
-       version="2.0.2"
+       version="2.1.2"
        provider-name="t1m">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
diff --git a/plugin.video.foodnetwork/changelog.txt 
b/plugin.video.foodnetwork/changelog.txt
index 3de11b3..7f89c10 100644
--- a/plugin.video.foodnetwork/changelog.txt
+++ b/plugin.video.foodnetwork/changelog.txt
@@ -1,3 +1,5 @@
+Version 2.1.2 website changes
+
 
 Version 2.0.2 Initial release
 
diff --git a/plugin.video.foodnetwork/default.py 
b/plugin.video.foodnetwork/default.py
index ccf5c03..6d0abc8 100644
--- a/plugin.video.foodnetwork/default.py
+++ b/plugin.video.foodnetwork/default.py
@@ -8,6 +8,7 @@ import urllib, urllib2, cookielib, datetime, time, re, os, 
string
 import xbmcplugin, xbmcgui, xbmcaddon, xbmcvfs, xbmc
 import cgi, gzip
 from StringIO import StringIO
+import json
 
 
 USER_AGENT = 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 
(KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25'
@@ -66,32 +67,31 @@ def getRequest(url):
 def getSources(fanart):
               urlbase   = FNTVBASE % 
('/videos/players/food-network-full-episodes.html')
               pg = getRequest(urlbase)
-              caturl = re.compile("SNI\.Food\.Player\.FullSize.+?, 
'(.+?)'").findall(pg)[0]
-              caturl  = XMLBASE % (caturl)
-              pg2 = getRequest(caturl)
-              catname = re.compile('<title>.+?CDATA\[(.+?)\]').findall(pg2)[0]
-              
addDir(catname,caturl,'GC',icon,addonfanart,catname,GENRE_TV,'',False)
-              cats = re.compile('<section 
class="video-promo">.+?<h5>(.+?)<.+?<a href="(.+?)"').findall(pg)
-              for catname, caturl in cats:
-                  catno = re.compile('/.+?\..+?\.(.+?)\.').findall(caturl)[0]
-                  caturl = caturl.replace('.%s.' %(catno),'.XXXXXXXX.')
+              cats = re.compile('<h6 
class="channel-heading">.+?data-max="85">(.+?)<.+?href="(.+?)".+?src="(.+?)".+?</cite></a></h6>').findall(pg)
 
+              for catname, caturl, catimg in cats:
                   catname = catname.strip()
-                  
addDir(catname,caturl,'GC',icon,addonfanart,catname,GENRE_TV,'',False)
+                  
addDir(catname,caturl,'GC',catimg,addonfanart,catname,GENRE_TV,'',False)
 
 def getCats(cat_url):
-            if '.xml' in cat_url:
-              pg = getRequest(cat_url)
-              shows = 
re.compile('<videoId>(.+?)<.+?<thumbnailUrl>.+?CDATA\[(.+?)\].+?<abstract>.+?CDATA\[(.+?)\]').findall(pg)
-            else:
-              urlbase   = FNTVBASE % 
('/videos/players/food-network-full-episodes.html')
-              pg = getRequest(urlbase)
-              cat_url = cat_url.replace('XXXXXXXX','(.+?)')
-              catsearch = '<a href="%s".+?<div 
class=.+?>(.+?)<.+?<h6>(.+?)</h6>' % (cat_url)
-              shows = re.compile(catsearch).findall(pg)
-            for showpath,  showimg, showname in shows:
-                 showurl = 
'rtmp://flash.scrippsnetworks.com:1935/ondemand/library?ovpfv=2.1.6 
swfUrl=http://www.foodnetwork.com/etc/designs/food/clientlib/snap/snap-4.1.2.swf
 playpath=Food_Network/%s app=ondemand/library?ovpfv=2.1.6  
pageUrl=http://www.foodnetwork.com/videos/players/food-network-full-episodes.html'
 % showpath
-                 
addLink(showurl.encode(UTF8),showname,showimg,addonfanart,showname,GENRE_TV,'')
-
+             pg = getRequest(FNTVBASE % cat_url)
+             jblob = re.compile('"player-player" 
}},(.+?){"extras":').search(pg).group(1).rstrip(' ,')
+             a = json.loads(jblob)
+             a = a['channels'][0]['videos']
+             for vid in a:
+                showurl = "%s?url=%s&name=%s&mode=GS" %(sys.argv[0], 
urllib.quote_plus(vid['releaseUrl']), urllib.quote_plus(vid['title']))
+                
addLink(showurl.encode(UTF8),vid['title'],vid['thumbnailUrl'],addonfanart,vid['description'],GENRE_TV,'')
+
+
+def getShow(show_url, show_name):
+            pg = getRequest(show_url)
+            i = int(addon.getSetting('vid_res'))
+            i = i+1
+            try:
+              url = re.compile('<video src="(.+?)_6.mp4"').search(pg).group(1)
+              url = url+'_%s.mp4' % str(i)
+            except:
+              url = 'http://link.theplatform.com/s/errorFiles/Unavailable.mp4'
+            xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, 
xbmcgui.ListItem(path = url))
 
 
 def play_playlist(name, list):
@@ -162,6 +162,8 @@ if mode==  None:  getSources(p('fanart'))
 elif mode=='SR':  xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, 
xbmcgui.ListItem(path=p('url')))
 elif mode=='PP':  play_playlist(p('name'), p('playlist'))
 elif mode=='GC':  getCats(p('url'))
+elif mode=='GS':  getShow(p('url'), p('name'))
+
 
 xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
diff --git a/plugin.video.foodnetwork/resources/language/English/strings.xml 
b/plugin.video.foodnetwork/resources/language/English/strings.xml
index 79c1e3b..90eb22e 100644
--- a/plugin.video.foodnetwork/resources/language/English/strings.xml
+++ b/plugin.video.foodnetwork/resources/language/English/strings.xml
@@ -1,3 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <strings>
+       <string id="30000">Video Resolution</string>
+       <string id="30001">328Kbps</string>
+       <string id="30002">548Kbps</string>
+       <string id="30003">798kbps</string>
+       <string id="30004">1,116kbps</string>
+       <string id="30005">1,372kbps</string>
+       <string id="30006">2,672kbps</string>
 </strings>
+
diff --git a/plugin.video.foodnetwork/resources/settings.xml 
b/plugin.video.foodnetwork/resources/settings.xml
index fb5aafd..c06f647 100644
--- a/plugin.video.foodnetwork/resources/settings.xml
+++ b/plugin.video.foodnetwork/resources/settings.xml
@@ -1,3 +1,4 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <settings>
-</settings>
\ No newline at end of file
+      <setting id="vid_res" type="enum" label="30000" 
lvalues="30001|30002|30003|30004|30005|30006" default="5" />
+</settings>

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=b6bea7d27a85447bece13fe723871ce3ea19035b

commit b6bea7d27a85447bece13fe723871ce3ea19035b
Author: Martijn Kaijser <mcm.kaij...@gmail.com>
Date:   Thu Sep 11 18:05:39 2014 +0200

    [plugin.video.raitv] 1.0.11

diff --git a/plugin.video.raitv/addon.xml b/plugin.video.raitv/addon.xml
index 882e602..29fcf3b 100644
--- a/plugin.video.raitv/addon.xml
+++ b/plugin.video.raitv/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.raitv"
        name="Rai On Demand"
-       version="1.0.10"
+       version="1.0.11"
        provider-name="Nightflyer">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
diff --git a/plugin.video.raitv/changelog.txt b/plugin.video.raitv/changelog.txt
index 6535153..12fa543 100644
--- a/plugin.video.raitv/changelog.txt
+++ b/plugin.video.raitv/changelog.txt
@@ -1,3 +1,6 @@
+[B]1.0.11[/B]
+- Fixed #8. Now missing thumbnail in RAI Replay is handled better.
+
 [B]1.0.10[/B]
 - Force replay availability for Rai Gulp and Rai YoYo.
 - Better stream selection in RAI Replay. Plot is now shown too.
diff --git a/plugin.video.raitv/default.py b/plugin.video.raitv/default.py
index 9fe3622..5b1fe85 100644
--- a/plugin.video.raitv/default.py
+++ b/plugin.video.raitv/default.py
@@ -202,19 +202,11 @@ def show_replay_epg(channelId, date):
 
     for entry in timetable:
         recording = programmes[entry]
-                
-        title = recording["t"]
         
-        if recording["d"] != "":
-            plot = recording["d"]
-        else:
-            plot = None
+        title = recording["t"]
+        plot = recording["d"]
+        thumbnail = recording["image"]
         
-        if recording["image"] != "":
-            thumbnail = recording["image"]
-        else:
-            thumbnail = None
-    
         if recording["urlTablet"] != "":
             videoUrl = recording["urlTablet"]
         elif recording["h264"] != "":

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=a84ac442fbe7b505b2df205b9ce957c9662ca1e5

commit a84ac442fbe7b505b2df205b9ce957c9662ca1e5
Author: Martijn Kaijser <mcm.kaij...@gmail.com>
Date:   Thu Sep 11 18:04:36 2014 +0200

    [plugin.video.guardian] 1.0.2

diff --git a/plugin.video.guardian/addon.xml b/plugin.video.guardian/addon.xml
index ef28598..336c3fb 100644
--- a/plugin.video.guardian/addon.xml
+++ b/plugin.video.guardian/addon.xml
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.guardian"
        name="The Guardian"
-       version="1.0.1"
+       version="1.0.2"
        provider-name="Nightflyer">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
     <import addon="script.module.beautifulsoup" version="3.0.8"/>
+    <import addon="plugin.video.youtube" version="4.4.0"/>
   </requires>
   <extension point="xbmc.python.pluginsource"
             library="default.py">
diff --git a/plugin.video.guardian/changelog.txt 
b/plugin.video.guardian/changelog.txt
index f3df091..f16e2a1 100644
--- a/plugin.video.guardian/changelog.txt
+++ b/plugin.video.guardian/changelog.txt
@@ -1,6 +1,9 @@
+[B]1.0.2[/B]
+- updated HTML parsing due to upstream changes.
+- youtube video are now supported through external addon.
+
 [B]1.0.1[/B]
 - updated required python API version to 2.1.0. This addon should now work 
with both XBMC 12 (Frodo) and XBMC 13 (Gotham).
 
 [B]1.0.0[/B]
 - first release
-
diff --git a/plugin.video.guardian/default.py b/plugin.video.guardian/default.py
index db43382..b303bc6 100644
--- a/plugin.video.guardian/default.py
+++ b/plugin.video.guardian/default.py
@@ -30,19 +30,20 @@ def addDirectoryItem(parameters, li):
     return xbmcplugin.addDirectoryItem(handle=handle, url=url, 
         listitem=li, isFolder=True)
 
-def addLinkItem(url, li):
+def addLinkItem(parameters, li):
+    url = sys.argv[0] + '?' + urllib.urlencode(parameters)
     return xbmcplugin.addDirectoryItem(handle=handle, url=url, 
         listitem=li, isFolder=False)
 
 # UI builder functions
 def show_root_folder():
-    options = [{"name": "Latest video", "id": "latest"},
-        {"name": "More video", "id": "categories"},
-        {"name": "Video series", "id": "series"},
+    options = [{"name": "Latest video", "mode": "latest"},
+        {"name": "More video", "mode": "categories"},
+        {"name": "Video series", "mode": "series"},
         ]
     for option in options:
         liStyle=xbmcgui.ListItem(option["name"])
-        addDirectoryItem({"option_id": option["id"]}, liStyle)
+        addDirectoryItem({"mode": option["mode"]}, liStyle)
     xbmcplugin.endOfDirectory(handle=handle, succeeded=True)
     
 def show_categories():
@@ -51,7 +52,7 @@ def show_categories():
 
     for item in items:
         liStyle=xbmcgui.ListItem(item["title"])
-        addDirectoryItem({"url": item["url"]}, liStyle)
+        addDirectoryItem({"mode": "video_files", "url": item["url"]}, liStyle)
     xbmcplugin.endOfDirectory(handle=handle, succeeded=True)
     
 def show_series():
@@ -60,37 +61,46 @@ def show_series():
 
     for item in items:
         liStyle=xbmcgui.ListItem(item["title"])
-        addDirectoryItem({"url": item["url"]}, liStyle)
+        addDirectoryItem({"mode": "video_files", "url": item["url"]}, liStyle)
     xbmcplugin.endOfDirectory(handle=handle, succeeded=True)
 
 def show_video_files(url):
     gtv = GuardianTV()
     items = gtv.getVideoByChannel(url)
     for item in items:
-        if "url" in item:
-            title = item["title"] + " (" + time.strftime("%d/%m/%Y %H:%M", 
item["date"]) + ")"
-            liStyle=xbmcgui.ListItem(title, thumbnailImage=item["thumb"])
-            liStyle.setInfo(type="video",
-                infoLabels={"Title": title
-                            })
-            liStyle.setProperty("mimetype", "video/mp4")
-            addLinkItem(item["url"], liStyle)
+        title = item["title"] + " (" + time.strftime("%d/%m/%Y %H:%M", 
item["date"]) + ")"
+        liStyle=xbmcgui.ListItem(title, thumbnailImage=item["thumb"])
+        addLinkItem({"mode": "play", "url": item["pageUrl"]}, liStyle)
     xbmcplugin.endOfDirectory(handle=handle, succeeded=True)
 
-
+def play(pageUrl):
+    gtv = GuardianTV()
+    video = gtv.getVideoMetadata(pageUrl)
+    
+    # Check if video url is present
+    if video["url"] == None:
+        dialog = xbmcgui.Dialog()
+        dialog.ok("The Guardian", "Video URL not found.")
+        return
+        
+    liStyle=xbmcgui.ListItem(video["title"], thumbnailImage=video["thumb"])
+    xbmc.Player().play(video["url"], liStyle)
+    
 # parameter values
 params = parameters_string_to_dict(sys.argv[2])
-optionId = str(params.get("option_id", ""))
+mode = str(params.get("mode", ""))
 url = str(params.get("url", ""))
 
-if optionId == "" and url == "":
+if mode == "" and url == "":
     show_root_folder()
-elif optionId == "latest":
+elif mode == "latest":
     gtv = GuardianTV()
     show_video_files(gtv.getLatestVideoURL())
-elif optionId == "categories":
+elif mode == "categories":
     show_categories()
-elif optionId == "series":
+elif mode == "series":
     show_series()    
-else:
+elif mode == "video_files":
     show_video_files(url)
+else:
+    play(url)
\ No newline at end of file
diff --git a/plugin.video.guardian/resources/lib/guardian.py 
b/plugin.video.guardian/resources/lib/guardian.py
index 35ab768..44ca95a 100644
--- a/plugin.video.guardian/resources/lib/guardian.py
+++ b/plugin.video.guardian/resources/lib/guardian.py
@@ -2,7 +2,6 @@ import urllib2
 from xml.dom import minidom
 import time
 import datetime
-import re
 from email.utils import parsedate_tz
 from email.utils import mktime_tz
 from BeautifulSoup import BeautifulSoup
@@ -30,6 +29,9 @@ class GuardianTV:
         for link in links:
             channel = {}
             channel["title"] = link.text
+            # Katine RSS is missing
+            if channel["title"] == "Katine":
+                continue
             channel["url"] = link["href"]
             channel["url"] = channel["url"] + "/rss"
             channels.append(channel)
@@ -60,30 +62,48 @@ class GuardianTV:
         videos = []
         for videoNode in dom.getElementsByTagName('item'):
             video = {}
+            
             video["title"] = 
videoNode.getElementsByTagName('title')[0].firstChild.data.strip()
             
             try:
                 video["description"] = 
videoNode.getElementsByTagName('description')[0].firstChild.data
             except:
                 video["description"] = ""
+            
             dt = videoNode.getElementsByTagName('pubDate')[0].firstChild.data
             video["date"] = time.gmtime((mktime_tz(parsedate_tz(dt))))
             
+            video["thumb"] = ""
             for mediaContent in 
videoNode.getElementsByTagName('media:content'):
                 mimeType = mediaContent.attributes["type"].value
-                if mimeType == "video/mp4" or mimeType == "video/mpeg4":
-                    video["url"] = mediaContent.attributes["url"].value
                 if mimeType == "image/jpeg":
                     video["thumb"] = mediaContent.attributes["url"].value
-
-            if "url" not in video:
-                # Parse the HTML page to get the Video URL
-                pageUrl = 
videoNode.getElementsByTagName('link')[0].firstChild.data.strip()
-                htmlData = urllib2.urlopen(pageUrl).read()
-                match = re.compile("file\s+: '(.+?)'").findall(htmlData)
-                if match:
-                    video["url"] = match[0]
-
+                    break
+                    
+            video["pageUrl"] = 
videoNode.getElementsByTagName('link')[0].firstChild.data.strip()
+            
             videos.append(video)
             
         return videos
+
+    def getVideoMetadata(self, pageUrl):
+        # Parse the HTML page to get the Video Metadata
+        data = urllib2.urlopen(pageUrl).read()
+        tree = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES)
+        
+        video = {}
+        video["title"] = tree.find("meta", {"property": "og:title"})["content"]
+        video["thumb"] = tree.find("meta", {"property": "og:image"})["content"]
+        video["url"] = None
+        
+        videoNode = tree.find("video")
+        if videoNode is not None:
+            video["url"]  = videoNode.find("source", {"type": 
"video/mp4"})["src"]
+        else:
+            # Youtube
+            iframe = tree.find("iframe")
+            if iframe is not None:
+                videoId = iframe["id"].replace("ytplayer-","")
+                video["url"] = 
"plugin://plugin.video.youtube/?action=play_video&videoid=%s" % videoId
+        
+        return video
\ No newline at end of file

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=2a9e2653cf1eb490f6e1e05f629a5a31bdc97fcb

commit 2a9e2653cf1eb490f6e1e05f629a5a31bdc97fcb
Author: Martijn Kaijser <mcm.kaij...@gmail.com>
Date:   Thu Sep 11 18:02:47 2014 +0200

    [plugin.video.gameone] 2.0.6

diff --git a/plugin.video.gameone/addon.xml b/plugin.video.gameone/addon.xml
index e26a793..2bdc33d 100644
--- a/plugin.video.gameone/addon.xml
+++ b/plugin.video.gameone/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<addon id="plugin.video.gameone" name="Gameone" version="2.0.3" 
provider-name="liquex, membrane">
+<addon id="plugin.video.gameone" name="Gameone" version="2.0.6" 
provider-name="liquex, membrane">
        <requires>
                <import addon="xbmc.python" version="2.1.0"/>
        </requires>
diff --git a/plugin.video.gameone/changelog.txt 
b/plugin.video.gameone/changelog.txt
index 14b6ca2..eaa61db 100644
--- a/plugin.video.gameone/changelog.txt
+++ b/plugin.video.gameone/changelog.txt
@@ -1,3 +1,15 @@
+2.0.6 (22.08.2014)
+- Fixed crashes caused by the last update
+
+2.0.5 (21.08.2014)
+- Removed Playtube category for now
+- Fixed blog category thumbnails
+- Fixed blog videos not playing
+- Improved playback for some videos
+
+2.0.4 (19.08.2014)
+- Fixed TV category again
+
 2.0.3 (15.08.2014)
 - Fixed selection of a wrong resolution in some cases
 
@@ -16,7 +28,7 @@
 - Fixed browsing for blog posts with multiple pages
 - Added basic logging
 
-1.0.0 (14.02.2014)
+1.0.0 (14.02.2014)
 - Code cleanup
 - Browse TV episodes by year
 - Fixed blog entries (now only posts with videos will be shown)
diff --git a/plugin.video.gameone/default.py b/plugin.video.gameone/default.py
index 32fb52c..ed72287 100644
--- a/plugin.video.gameone/default.py
+++ b/plugin.video.gameone/default.py
@@ -31,8 +31,7 @@ url_base              = 'http://www.gameone.de'
 url_year               = url_base + '/tv/year/'
 url_podcast            = url_base + '/feed/podcast.xml'
 url_episode            = 
'http://www.gameone.de/api/mrss/mgid%3Agameone%3Avideo%3Amtvnn.com%3Atv_show-'
-#url_swf                       = 
'https://playermtvnn-a.akamaihd.net/g2/g2player_2.1.7.swf'            # For 
some reason the new player doesn't appear to work on Windows (https?)
-url_swf                        = 
'http://media.mtvnservices.com/player/prime/mediaplayerprime.1.9.0.swf'
+url_swf                        = 
'http://www.gameone.de/flash/g2player_2.1.9.beta3.swf'
 
 
 def log(message, lvl=xbmc.LOGNOTICE):
@@ -96,14 +95,15 @@ def parse_content(string, pattern=False, dotall=False):
                content = string        
        
        if (pattern != False):
+               log('Expression: ' + str(pattern), xbmc.LOGDEBUG)
                if (dotall == True):
                        match = re.compile(pattern, re.DOTALL).findall(content)
                else:
                        match = re.compile(pattern).findall(content)
-               log('Parsing finished - ' + str(len(match)) + ' Elements', 
xbmc.LOGDEBUG)
+               log(str(len(match)) + ' matches', xbmc.LOGDEBUG)
                return match
        else:
-               log('No pattern found, returning whole content.', xbmc.LOGDEBUG)
+               log('No expression found, returning whole content.', 
xbmc.LOGDEBUG)
                return content
 
 
@@ -141,7 +141,6 @@ class plugin_structure():
        def show_menu_root(self):
                add_menu_item('ITEMTYPE_DIRECTORY', translation(30101), 
url_base + '/tv',               'show_menu_tv')
                add_menu_item('ITEMTYPE_DIRECTORY', translation(30102), 
url_base + '/blog',             'show_menu_blog')
-               add_menu_item('ITEMTYPE_DIRECTORY', translation(30103), 
url_base + '/playtube', 'show_menu_playtube')
                add_menu_item('ITEMTYPE_DIRECTORY', translation(30104), 
url_podcast,                    'show_menu_podcasts')
                
                if addon.getSetting(id='showsettings') == 'true':
@@ -168,7 +167,7 @@ class plugin_structure():
        def show_menu_tv_episodes(self):
                log('Indexing TV episodes: ' + url, xbmc.LOGDEBUG)
                
-               match_episodes = parse_content(url, '<a href="/tv/([0-9]+)" 
class="image_link"><img alt=".+?" src="(.+?)" /></a>\n<h5>\n<a href=\'.+?\' 
title=\'(.+?)\'', True)
+               match_episodes = parse_content(url, '<a href="/tv/([0-9]+)" 
class="image_link"><img.+?/><noscript><img 
src="(.+?)".+?/></noscript></a>\n<h5>\n<a href=\'.+?\' title=\'(.+?)\'', True)
                for episode,thumbnail,title in match_episodes:
                        title = translation(30002) + ' ' + episode + ' - ' + 
title
                        add_menu_item('ITEMTYPE_VIDEO', title, url_episode + 
episode, 'play_tv_episode', thumbnail)
@@ -197,7 +196,6 @@ class plugin_structure():
                        video_url = video_file + ' swfurl=' + url_swf + ' 
swfvfy=true' + ' pageUrl=www.gameone.de app=ondemand?ovpfv=2.1.4'
                        
                        item = xbmcgui.ListItem(path=video_url)
-                       item.setProperty('mimetype', 'video/x-flv')
                        return xbmcplugin.setResolvedUrl(pluginhandle, True, 
item)
 
                xbmcplugin.endOfDirectory(handle=pluginhandle)
@@ -214,7 +212,7 @@ class plugin_structure():
                for teaser in match_teasers:
                        match_categories = parse_content(teaser, '<a 
title="(.+?)" href="(.+?)">.+?<img.+?src="(.+?)"', True)
                        for category,url_category,thumbnail in match_categories:
-                               add_menu_item('ITEMTYPE_DIRECTORY', category, 
url_base + url_category, 'show_menu_blog_entries', url_base + thumbnail)
+                               add_menu_item('ITEMTYPE_DIRECTORY', category, 
url_base + url_category, 'show_menu_blog_entries', thumbnail)
                
                xbmcplugin.endOfDirectory(handle=pluginhandle)
        
@@ -253,12 +251,16 @@ class plugin_structure():
                match_content   = parse_content(url)
                match_video             = parse_content(match_content, 
'video_meta-(.+?)"')
                match_thumb             = parse_content(match_content, 
'"image", "(.+?)"', True)
-               match_title             = parse_content(match_content, 
'<p><strong>(.+?):</strong>', True)
+               match_title             = parse_content(match_content, 
'<p><strong>(.+?)</strong>', True)
                match_next              = parse_content(match_content, '<a 
class="forwards" href="(.+?)">')
                
                i = 0
                for video_id in match_video:
-                       add_menu_item('ITEMTYPE_VIDEO', match_title[i], 
video_id, 'play_blog_video', match_thumb[i])
+                       try: title = match_title[i]
+                       except: title = translation(30003)
+                       if title[-1:] == ':':
+                               title = title[:-1]
+                       add_menu_item('ITEMTYPE_VIDEO', title, video_id, 
'play_blog_video', match_thumb[i])
                        i = i + 1
                
                for url_next in match_next:
@@ -272,50 +274,10 @@ class plugin_structure():
                
                url_video = self.get_video(url)
                item = xbmcgui.ListItem(path=url_video)
-               item.setProperty('mimetype', 'video/x-flv')
+               #item.setProperty('mimetype', 'video/x-flv')
                xbmcplugin.setResolvedUrl(pluginhandle, True, item)
                
                xbmcplugin.endOfDirectory(handle=pluginhandle)
-
-
-
-       #CATEGORY: PLAYTUBE
-       def show_menu_playtube(self):
-               log('Indexing Playtube categories', xbmc.LOGDEBUG)
-               
-               match_container = parse_content(url, "<ul 
class='channels'>(.+?)</ul>", True)[0]
-               match_channels  = parse_content(match_container, "<a 
class='name' href='(.+?)' title='(.+?)'>", True)
-               
-               for url_channel,title in match_channels:
-                       if not title == 'GameTrailers':
-                               add_menu_item('ITEMTYPE_DIRECTORY', title, 
url_channel, 'show_menu_playtube_videos')
-               
-               xbmcplugin.endOfDirectory(handle=pluginhandle)
-
-
-       def show_menu_playtube_videos(self):
-               log('Indexing Playtube videos', xbmc.LOGDEBUG)
-               
-               match_content   = parse_content(url)
-               match_video             = parse_content(match_content, '<h3><a 
href="(.+?)">(.+?)</a></h3>\n<p><a href=".+?">.+?</a></p>\n</div>\n<a 
href=".+?" class="img_link"><img alt=".+?" src="(.+?)" /></a>', True)
-               match_next              = parse_content(match_content, '<a 
class="next_page" rel="next" href="(.+?)"')
-               
-               for url_video,title,thumbnail in match_video:
-                       add_menu_item('ITEMTYPE_VIDEO', title, url_video, 
'play_playtube_video', thumbnail)
-                       
-               for url_next in match_next:
-                       add_menu_item('ITEMTYPE_DIRECTORY', translation(30001), 
url_base + url_next, 'show_menu_playtube_videos')
-
-               xbmcplugin.endOfDirectory(handle=pluginhandle)
-               
-       
-       def play_playtube_video(self):
-               log('Playing Playtube video: ' + url, xbmc.LOGDEBUG)
-               
-               match_video = parse_content(url, 'video_meta-(.+?)"')[0]
-               url_video = self.get_video(match_video)
-
-               self.play_media(url_video)
                
                
        
diff --git a/plugin.video.gameone/resources/language/English/strings.xml 
b/plugin.video.gameone/resources/language/English/strings.xml
index 4ca693d..4300f59 100644
--- a/plugin.video.gameone/resources/language/English/strings.xml
+++ b/plugin.video.gameone/resources/language/English/strings.xml
@@ -3,12 +3,12 @@
        <!-- general -->
        <string id="30001">Next Page</string>
        <string id="30002">Episode</string>
+       <string id="30003">Untitled</string>
        
        <!-- main menu -->
        <string id="30100">Settings</string>
        <string id="30101">TV</string>
        <string id="30102">Blog</string>
-       <string id="30103">Playtube</string>
        <string id="30104">Podcast</string>
        
        <!-- blog menu -->
diff --git a/plugin.video.gameone/resources/language/German/strings.xml 
b/plugin.video.gameone/resources/language/German/strings.xml
index 4a6ca64..b6364e1 100644
--- a/plugin.video.gameone/resources/language/German/strings.xml
+++ b/plugin.video.gameone/resources/language/German/strings.xml
@@ -3,12 +3,12 @@
        <!-- general -->
        <string id="30001">Nächste Seite</string>
        <string id="30002">Folge</string>
+       <string id="30003">Ohne Titel</string>
        
        <!-- main menu -->
        <string id="30100">Einstellungen</string>
        <string id="30101">TV</string>
        <string id="30102">Blog</string>
-       <string id="30103">Playtube</string>
        <string id="30104">Podcast</string>
        
        <!-- blog menu -->

http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=commit;h=ede5e6fd495ffae9c20fe6dd33df1b8ffdc49a0d

commit ede5e6fd495ffae9c20fe6dd33df1b8ffdc49a0d
Author: Martijn Kaijser <mcm.kaij...@gmail.com>
Date:   Thu Sep 11 18:00:20 2014 +0200

    [plugin.video.newyorktimes] 1.5.0

diff --git a/plugin.video.newyorktimes/addon.py 
b/plugin.video.newyorktimes/addon.py
index 20e310d..edd50c8 100755
--- a/plugin.video.newyorktimes/addon.py
+++ b/plugin.video.newyorktimes/addon.py
@@ -52,18 +52,13 @@ def show_topic(url):
     return subtopics + items
 
 
-def update_url_for_rtmp(url, XXL4HIRES):
+def update_url_for_rtmp(url):
     '''Appends playpath option for an RTMP url. Other url types are
     returned unchanged.
 
     For brightcove urls, the playpath is after the '&'.
 
     '''
-    # 201408: new renditions (video resolutions) have been added... and FLVURL 
is anchored to 3g resolution (?)
-    #         maybe in the future renditions[] should be parsed and resolution 
selected by "encodingRate".
-    url = re.sub(r'^(.+_wg_16x9)_.+_.+_.+\.mp4$', r'\1_xl_bb_mm.mp4', url)
-    if XXL4HIRES == 'true': 
-        url=url.replace('_xl_bb_mm.mp4','_xxxl_hb_mm.mp4') 
     if url.startswith('rtmp'):
         return '%s playpath=%s' % (url, url.split('&', 1)[1])
     return url
@@ -74,9 +69,34 @@ def item_from_video(video, XXL4HIRES):
     brightcove api Video.
 
     '''
+    # extract the best possible resolution from renditions[] given the 
XXL4HIRES option:
+    url=url_best=''
+    signal=signal_best=0
+    for p in video.renditions: 
+        url=''
+        signal=0
+        for q in p: 
+            if q[0] == 'url':
+                url=q[1]
+                if XXL4HIRES == 'false' and signal == 1: break
+            if q[0] == 'frameHeight':
+                if XXL4HIRES == 'false':
+                    if q[1]>400 and q[1]<500:
+                        signal=1
+                        if url != '': break
+                else:
+                    if q[1]>signal:
+                        signal=q[1]
+        if XXL4HIRES == 'false' and signal == 1: 
+            url_best=url
+            break
+        if XXL4HIRES == 'true' and signal > signal_best:
+            signal_best=signal
+            url_best=url
+
     item = {
         'label': video.name,
-        'path': update_url_for_rtmp(video.FLVURL, XXL4HIRES),
+        'path': update_url_for_rtmp(url_best),
         'info': info_from_video(video),
         'is_playable': True,
     }
diff --git a/plugin.video.newyorktimes/addon.xml 
b/plugin.video.newyorktimes/addon.xml
index bf0694f..99a99bc 100644
--- a/plugin.video.newyorktimes/addon.xml
+++ b/plugin.video.newyorktimes/addon.xml
@@ -1,4 +1,4 @@
-<addon id="plugin.video.newyorktimes" name="New York Times" 
provider-name="Jonathan Beluch (jbel), idleloop" version="1.4.3">
+<addon id="plugin.video.newyorktimes" name="New York Times" 
provider-name="Jonathan Beluch (jbel), idleloop" version="1.5">
   <requires>
     <import addon="xbmc.python" version="2.1.0" />
     <import addon="script.module.beautifulsoup" version="3.2.0" />
diff --git a/plugin.video.newyorktimes/changelog.txt 
b/plugin.video.newyorktimes/changelog.txt
index c04c429..fe6d3f0 100644
--- a/plugin.video.newyorktimes/changelog.txt
+++ b/plugin.video.newyorktimes/changelog.txt
@@ -1,4 +1,7 @@
-Version 1.4.3
+Version 1.5
+* video urls are now always correctly extracted, given the resolution chosen
+
+Version 1.4.3 to 1.4.4
 * changed video urls as per website changes
 
 Version 1.4 to 1.4.2
diff --git a/plugin.video.newyorktimes/resources/settings.xml 
b/plugin.video.newyorktimes/resources/settings.xml
index a1c3dec..a393be6 100644
--- a/plugin.video.newyorktimes/resources/settings.xml
+++ b/plugin.video.newyorktimes/resources/settings.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <settings>
-<setting id="xxl4hires" type="bool" label="Try to access higher resolution 
videos" default="false"/>
+<setting id="xxl4hires" type="bool" label="HD videos" default="false"/>
 </settings>

-----------------------------------------------------------------------

Summary of changes:
 plugin.video.foodnetwork/README.txt                |    1 +
 plugin.video.foodnetwork/addon.xml                 |    2 +-
 plugin.video.foodnetwork/changelog.txt             |    2 +
 plugin.video.foodnetwork/default.py                |   48 ++++++++-------
 .../resources/language/English/strings.xml         |    8 +++
 plugin.video.foodnetwork/resources/settings.xml    |    3 +-
 plugin.video.gameone/addon.xml                     |    2 +-
 plugin.video.gameone/changelog.txt                 |   14 ++++-
 plugin.video.gameone/default.py                    |   64 ++++----------------
 .../resources/language/English/strings.xml         |    2 +-
 .../resources/language/German/strings.xml          |    2 +-
 plugin.video.guardian/addon.xml                    |    3 +-
 plugin.video.guardian/changelog.txt                |    5 +-
 plugin.video.guardian/default.py                   |   54 ++++++++++-------
 plugin.video.guardian/resources/lib/guardian.py    |   44 ++++++++++----
 plugin.video.newyorktimes/.travis.yml              |    7 --
 plugin.video.newyorktimes/addon.py                 |   34 ++++++++--
 plugin.video.newyorktimes/addon.xml                |    2 +-
 plugin.video.newyorktimes/changelog.txt            |    5 +-
 plugin.video.newyorktimes/resources/settings.xml   |    2 +-
 plugin.video.raitv/addon.xml                       |    2 +-
 plugin.video.raitv/changelog.txt                   |    3 +
 plugin.video.raitv/default.py                      |   14 +----
 23 files changed, 178 insertions(+), 145 deletions(-)
 delete mode 100644 plugin.video.newyorktimes/.travis.yml


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
Xbmc-addons@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to