The branch, frodo has been updated
       via  32d0fbc34b16300151cb0db0cfa381abb47620d9 (commit)
       via  d79b4096374480494559a752d597be59799d0f22 (commit)
       via  5589f1bf8582a595459c45ed3a42ccac749eda9e (commit)
       via  d4dd0d11126f5bc54690fd0eda0a4f6c98ee7bb8 (commit)
       via  5b5fcd42197d364c14d2fdbd48fdcc42e715c396 (commit)
      from  a21bfecd6b9faab2aa8094e8a86b775c81265891 (commit)

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

commit 32d0fbc34b16300151cb0db0cfa381abb47620d9
Author: beenje <[email protected]>
Date:   Thu Apr 11 22:30:44 2013 +0200

    [plugin.video.mediathek] updated to version 0.5.3

diff --git a/plugin.video.mediathek/addon.xml b/plugin.video.mediathek/addon.xml
index 84cf2f6..9e8f941 100644
--- a/plugin.video.mediathek/addon.xml
+++ b/plugin.video.mediathek/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <addon
   id="plugin.video.mediathek"
-  version="0.5.2"
+  version="0.5.3"
   name="Mediathek"
   provider-name="Raptor 2101 [[email protected]]">
   <requires>
diff --git a/plugin.video.mediathek/changelog.txt 
b/plugin.video.mediathek/changelog.txt
index 06d9c09..0b3c65d 100644
--- a/plugin.video.mediathek/changelog.txt
+++ b/plugin.video.mediathek/changelog.txt
@@ -1,3 +1,4 @@
+0.5.2 - FIX: adopt some specialities in the ARD Format
 0.5.2 - FIX: Get all ARD features back working
 0.5.1 - FIX: Get ARD working again (without "Sendungen A-Z")
 0.5.0 - FIX: ORF-Program listing is parsed from Webseite instead of being 
hardcoded
diff --git a/plugin.video.mediathek/mediathek/ard.py 
b/plugin.video.mediathek/mediathek/ard.py
index f3b2c2e..fdb835f 100644
--- a/plugin.video.mediathek/mediathek/ard.py
+++ b/plugin.video.mediathek/mediathek/ard.py
@@ -160,18 +160,21 @@ class ARDMediathek(Mediathek):
       else:
         self.gui.log("Search AjaxLinks");
         for htmlTag in self.regex_ajaxLinkTag.finditer(mainPage):
