The branch, frodo has been updated
       via  cecc77427417409ca6266a341cbf5d789dab4277 (commit)
       via  1497f2ecabefa0cf34713648a0cb5a3fc8193809 (commit)
      from  95e218c3882f441061963652e9f7c4a291105e9a (commit)

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

commit cecc77427417409ca6266a341cbf5d789dab4277
Author: beenje <[email protected]>
Date:   Fri Mar 22 22:37:47 2013 +0100

    [plugin.video.bliptv] updated to version 1.8.3

diff --git a/plugin.video.bliptv/BlipTVScraper.py 
b/plugin.video.bliptv/BlipTVScraper.py
index a752d18..aad08cf 100644
--- a/plugin.video.bliptv/BlipTVScraper.py
+++ b/plugin.video.bliptv/BlipTVScraper.py
@@ -120,15 +120,15 @@ class BlipTVScraper:
             url = self.createUrl(params, page)
 
             result = self.common.fetchPage({"link": url})
-            lst = self.common.parseDOM(result["content"], "div", {"class": 
"EpisodeCard Extended"})
+            lst = self.common.parseDOM(result["content"], "div", {"class": 
"MyBlipEpisodeCardWrap"})
 
-            if len(lst) > 0 and page <= 20:
+            if len(lst) > 0 and page <= 50:
                 next = "true"
 
             for ep in lst:
-                title = self.common.parseDOM(ep, "h5", ret="title")
-                videoid = self.common.parseDOM(ep, "a", attrs={"class": 
"EpisodeThumb"}, ret="href")
-                image = self.common.parseDOM(ep, "img", attrs={"class": 
"ThumbnailImage"}, ret="src")
+                title = self.common.parseDOM(ep, "span", 
{"class":"EpisodeTitle"})[0]
+                videoid = self.common.parseDOM(ep, "a", attrs={"class": 
"EpisodeCardLink"}, ret="href")
+                image = self.common.parseDOM(ep, "img", attrs={"class": 
"Thumb"}, ret="src")
 
                 item = {}
                 item["videoid"] = videoid[0][videoid[0].rfind("-") + 1:]
diff --git a/plugin.video.bliptv/addon.xml b/plugin.video.bliptv/addon.xml
index 6f06751..5d3a077 100644
--- a/plugin.video.bliptv/addon.xml
+++ b/plugin.video.bliptv/addon.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<addon id="plugin.video.bliptv" name="BlipTV" provider-name="TheCollective" 
version="1.8.2">
+<addon id="plugin.video.bliptv" name="BlipTV" provider-name="TheCollective" 
version="1.8.3">
   <requires>
     <import addon="xbmc.python" version="2.1.0" />
     <import addon="script.common.plugin.cache" version="2.5.1" />
diff --git a/plugin.video.bliptv/changelog.txt 
b/plugin.video.bliptv/changelog.txt
index 6b2c2fe..4b38177 100644
--- a/plugin.video.bliptv/changelog.txt
+++ b/plugin.video.bliptv/changelog.txt
@@ -7,6 +7,9 @@
 
 [B]Errata[/B]
 
+[B]Version 0.8.3[/B]
+- Fixed: site changes broke episode search
+
 [B]Version 0.8.2[/B]
 - Fixed: site changes broke parts of the show scraper
 
diff --git a/plugin.video.bliptv/default.py b/plugin.video.bliptv/default.py
index 56d9a00..99c287e 100644
--- a/plugin.video.bliptv/default.py
+++ b/plugin.video.bliptv/default.py
@@ -26,7 +26,7 @@ try: import xbmcvfs
 except: import xbmcvfsdummy as xbmcvfs
 
 # plugin constants
-version = "1.8.2"
+version = "1.8.3"
 plugin = "BlipTV-" + version
 author = "TheCollective"
 url = "www.xbmc.com"

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

commit 1497f2ecabefa0cf34713648a0cb5a3fc8193809
Author: beenje <[email protected]>
Date:   Fri Mar 22 22:37:35 2013 +0100

    [plugin.video.youtube] updated to version 4.4.4