-          htmlTag = self.regex_ajaxLinkTag.search(htmlTag.group()).group();
-          link = self.regex_ajaxLink.search(htmlTag).group();
-          ajaxPage = self.loadPage(self.rootLink + link);
-          elementCount = self.extractVideoObjects(ajaxPage);
-          if(elementCount == 0):
-            self.gui.log("no video objects found - retry search for ajax 
link");
-            htmlTag = self.regex_ajaxLinkTag.search(ajaxPage);
-            if(htmlTag is not None):
-              htmlTag = htmlTag.group();
-              link = self.regex_ajaxLink.search(htmlTag).group();
-              ajaxPage = self.loadPage(self.rootLink + link);
-              elementCount = self.extractVideoObjects(ajaxPage);
+          try:
+            htmlTag = self.regex_ajaxLinkTag.search(htmlTag.group()).group();
+            link = self.regex_ajaxLink.search(htmlTag).group();
+            ajaxPage = self.loadPage(self.rootLink + link);
+            elementCount = self.extractVideoObjects(ajaxPage);
+            if(elementCount == 0):
+              self.gui.log("no video objects found - retry search for ajax 
link");
+              htmlTag = self.regex_ajaxLinkTag.search(ajaxPage);
+              if(htmlTag is not None):
+                htmlTag = htmlTag.group();
+                link = self.regex_ajaxLink.search(htmlTag).group();
+                ajaxPage = self.loadPage(self.rootLink + link);
+                elementCount = self.extractVideoObjects(ajaxPage);
+          except:
+            continue;
     except:
       elementCount = 0;
     if(elementCount == 0):

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


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

commit 5589f1bf8582a595459c45ed3a42ccac749eda9e
Author: beenje <[email protected]>
Date:   Thu Apr 11 22:30:41 2013 +0200

    [plugin.video.myvideo_de] updated to version 0.2.2

diff --git a/plugin.video.myvideo_de/addon.py b/plugin.video.myvideo_de/addon.py
index 4bc7f78..b928e34 100644
--- a/plugin.video.myvideo_de/addon.py
+++ b/plugin.video.myvideo_de/addon.py
@@ -104,7 +104,7 @@ def __add_items(entries):
                 title = '>> %s %s >>' % (_('page'), entry['title'])
             items.append({
                 'label': title,
-                'icon': 'DefaultFolder.png',
+                'thumbnail': 'DefaultFolder.png',
                 'path': plugin.url_for(
                     endpoint='show_path',
                     path=entry['path']
@@ -113,7 +113,7 @@ def __add_items(entries):
         elif entry['is_folder']:
             items.append({
                 'label': entry['title'],
-                'icon': entry.get('thumb', 'DefaultFolder.png'),
+                'thumbnail': entry.get('thumb', 'DefaultFolder.png'),
                 'path': plugin.url_for(
                     endpoint='show_path',
                     path=entry['path']
@@ -126,7 +126,7 @@ def __add_items(entries):
             )
             items.append({
                 'label': entry['title'],
-                'icon': entry.get('thumb', 'DefaultVideo.png'),
+                'thumbnail': entry.get('thumb', 'DefaultVideo.png'),
                 'info': {
                     'plot': entry.get('description', ''),
                     'studio': entry.get('username', ''),
@@ -171,6 +171,9 @@ def download_video(video_id):
     sd = SimpleDownloader.SimpleDownloader()
     video = scraper.get_video(video_id)
     filename = __get_legal_filename(video['title'])
+    if 'hls_playlist' in video:
+        plugin.notify(_('Download not supported'))
+        return
     if not video['rtmpurl']:
         params = {
             'url': video['filepath'] + video['file'],
@@ -193,6 +196,9 @@ def download_video(video_id):
 @plugin.route('/video/<video_id>/play')
 def watch_video(video_id):
     video = scraper.get_video(video_id)
+    if 'hls_playlist' in video:
+        __log('watch_video using HLS')
+        video_url = video['hls_playlist']
     if not video['rtmpurl']:
         __log('watch_video using FLV')
         video_url = video['filepath'] + video['file']
diff --git a/plugin.video.myvideo_de/addon.xml 
b/plugin.video.myvideo_de/addon.xml
index 6bc5716..ee406a5 100644
--- a/plugin.video.myvideo_de/addon.xml
+++ b/plugin.video.myvideo_de/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.myvideo_de" name="MyVideo.de" version="0.2.1" 
provider-name="Tristan Fischer ([email protected])">
+<addon id="plugin.video.myvideo_de" name="MyVideo.de" version="0.2.2" 
provider-name="Tristan Fischer ([email protected])">
     <requires>
         <import addon="xbmc.python" version="2.1.0"/>
         <import addon="script.module.xbmcswift2" version="2.4.0"/>
diff --git a/plugin.video.myvideo_de/changelog.txt 
b/plugin.video.myvideo_de/changelog.txt
index 9d29cfc..18713f5 100644
--- a/plugin.video.myvideo_de/changelog.txt
+++ b/plugin.video.myvideo_de/changelog.txt
@@ -1,3 +1,7 @@
+0.2.2 (11.04.2013)
+ - added possibility to play HLS videos
+ - fixed thumbnails in fullscreen OSD
+
 0.2.1 (04.04.2013)
  - added download possibility (rtmpdump binary needed!)
  - updated translations
diff --git a/plugin.video.myvideo_de/resources/lib/scraper.py 
b/plugin.video.myvideo_de/resources/lib/scraper.py
index 29c002d..9530c48 100644
--- a/plugin.video.myvideo_de/resources/lib/scraper.py
+++ b/plugin.video.myvideo_de/resources/lib/scraper.py
@@ -158,8 +158,8 @@ def get_video(video_id):
     encxml = ''
     videopage_url = MAIN_URL + 'watch/%s/' % video_id
     html = __get_url(videopage_url, MAIN_URL)
-    video['title'] = re.search(r_title, html).group(1)
-    sec = re.search(r_adv, html).group(1)
+    video['title'] = r_title.search(html).group(1)
+    sec = r_adv.search(html).group(1)
     for (a, b) in re.findall(r_adv_p, sec):
         if not a == '_encxml':
             params[a] = b
@@ -178,24 +178,25 @@ def get_video(video_id):
     enc_data_b = unhexlify(enc_data)
     sk = __md5(b64decode(b64decode(GK)) + __md5(str(video_id)))
     dec_data = __rc4crypt(enc_data_b, sk)
-    rtmpurl = re.search(r_rtmpurl, dec_data).group(1)
+    rtmpurl = r_rtmpurl.search(dec_data).group(1)
     video['rtmpurl'] = unquote(rtmpurl)
     if 'myvideo2flash' in video['rtmpurl']:
         __log('get_video forcing RTMPT')
         video['rtmpurl'] = video['rtmpurl'].replace('rtmpe://', 'rtmpt://')
-    playpath = re.search(r_playpath, dec_data).group(1)
+    playpath = r_playpath.search(dec_data).group(1)
     video['file'] = unquote(playpath)
+    m_filepath = r_path.search(dec_data)
+    video['filepath'] = m_filepath.group(1)
     if not video['file'].endswith('f4m'):
         ppath, prefix = unquote(playpath).split('.')
         video['playpath'] = '%s:%s' % (prefix, ppath)
     else:
-        raise NotImplementedError
-        video['playpath'] = video['file']
-    swfobj = re.search(r_swf, html).group(1)
+        video['hls_playlist'] = (
+            video['filepath'] + video['file']
+        ).replace('.f4m', '.m3u8')
+    swfobj = r_swf.search(html).group(1)
     video['swfobj'] = unquote(swfobj)
     video['pageurl'] = videopage_url
-    m_filepath = re.search(r_path, dec_data)
-    video['filepath'] = m_filepath.group(1)
     return video
 
 
@@ -442,7 +443,7 @@ def __parse_channels(tree):
                 'a', {'class': 'pView pSmaller pnBack'}
             )
             if prev_link:
-                link = re.search(r_pagelink, prev_link['onclick']).group(1)
+                link = r_pagelink.search(prev_link['onclick']).group(1)
                 items.append({
                     'title': prev_link['title'],
                     'pagenination': 'PREV',
@@ -452,7 +453,7 @@ def __parse_channels(tree):
                 'a', {'class': 'pView pSmaller pnNext'}
             )
             if next_link:
-                link = re.search(r_pagelink, next_link['onclick']).group(1)
+                link = r_pagelink.search(next_link['onclick']).group(1)
                 items.append({
                     'title': next_link['title'],
                     'pagenination': 'NEXT',
@@ -484,7 +485,7 @@ def __parse_channels(tree):
         if pagination:
             prev_link = pagination.find('a', {'class': 'pView pnBack'})
             if prev_link:
-                link = re.search(r_pagelink, prev_link['onclick']).group(1)
+                link = r_pagelink.search(prev_link['onclick']).group(1)
                 items.append({
                     'title': prev_link['title'],
                     'pagenination': 'PREV',
@@ -492,7 +493,7 @@ def __parse_channels(tree):
                 })
             next_link = pagination.find('a', {'class': 'pView pnNext'})
             if next_link:
-                link = re.search(r_pagelink, next_link['onclick']).group(1)
+                link = r_pagelink.search(next_link['onclick']).group(1)
                 items.append({
                     'title': next_link['title'],
                     'pagenination': 'NEXT',
@@ -549,7 +550,7 @@ def __parse_movies(tree):
     if pagination:
         prev_link = pagination.find('a', {'class': 'pView pnBack'})
         if prev_link:
-            link = re.search(r_pagelink, prev_link['onclick']).group(1)
+            link = r_pagelink.search(prev_link['onclick']).group(1)
             items.append({
                 'title': prev_link['title'],
                 'pagenination': 'PREV',
@@ -557,7 +558,7 @@ def __parse_movies(tree):
             })
         next_link = pagination.find('a', {'class': 'pView pnNext'})
         if next_link:
-            link = re.search(r_pagelink, next_link['onclick']).group(1)
+            link = r_pagelink.search(next_link['onclick']).group(1)
             items.append({
                 'title': next_link['title'],
                 'pagenination': 'NEXT',
@@ -635,7 +636,7 @@ def __format_length(length_str):
 def __detect_folder(path):
     video_id = None
     is_folder = True
-    m_id = re.search(R_ID, path)
+    m_id = R_ID.search(path)
     if m_id:
         video_id = m_id.group(1)
         is_folder = False

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

commit d4dd0d11126f5bc54690fd0eda0a4f6c98ee7bb8
Author: beenje <[email protected]>
Date:   Thu Apr 11 22:30:35 2013 +0200

    [plugin.video.neterratv] updated to version 0.1.9

diff --git a/plugin.video.neterratv/addon.xml b/plugin.video.neterratv/addon.xml
index b924b2d..f1270be 100644
--- a/plugin.video.neterratv/addon.xml
+++ b/plugin.video.neterratv/addon.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="plugin.video.neterratv" name="Neterra.TV" version="0.0.8" 
provider-name="[email protected]">
+<addon id="plugin.video.neterratv" name="Neterra.TV" version="0.1.9" 
provider-name="[email protected]">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
     <import addon="script.module.xbmcswift" version="0.2.0"/>    
@@ -14,12 +14,13 @@
     <summary lang="de">Video plugin für Neterra.TV 
http://www.neterra.tv/</summary>
     <description lang="en">
     This plugin provides access to tv videos streams from Neterra.TV.
-    Note: Neterra.TV account is required.
-    </description>   
+    Note: Neterra.TV account is required.</description>   
     <description lang="de">
     Dieses plugin bietet Zugriff auf alle Videos Streams from Neterra.TV.
-    Note: Neterra.TV Benutzer ist erforderlich.
-    </description>   
+    Note: Neterra.TV Benutzer ist erforderlich.</description>   
     <disclaimer lang="en">You have to sign up and pay to access Neterra.TV TV 
streams</disclaimer>
+    <website></website>
+    <source>git://github.com/mrolix/plugin.video.neterratv.git</source>
+    <email>[email protected]</email>
   </extension>
 </addon>
\ No newline at end of file
diff --git a/plugin.video.neterratv/changelog.txt 
b/plugin.video.neterratv/changelog.txt
index 6301949..7699cdb 100644
--- a/plugin.video.neterratv/changelog.txt
+++ b/plugin.video.neterratv/changelog.txt
@@ -30,3 +30,6 @@ Todo: Need function to delete cookie file
 0.0.8
 - changed code to work with new neterra website using flashplayer
 - some code make-up
+
+0.1.9
+- increased version number to Frodo version
\ No newline at end of file

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

commit 5b5fcd42197d364c14d2fdbd48fdcc42e715c396
Author: beenje <[email protected]>
Date:   Thu Apr 11 22:30:34 2013 +0200

    [plugin.video.day9] updated to version 2.1.5

diff --git a/plugin.video.day9/addon.xml b/plugin.video.day9/addon.xml
index 13e31d4..f2d6242 100644
--- a/plugin.video.day9/addon.xml
+++ b/plugin.video.day9/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.day9"
        name="Day[9].tv archive"
-       version="2.1.4"
+       version="2.1.5"
        provider-name="Robert">
   <requires>
     <import addon="xbmc.python" version='2.1.0'/>
@@ -18,5 +18,11 @@
     <platform>all</platform>
     <summary>Day[9].tv Archive</summary>
     <description>Casts from the awesome guy Sean "Day[9]" Plott teaching "How 
to be a better gamer" in Starcraft.</description>
+    <license>GNU AFFERO GENERAL PUBLIC LICENSE.  Version 3, November
+2007</license>
+    <forum>http://forum.xbmc.org/showthread.php?tid=143022</forum>
+    <website>https://github.com/rfdrake/xbmc-plugin-day9tv</website>
+    <source>https://github.com/rfdrake/xbmc-plugin-day9tv.git</source>
+    <email>rfdrake at gmail</email>
   </extension>
 </addon>
diff --git a/plugin.video.day9/changelog.txt b/plugin.video.day9/changelog.txt
index 97a1f42..a7818e8 100644
--- a/plugin.video.day9/changelog.txt
+++ b/plugin.video.day9/changelog.txt
@@ -1,5 +1,9 @@
+v2.1.5
+- fixed encoding issues again caused by quoted '+' in the base64. (patch from 
cpher)
+  Scrapes links when videos are not embedded (cpher)
+
 v2.1.4
-- fix for addon.xml being encoded wrong
+- fixed some DOS encoded CRLF files
 
 v2.1.3
 - hopefully permanently fixed encoding issues with the URL/title by base64 
encoding them between menu screens
diff --git a/plugin.video.day9/day9.py b/plugin.video.day9/day9.py
index d2b50e9..bc1bc20 100644
--- a/plugin.video.day9/day9.py
+++ b/plugin.video.day9/day9.py
@@ -95,7 +95,7 @@ class Day9:
 
     def showTitles(self, params = {}):
         get = params.get
-        link = self.getRequest(base64.decodestring(get("url")))
+        link = self.getRequest(base64.decodestring(urllib.unquote(get("url"))))
         tree = BeautifulSoup(link, convertEntities=BeautifulSoup.HTML_ENTITIES)
         # narrow down the search to get rid of upcoming shows
         # I'd like to add them just to inform people of what/when things are
@@ -118,10 +118,10 @@ class Day9:
 
     def showGames(self, params = {}):
         get = params.get
-        link = self.getRequest(base64.decodestring(get("url")))
+        link = self.getRequest(base64.decodestring(urllib.unquote(get("url"))))
         tree = BeautifulSoup(link)
        airdate = tree.find('time')
-       title = base64.decodestring(get("title"))
+       title = base64.decodestring(urllib.unquote(get("title")))
         try: 
             description = tree.find(text='Description').findNext('p')
         except:
@@ -131,6 +131,14 @@ class Day9:
             v=re.match('http://www.youtube.com/embed/(.*)', video.get('src'))
             i=i+1
             self.addVideo(str(title)+' Part '+str(i), youtubeid=v.group(1), 
description=description)
+        if i == 0:
+            # No embedded videos, try scraping links
+            for L in tree.findAll('a'):
+                m = re.match('http://www.youtube.com/watch\?v=(.*)', 
L.get('href', ''))
+                if m:
+                    print "Matched"
+                    vid_title = L.string if L.string is not None else 'Part 
%d'%i
+                    self.addVideo(str(title)+' - ' + vid_title, 
youtubeid=m.group(1), description=description)
 
     def showVideo(self, params = {}):
         get = params.get

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

Summary of changes:
 plugin.video.day9/addon.xml                        |    8 +-
 plugin.video.day9/changelog.txt                    |    6 +-
 plugin.video.day9/day9.py                          |   14 +-
 plugin.video.mediathek/addon.xml                   |    2 +-
 plugin.video.mediathek/changelog.txt               |    1 +
 plugin.video.mediathek/mediathek/ard.py            |   27 +-
 plugin.video.myvideo_de/addon.py                   |   12 +-
 plugin.video.myvideo_de/addon.xml                  |    2 +-
 plugin.video.myvideo_de/changelog.txt              |    4 +
 plugin.video.myvideo_de/resources/lib/scraper.py   |   33 +-
 plugin.video.neterratv/addon.xml                   |   11 +-
 plugin.video.neterratv/changelog.txt               |    3 +
 .../LICENSE.txt                                    |    0
 plugin.video.trakt_list_manager/addon.py           |  481 ++++++++++++++++++++
 plugin.video.trakt_list_manager/addon.xml          |   21 +
 plugin.video.trakt_list_manager/changelog.txt      |   19 +
 plugin.video.trakt_list_manager/icon.png           |  Bin 0 -> 6095 bytes
 .../resources}/__init__.py                         |    0
 .../resources/language/English/strings.xml         |   43 ++
 .../resources/lib}/__init__.py                     |    0
 .../resources/lib/api.py                           |  200 ++++++++
 .../resources/settings.xml                         |    8 +
 22 files changed, 852 insertions(+), 43 deletions(-)
 copy {plugin.audio.booksshouldbefree_com => 
plugin.video.trakt_list_manager}/LICENSE.txt (100%)
 create mode 100644 plugin.video.trakt_list_manager/addon.py
 create mode 100644 plugin.video.trakt_list_manager/addon.xml
 create mode 100644 plugin.video.trakt_list_manager/changelog.txt
 create mode 100644 plugin.video.trakt_list_manager/icon.png
 copy {plugin.audio.qobuz/resources/lib/qobuz/gui => 
plugin.video.trakt_list_manager/resources}/__init__.py (100%)
 create mode 100644 
plugin.video.trakt_list_manager/resources/language/English/strings.xml
 copy {plugin.audio.qobuz/resources/lib/qobuz/gui => 
plugin.video.trakt_list_manager/resources/lib}/__init__.py (100%)
 create mode 100644 plugin.video.trakt_list_manager/resources/lib/api.py
 create mode 100644 plugin.video.trakt_list_manager/resources/settings.xml


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to