diff --git a/plugin.video.youtube/YouTubeCore.py 
b/plugin.video.youtube/YouTubeCore.py
index 9bd6ce4..2ff1547 100644
--- a/plugin.video.youtube/YouTubeCore.py
+++ b/plugin.video.youtube/YouTubeCore.py
@@ -476,13 +476,9 @@ class YouTubeCore():
 
             self.common.log("Result: %s " % repr(ret_obj), 9)
 
-            # Return result if it isn't age restricted
-            if (ret_obj["content"].find("verify-actions") == -1 and 
ret_obj["content"].find("verify-age-actions") == -1):
-                self.common.log("done")
-                ret_obj["status"] = 200
-                return ret_obj
-            else:
-                self.common.log("Youtube requires you to verify your age to 
view this content: " + repr(params))
+            self.common.log("done")
+            ret_obj["status"] = 200
+            return ret_obj
 
         except urllib2.HTTPError, e:
             cont = False
@@ -493,47 +489,22 @@ class YouTubeCore():
             if e.code == 400 or True:
                 self.common.log("Unhandled HTTPError : [%s] %s " % (e.code, 
msg), 1)
 
-            if msg.find("<?xml") > -1:
-                acted = False
-
-                self.common.log("REPLACE THIS MINIDOM WITH PARSEDOM: " + 
repr(msg))
-                import xml.dom.minidom as minidom
-                dom = minidom.parseString(msg)
-                self.common.log(str(len(msg)))
-                domains = dom.getElementsByTagName("domain")
-                codes = dom.getElementsByTagName("code")
-                for domain in domains:
-                    self.common.log(repr(domain.firstChild.nodeValue), 5)
-                    if domain.firstChild.nodeValue == "yt:quota":
-                        self.common.log("Hit quota... sleeping for 100 
seconds")
-                        time.sleep(100)
-                        acted = True
-
-                if not acted:
-                    for code in codes:
-                        self.common.log(repr(code.firstChild.nodeValue), 5)
-                        if code.firstChild.nodeValue == 
"too_many_recent_calls":
-                            self.common.log("Hit quota... sleeping for 10 
seconds")
-                            time.sleep(10)
-                            acted = True
-
-            else:  # Legacy this.
-                if msg.find("yt:quota") > 1:
-                    self.common.log("Hit quota... sleeping for 10 seconds")
-                    time.sleep(10)
-                elif msg.find("too_many_recent_calls") > 1:
-                    self.common.log("Hit quota... sleeping for 10 seconds")
-                    time.sleep(10)
-                elif err.find("Token invalid") > -1:
-                    self.common.log("refreshing token")
-                    self._oRefreshToken()
-                elif err.find("User Rate Limit Exceeded") > -1:
-                    self.common.log("Hit limit... Sleeping for 10 seconds")
-                    time.sleep(10)
-                else:
-                    if e.fp:
-                        cont = e.fp.read()
-                        self.common.log("HTTPError - Headers: " + 
str(e.headers) + " - Content: " + cont)
+            if msg.find("yt:quota") > 1:
+                self.common.log("Hit quota... sleeping for 10 seconds")
+                time.sleep(10)
+            elif msg.find("too_many_recent_calls") > 1:
+                self.common.log("Hit quota... sleeping for 10 seconds")
+                time.sleep(10)
+            elif err.find("Token invalid") > -1:
+                self.common.log("refreshing token")
+                self._oRefreshToken()
+            elif err.find("User Rate Limit Exceeded") > -1:
+                self.common.log("Hit limit... Sleeping for 10 seconds")
+                time.sleep(10)
+            else:
+                if e.fp:
+                    cont = e.fp.read()
+                    self.common.log("HTTPError - Headers: " + str(e.headers) + 
" - Content: " + cont)
 
             params["error"] = get("error", 0) + 1
             ret_obj = self._fetchPage(params)
diff --git a/plugin.video.youtube/YouTubeNavigation.py 
b/plugin.video.youtube/YouTubeNavigation.py
index 68a3d87..4773d0f 100644
--- a/plugin.video.youtube/YouTubeNavigation.py
+++ b/plugin.video.youtube/YouTubeNavigation.py
@@ -99,8 +99,8 @@ class YouTubeNavigation():
                     if (cat_get("path").rfind("/") <= len(path + "/")):
                         setting = 
self.settings.getSetting(cat_get("path").replace("/root/explore/", 
"").replace("/root/", ""))
                         if not setting or setting == "true":
-                            if (cat_get("feed") == "downloads"):
-                                if (self.settings.getSetting("downloadPath")):
+                            if cat_get("feed") == "downloads":
+                                if (self.settings.getSetting("download_path")):
                                     self.addListItem(params, category)
                             else:
                                 self.addListItem(params, category)
@@ -391,7 +391,7 @@ class YouTubeNavigation():
 
         listitem.setProperty("Folder", "true")
         if (item("feed") == "downloads"):
-            url = self.settings.getSetting("downloadPath")
+            url = self.settings.getSetting("download_path")
         self.xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, 
listitem=listitem, isFolder=True, totalItems=size)
         self.common.log("Done", 5)
 
diff --git a/plugin.video.youtube/YouTubePlayer.py 
b/plugin.video.youtube/YouTubePlayer.py
index 736d598..280f43f 100644
--- a/plugin.video.youtube/YouTubePlayer.py
+++ b/plugin.video.youtube/YouTubePlayer.py
@@ -215,7 +215,7 @@ class YouTubePlayer():
             return video_url
 
         if get("action") != "download":
-            video_url += " | " + self.common.USERAGENT
+            video_url += '|' + 
urllib.urlencode({'User-Agent':self.common.USERAGENT})
 
         self.common.log(u"Done")
         return video_url
@@ -295,9 +295,9 @@ class YouTubePlayer():
         found = False
 
         for line in data.split("\n"):
-            if line.strip().startswith("yt.playerConfig = "):
+            if line.strip().find(";ytplayer.config = ") > 0:
                 found = True
-                p1 = line.find("=")
+                p1 = line.find(";ytplayer.config = ") + len(";ytplayer.config 
= ") - 1
                 p2 = line.rfind(";")
                 if p1 <= 0 or p2 <= 0:
                     continue
@@ -370,13 +370,12 @@ class YouTubePlayer():
         get = params.get
 
         result = self.getVideoPageFromYoutube(get)
-        if self.isVideoAgeRestricted(result) and 
self.pluginsettings.userName() != "":
-            self.login.login()
-            result = self.getVideoPageFromYoutube(get)
-
         if self.isVideoAgeRestricted(result):
             self.common.log(u"Age restricted video")
-            if not self.pluginsettings.userHasProvidedValidCredentials():
+            if self.pluginsettings.userHasProvidedValidCredentials():
+                self.login._httpLogin({"new":"true"})
+                result = self.getVideoPageFromYoutube(get)
+            else:
                 self.utils.showMessage(self.language(30600), 
self.language(30622))
 
         if result[u"status"] != 200:
diff --git a/plugin.video.youtube/YouTubeSubtitleControl.py 
b/plugin.video.youtube/YouTubeSubtitleControl.py
index ea6bd2a..b1d9a49 100644
--- a/plugin.video.youtube/YouTubeSubtitleControl.py
+++ b/plugin.video.youtube/YouTubeSubtitleControl.py
@@ -53,7 +53,7 @@ class YouTubeSubtitleControl():
         style = u""
         result = u""
 
-        if self.settings.getSetting("annotations") == "true" and not 
"downloadPath" in video:
+        if self.settings.getSetting("annotations") == "true" and not 
"download_path" in video:
             xml = self.core._fetchPage({"link": self.urls["annotation_url"] % 
get('videoid')})
             if xml["status"] == 200 and xml["content"]:
                 (result, style) = self.transformAnnotationToSSA(xml["content"])
@@ -156,8 +156,8 @@ class YouTubeSubtitleControl():
 
         w.close()
 
-        if "downloadPath" in video:
-            self.xbmcvfs.rename(path, os.path.join(video["downloadPath"], 
filename))
+        if "download_path" in video:
+            self.xbmcvfs.rename(path, os.path.join(video["download_path"], 
filename))
 
 
     def getTranscriptionUrl(self, video={}):
@@ -349,7 +349,7 @@ class YouTubeSubtitleControl():
 
         filename = self.getSubtitleFileName(video)
 
-        download_path = 
os.path.join(self.settings.getSetting("downloadPath").decode("utf-8"), filename)
+        download_path = 
os.path.join(self.settings.getSetting("download_path").decode("utf-8"), 
filename)
         path = 
os.path.join(self.xbmc.translatePath(self.settings.getAddonInfo("profile")).decode("utf-8"),
 filename)
 
         set_subtitle = False
@@ -362,7 +362,7 @@ class YouTubeSubtitleControl():
             set_subtitle = True
 
         self.common.log(u"Done trying to locate: " + path, 4)
-        if self.xbmcvfs.exists(path) and not "downloadPath" in video and 
set_subtitle:
+        if self.xbmcvfs.exists(path) and not "download_path" in video and 
set_subtitle:
             player = self.xbmc.Player()
 
             i = 0
@@ -380,7 +380,7 @@ class YouTubeSubtitleControl():
         get = params.get
         result = u""
         if (get("action", "") != "download"):
-            path = self.settings.getSetting("downloadPath")
+            path = self.settings.getSetting("download_path")
             filename = u"".join(c for c in 
self.common.makeUTF8(video['Title']) if c not in self.utils.INVALID_CHARS) + 
u"-[" + get('videoid') + u"]" + u".mp4"
             path = os.path.join(path.decode("utf-8"), filename)
             try:
diff --git a/plugin.video.youtube/addon.xml b/plugin.video.youtube/addon.xml
index db92613..d217be0 100644
--- a/plugin.video.youtube/addon.xml
+++ b/plugin.video.youtube/addon.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<addon id="plugin.video.youtube" name="YouTube" provider-name="TheCollective" 
version="4.4.3">
+<addon id="plugin.video.youtube" name="YouTube" provider-name="TheCollective" 
version="4.4.4">
   <requires>
     <import addon="xbmc.python" version="2.1.0" />
     <import addon="script.module.simplejson" version="2.0.10" />
diff --git a/plugin.video.youtube/changelog.txt 
b/plugin.video.youtube/changelog.txt
index 45b6246..f3a082d 100644
--- a/plugin.video.youtube/changelog.txt
+++ b/plugin.video.youtube/changelog.txt
@@ -13,6 +13,12 @@
 - [XBMC] Has Excessive Memory use after running the plugin for prolonged 
periods of time
 - [RTMPDUMP] Doesn't support handshake type 10 which is required by youtube.
 
+[B]Version 3.4.4[/B]
+- Fixed playback after youtube javascript site changes
+- Fixed age verification, by making playback always do a full http login on 
restricted videos since google changed their detection algorithm
+- Fixed addition of User Agent was causing problems for Windows and IOS 
clients. (Thanks to m-hume on github for the fix)
+- Fixed download folder was not working for new users of the plugin. (Thanks 
to Ste Robinson, for pointing this out again)
+
 [B]Version 3.4.3[/B]
 - Fixed login
 
diff --git a/plugin.video.youtube/default.py b/plugin.video.youtube/default.py
index 06e5d94..fa62579 100644
--- a/plugin.video.youtube/default.py
+++ b/plugin.video.youtube/default.py
@@ -29,7 +29,7 @@ except ImportError:
     import xbmcvfsdummy as xbmcvfs
 
 # plugin constants
-version = "4.4.3"
+version = "4.4.4"
 plugin = "YouTube-" + version
 author = "TheCollective"
 url = "www.xbmc.com"

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

Summary of changes:
 plugin.video.bliptv/BlipTVScraper.py           |   10 ++--
 plugin.video.bliptv/addon.xml                  |    2 +-
 plugin.video.bliptv/changelog.txt              |    3 +
 plugin.video.bliptv/default.py                 |    2 +-
 plugin.video.youtube/YouTubeCore.py            |   67 +++++++-----------------
 plugin.video.youtube/YouTubeNavigation.py      |    6 +-
 plugin.video.youtube/YouTubePlayer.py          |   15 +++---
 plugin.video.youtube/YouTubeSubtitleControl.py |   12 ++--
 plugin.video.youtube/addon.xml                 |    2 +-
 plugin.video.youtube/changelog.txt             |    6 ++
 plugin.video.youtube/default.py                |    2 +-
 11 files changed, 53 insertions(+), 74 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_mar
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to