The branch, frodo has been updated
       via  63a805a42e427fd4fd07e5452be9191a7a130c3f (commit)
       via  93e8e93d3d3bf4efdd65846c392b3b442264ce09 (commit)
      from  80536b68e2ef134ab089abf650a3a9f87eef39ee (commit)

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

commit 63a805a42e427fd4fd07e5452be9191a7a130c3f
Author: beenje <[email protected]>
Date:   Sat Nov 23 11:27:51 2013 +0100

    [plugin.video.roosterteeth] updated to version 0.0.6

diff --git a/plugin.video.roosterteeth/addon.xml 
b/plugin.video.roosterteeth/addon.xml
index a9ef203..a12a132 100644
--- a/plugin.video.roosterteeth/addon.xml
+++ b/plugin.video.roosterteeth/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.roosterteeth"
        name="Rooster Teeth"
-       version="0.0.4"
+       version="0.0.6"
        provider-name="divingmule">
   <requires>
     <import addon="xbmc.python" version="2.1.0"/>
@@ -23,5 +23,6 @@
     <license>GNU GENERAL PUBLIC LICENSE. Version 2, June 1991</license>
     <source>https://github.com/divingmule/plugin.video.roosterteeth</source>
     <forum>http://forum.xbmc.org/showthread.php?tid=134588</forum>
+    <website>http://roosterteeth.com</website>
   </extension>
 </addon>
diff --git a/plugin.video.roosterteeth/changelog.txt 
b/plugin.video.roosterteeth/changelog.txt
index 1dcf85e..4ec1a01 100644
--- a/plugin.video.roosterteeth/changelog.txt
+++ b/plugin.video.roosterteeth/changelog.txt
@@ -1,3 +1,13 @@
+Version 0.0.6
+release to xbmc.org repository
+
+Version 0.0.5
+beta/testing release
+added initial support for sponsor only videos
+added more media information where available
+set content to tv shows/episodes, enabling more view modes
+added setting 'Default view mode for episodes'
+
 Version 0.0.4
 bug fixes
 added podcasts
diff --git a/plugin.video.roosterteeth/default.py 
b/plugin.video.roosterteeth/default.py
index 396eb5a..a0c6e9f 100644
--- a/plugin.video.roosterteeth/default.py
+++ b/plugin.video.roosterteeth/default.py
@@ -1,7 +1,11 @@
 import urllib
 import urllib2
+import cookielib
 import re
+import os
 import json
+import time
+from datetime import datetime
 from urlparse import urlparse, parse_qs
 from traceback import format_exc
 
@@ -12,16 +16,20 @@ from bs4 import BeautifulSoup
 import xbmcplugin
 import xbmcgui
 import xbmcaddon
+import xbmcvfs
 
-cache = StorageServer.StorageServer("roosterteeth", 24)
+cache = StorageServer.StorageServer("roosterteeth", 6)
 addon = xbmcaddon.Addon()
+addon_profile = xbmc.translatePath(addon.getAddonInfo('profile'))
 addon_version = addon.getAddonInfo('version')
 addon_id = addon.getAddonInfo('id')
 home = addon.getAddonInfo('path')
 icon = addon.getAddonInfo('icon')
 fanart = addon.getAddonInfo('fanart')
-base = 'http://roosterteeth.com'
 language = addon.getLocalizedString
+cookie_file = os.path.join(addon_profile, 'cookie_file')
+cookie_jar = cookielib.LWPCookieJar(cookie_file)
+base = 'http://roosterteeth.com'
 
 
 def addon_log(string):
@@ -32,17 +40,27 @@ def addon_log(string):
     xbmc.log("[%s-%s]: %s" %(addon_id, addon_version, 
log_message),level=xbmc.LOGDEBUG)
 
 
-def make_request(url, location=False):
+def notify(message):
+    xbmc.executebuiltin("XBMC.Notification(%s, %s, 10000, %s)" 
%(language(30001), message, icon))
+
+
+def make_request(url, data=None, location=False):
+    if not xbmcvfs.exists(cookie_file):
+        cookie_jar.save()
+    cookie_jar.load(cookie_file, ignore_discard=True, ignore_expires=True)
+    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
+    urllib2.install_opener(opener)
     addon_log('Request URL: %s' %url)
+    headers = {
+        'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) 
Gecko/20100101 Firefox/24.0',
+        'Referer': 'http://roosterteeth.com'
+        }
     try:
-        headers = {
-            'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) 
Gecko/20100101 Firefox/24.0',
-            'Referer': 'http://roosterteeth.com'
-            }
-        req = urllib2.Request(url, None, headers)
+        req = urllib2.Request(url, data, headers)
         response = urllib2.urlopen(req)
         response_url = urllib.unquote_plus(response.geturl())
         data = response.read()
+        cookie_jar.save(cookie_file, ignore_discard=False, 
ignore_expires=False)
         response.close()
         if location:
             return (response_url, data)
@@ -61,7 +79,7 @@ def get_soup(data):
     if data:
         if data.startswith('http'):
             data = make_request(data)
-        return BeautifulSoup(data)
+        return BeautifulSoup(data, 'html.parser')
 
 
 def cache_shows():
@@ -70,7 +88,8 @@ def cache_shows():
         parsed = []
         for i in item_list:
             try:
-                show = (i.b.string, i.a['href'], i.img['src'])
+                show = (i.b.string, i.a['href'], i.img['src'],
+                        i('a')[2].b.string.split()[0], i.span.string)
                 if not show in parsed:
                     parsed.append(show)
             except:
@@ -93,7 +112,10 @@ def get_shows(shows):
     for i in shows:
         if 'v=trending' in i[1]:
             i[1] = i[1].replace('v=trending','v=more')
-        add_dir(i[0], base+i[1], 1, i[2])
+        plot = ''
+        if i[4]:
+            plot = i[4]
+        add_dir(i[0], base+i[1], 1, i[2], {'Episode': int(i[3]), 'Plot': plot})
 
 
 def get_seasons(soup, iconimage):
@@ -105,11 +127,18 @@ def get_seasons(soup, iconimage):
         addon_log('Seasons Exception: %s' %format_exc())
         return False
     for i in items:
-        add_dir(i.string, base+i['href'], 2, iconimage, '', True)
+        name = i.string.encode('utf-8')
+        try:
+            meta = {'Season': int(name.split(':')[0].split()[1])}
+        except:
+            meta = {}
+        add_dir(name, base+i['href'], 2, iconimage, meta, True)
     return True
 
 
 def index(soup, season=True):
+    episode_patterns = [re.compile('Episode (.+?):'), re.compile('Episode 
(.+?) -'),
+                        re.compile('Volume (.+?):'), re.compile('#(.+?):')]
     if season:
         items = soup('div', attrs={'id' : 
"profileAjaxContent"})[0]('table')[1]('a')
     else:
@@ -129,18 +158,26 @@ def index(soup, season=True):
                 name += ': ' + i('span')[1].string
         except:
             pass
+        name = name.encode('utf-8', 'ignore')
+        meta = {}
         duration = i.td.string
-        if duration is None:
-            diration = ''
-        add_dir(name.encode('utf-8', 'ignore'), item_id, 3, thumb, duration, 
False, False)
+        if duration:
+            meta['Duration'] = get_duration(duration)
+        for i in episode_patterns:
+            try:
+                meta['Episode'] = int(i.findall(name)[0])
+                break
+            except:
+                pass
+        add_dir(name, item_id, 3, thumb, meta, False, False)
     try:
         next_page = soup('a', attrs={'id' : "streamLoadMore"})[0]['href']
-        add_dir(language(30002), base + next_page, 2, icon, '', season)
+        add_dir(language(30002), base + next_page, 2, icon, {}, season)
     except:
         addon_log("Didn't find next page!")
 
 
-def resolve_url(item_id):
+def resolve_url(item_id, retry=False):
     url = 'http://roosterteeth.com/archive/new/_loadEpisode.php?id=%s&v=morev' 
%item_id
     data = json.loads(make_request(url))
     soup = get_soup(data['embed']['html'])
@@ -149,27 +186,46 @@ def resolve_url(item_id):
         if filetype == 'youtube':
             youtube_id = soup.iframe['src'].split('/')[-1].split('?')[0]
             addon_log('youtube id:' + youtube_id)
-            path = 
'plugin://plugin.video.youtube/?action=play_video&videoid='+youtube_id
+            path = 
'plugin://plugin.video.youtube/?action=play_video&videoid=%s' %youtube_id
         elif filetype == 'blip':
             blip_url = soup.iframe['src']
             addon_log('blip_url: ' + blip_url)
             path = get_blip_location(blip_url)
             addon_log('path: %s' %path)
+        return path
     except:
-        sorry = "Sorry, you must be a Sponsor to see this video."
-        if sorry in str(soup):
-            xbmc.executebuiltin("XBMC.Notification(%s,%s,5000,%s)"
-                                %(language(30000), language(30003), icon))
-            addon_log(sorry)
-            return
+        if retry:
+            addon_log('retryException: %s' %format_exc())
+            sorry = check_sorry(soup)
+        elif addon.getSetting('is_sponsor') == 'true':
+            logged_in = check_login()
+            if not logged_in:
+                logged_in = login()
+                if logged_in:
+                    return resolve_url(item_id, True)
+                notify(language(30025))
+                xbmc.sleep(5000)
+            sorry = check_sorry(soup)
         else:
-            addon_log('addonException: %s' %format_exc())
-            return
-    return path
+            sorry = check_sorry(soup)
+        if not sorry:
+            notify(language(30024))
+            addon_log('addonException: resolve_url')
+
+
+def check_sorry(soup):
+    sorry = ['Video recordings and live broadcasts of the podcast are only 
available for Sponsors.',
+             'Sorry, you must be a Sponsor to see this video.']
+    for i in sorry:
+        pattern = re.compile(i)
+        if pattern.findall(str(soup)):
+            notify(language(30003))
+            addon_log(i)
+            return True
 
 
 def get_blip_location(blip_url):
-    blip_data = make_request(blip_url, True)
+    blip_data = make_request(blip_url, location=True)
     pattern = re.compile('http://blip.tv/rss/flash/(.+?)&')
     try:
         feed_id = pattern.findall(blip_data[0])[0]
@@ -192,6 +248,7 @@ def get_blip_location(blip_url):
     try:
         blip_dict = xmltodict.parse(make_request(blip_xml))
         items = 
blip_dict['rss']['channel']['item']['media:group'][u'media:content']
+        # if only one result items will be a dict
         if isinstance(items, dict):
             try:
                 return items['@url']
@@ -264,21 +321,45 @@ def get_podcasts_episodes(url, iconimage):
     pod_dict = xmltodict.parse(data)
     items = pod_dict['rss']['channel']['item']
     for i in items:
-        add_dir('%s :  %s' %(i['title'], i['description']),
-                i['link'], 6, iconimage, i['itunes:duration'], False, False)
+        title = i['title'].encode('utf-8')
+        date_time = datetime(*(time.strptime(i['pubDate'], '%a, %d %b %Y 
%H:%M:%S GMT')[0:6]))
+        meta = {'Duration': get_duration(i['itunes:duration']),
+                'Date': date_time.strftime('%d.%m.%Y'),
+                'Premiered': date_time.strftime('%d-%m-%Y'),
+                'Episode': title.split('#')[1]}
+        add_dir('%s :  %s' %(title, i['description']),
+                i['link'], 6, iconimage, meta, False, False)
 
 
-def resolve_podcast_url(episode_url):
+def resolve_podcast_url(episode_url, retry=False):
     soup = get_soup(episode_url)
     is_video = soup('embed')
-    blip_id = None
     if is_video:
-        if 'swf#' in soup.embed['src']:
-            blip_id = soup.embed['src'].split('swf#')[1]
-    if blip_id:
-        resolved = get_blip_location('http://blip.tv/play/' + blip_id)
-        if resolved:
-            return resolved
+        try:
+            if 'swf#' in soup.embed['src']:
+                blip_id = soup.embed['src'].split('swf#')[1]
+                resolved = get_blip_location('http://blip.tv/play/' + blip_id)
+                return resolved
+        except:
+            addon_log('addonException resolve_podcast_url: %s' %format_exc())
+    elif retry:
+        addon_log('No video embed found')
+        sorry = check_sorry(soup)
+        if not sorry:
+            notify(language(30024))
+    elif addon.getSetting('is_sponsor') == 'true':
+        logged_in = check_login()
+        if not logged_in:
+            logged_in = login()
+            if logged_in:
+                return resolve_podcast_url(episode_url, True)
+            notify(language(30025))
+            xbmc.sleep(3000)
+            sorry = check_sorry(soup)
+    else:
+        sorry = check_sorry(soup)
+    if sorry:
+        xbmc.sleep(5000)
 
     downloads = []
     items = soup.find('div', class_="titleLine", 
text="DOWNLOAD").findNext('div')('a')
@@ -324,20 +405,64 @@ def get_params():
     return p
 
 
-def add_dir(name, url, mode, iconimage, duration=None, season=False, 
isfolder=True):
+def add_dir(name, url, mode, iconimage, meta={}, season=False, isfolder=True):
     params = {'name': name, 'url': url, 'mode': mode, 'iconimage': iconimage, 
'season': season}
     url = '%s?%s' %(sys.argv[0], urllib.urlencode(params))
     listitem = xbmcgui.ListItem(name, iconImage="DefaultFolder.png", 
thumbnailImage=iconimage)
     listitem.setProperty( "Fanart_Image", fanart )
-    infolabels = {"Title": name}
+    meta["Title"] = name
+    meta['Genre'] = language(30026)
     if not isfolder:
         listitem.setProperty('IsPlayable', 'true')
-        if duration:
-            infolabels['Duration'] = get_duration(duration)
-    listitem.setInfo(type="Video", infoLabels=infolabels)
+    listitem.setInfo(type="Video", infoLabels=meta)
     xbmcplugin.addDirectoryItem(int(sys.argv[1]), url, listitem, isfolder)
 
 
+def check_login():
+    logged_in = False
+    cookies = {}
+    cookie_jar.load(cookie_file, ignore_discard=False, ignore_expires=False)
+    for i in cookie_jar:
+        cookies[i.name] = i.value
+    if cookies.has_key('rtusername') and cookies['rtusername'] == 
addon.getSetting('username'):
+        logged_in = True
+        addon_log('Already logged in')
+    return logged_in
+
+
+def login():
+    url = 'https://roosterteeth.com/members/signinPost.php'
+    username = addon.getSetting('username')
+    login_data = {'pass': addon.getSetting('password'),
+                  'user': username,
+                  'return': '/sponsor/'}
+    data = make_request(url, urllib.urlencode(login_data))
+    soup = BeautifulSoup(data, 'html.parser')
+    logged_in_tag = soup.find('span', attrs={'id': 'signedInName'})
+    if logged_in_tag and username in str(logged_in_tag):
+        addon_log('Logged in successfully')
+        return True
+
+
+def set_view_mode():
+    view_modes = {
+        '0': '502',
+        '1': '51',
+        '2': '3',
+        '3': '504',
+        '4': '503',
+        '5': '515'
+        }
+    view_mode = addon.getSetting('view_mode')
+    if view_mode == '6':
+        return
+    xbmc.executebuiltin('Container.SetViewMode(%s)' %view_modes[view_mode])
+
+
+# check if dir exists, needed to save cookies to file
+if not xbmcvfs.exists(addon_profile):
+    xbmcvfs.mkdir(addon_profile)
+
 params = get_params()
 
 try:
@@ -348,45 +473,67 @@ except:
 addon_log(repr(params))
 
 if mode == None:
+    # display main plugin dir
     add_dir(language(30008), 'get_latest', 8, icon)
     add_dir(language(30005), 'get_podcasts', 4, icon)
     shows = eval(cache.cacheFunction(cache_shows))
     get_shows(shows['active'])
     add_dir(language(30007), 'get_retired_shows', 7, icon)
+    xbmcplugin.setContent(int(sys.argv[1]), 'tvshows')
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 elif mode == 1:
+    # display show, if seasons, else episodes
     soup = get_soup(params['url'])
     seasons = get_seasons(soup, params['iconimage'])
-    if not seasons:
+    if seasons:
+        xbmcplugin.setContent(int(sys.argv[1]), 'tvshows')
+    else:
         index(soup, False)
+        set_view_mode()
+        xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 elif mode == 2:
+    # display show episodes
     soup = get_soup(params['url'])
     index(soup, params['season'])
+    xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
+    set_view_mode()
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 elif mode == 3:
+    # resolve show episode
     set_resolved_url(resolve_url(params['url']))
 
 elif mode == 4:
+    # display podcast dir
     get_podcasts()
+    xbmcplugin.setContent(int(sys.argv[1]), 'tvshows')
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 elif mode == 5:
+    # display podcast episodes
     get_podcasts_episodes(params['url'], params['iconimage'])
+    xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
+    set_view_mode()
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 elif mode == 6:
+    # resolve podcast episode
     set_resolved_url(resolve_podcast_url(params['url']))
 
 elif mode == 7:
+    # display retired shows
     shows = eval(cache.cacheFunction(cache_shows))
     get_shows(shows['retired'])
+    xbmcplugin.setContent(int(sys.argv[1]), 'tvshows')
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 elif mode == 8:
+    # display latest episodes
     soup = get_soup('http://roosterteeth.com/archive/?sid=rvb&v=newest')
     index(soup, False)
-    xbmcplugin.endOfDirectory(int(sys.argv[1]))
+    xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
+    set_view_mode()
+    xbmcplugin.endOfDirectory(int(sys.argv[1]))
\ No newline at end of file
diff --git a/plugin.video.roosterteeth/resources/language/English/strings.xml 
b/plugin.video.roosterteeth/resources/language/English/strings.xml
index a1f4bae..bbe7266 100644
--- a/plugin.video.roosterteeth/resources/language/English/strings.xml
+++ b/plugin.video.roosterteeth/resources/language/English/strings.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <strings>
   <string id="30000">RoosterTeeth</string>
-  <string id="30001"></string>
+  <string id="30001">Add-on Notification</string>
   <string id="30002">Next Page</string>
-  <string id="30003">Sorry Sponsor only videos are not supported.</string>
+  <string id="30003">Sorry, you must be a Sponsor to see this video.</string>
   <string id="30004">Only audio is avaliable</string>
   <string id="30005">Podcasts</string>
   <string id="30006">Choose a stream</string>
@@ -14,4 +14,20 @@
   <string id="30011">Medium</string>
   <string id="30012">Low</string>
   <string id="30013">Ask</string>
+  <string id="30014">Rooster Teeth Sponsor</string>
+  <string id="30015">User Name</string>
+  <string id="30016">Password</string>
+  <string id="30017">Default view mode for episodes</string>
+  <string id="30018">List</string>
+  <string id="30019">Big list</string>
+  <string id="30020">Thumbnail</string>
+  <string id="30021">Media info</string>
+  <string id="30022">Media info 2</string>
+  <string id="30023">Media info 3</string>
+  <string id="30024">Unknown Error</string>
+  <string id="30025">Login Failed</string>
+  <string id="30026">Comedy, Gaming</string>
+  <string id="30027"></string>
+  <string id="30028"></string>
+  <string id="30029"></string>
 </strings>
\ No newline at end of file
diff --git a/plugin.video.roosterteeth/resources/settings.xml 
b/plugin.video.roosterteeth/resources/settings.xml
index 1c9ba77..0ab3a1c 100644
--- a/plugin.video.roosterteeth/resources/settings.xml
+++ b/plugin.video.roosterteeth/resources/settings.xml
@@ -1,5 +1,9 @@
 <settings>
   <category label="General">
     <setting id="quality" type="enum" label="30009" 
lvalues="30010|30011|30012|30013" default="1"/>
+    <setting id="view_mode" type="enum" label="30017" 
lvalues="30018|30019|30020|30021|30022|30023|30024" default="4"/>
+    <setting id="is_sponsor" type="bool" label="30014" default="false"/>
+    <setting id="username" type="text" label="30015" default="" 
enable="eq(-1,true)"/>
+    <setting id="password" type="text" label="30016" default="" 
option="hidden" enable="eq(-2,true)"/>
   </category>
 </settings>
\ No newline at end of file

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

commit 93e8e93d3d3bf4efdd65846c392b3b442264ce09
Author: beenje <[email protected]>
Date:   Sat Nov 23 11:27:49 2013 +0100

    [plugin.video.sarpur] updated to version 3.0.2

diff --git a/plugin.video.sarpur/addon.xml b/plugin.video.sarpur/addon.xml
index e937243..101746f 100755
--- a/plugin.video.sarpur/addon.xml
+++ b/plugin.video.sarpur/addon.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.sarpur"
        name="Sarpur"
-       version="2.0.1"
+       version="3.0.2"
        provider-name="Dagur">
   <requires>
-    <import addon="xbmc.python" version="2.0"/>
+    <import addon="xbmc.python" version="2.1.0"/>
     <import addon="script.module.beautifulsoup" version="3.0.8"/>
     <import addon="script.module.simplejson" version="2.0.10"/>
   </requires>
@@ -17,5 +17,10 @@
     <description lang="en">An Iceland IP-Address is required to use this 
because of geoblocking</description>
     <platform>all</platform>
     <language>is</language>
+    <license>GNU GENERAL PUBLIC LICENSE. Version 3, June 2007</license>
+    <forum>http://spjall.vaktin.is/viewtopic.php?p=538688</forum>
+    <website>https://code.google.com/p/xbmc-ruv-plugin/</website>
+    <source>https://code.google.com/p/xbmc-ruv-plugin/svn</source>
+    <email></email>
   </extension>
 </addon>
diff --git a/plugin.video.sarpur/changelog.txt 
b/plugin.video.sarpur/changelog.txt
index 9a9a1ba..855dfc4 100644
--- a/plugin.video.sarpur/changelog.txt
+++ b/plugin.video.sarpur/changelog.txt
@@ -1,3 +1,9 @@
+[B]Version 3.0.2[/B]
+- Updated for Frodo
+
+[B]Version 2.0.2[/B]
+- Changed scraper because of changed urls
+
 [B]Version 2.0.1[/B]
 - Changed ip-address for live feed
 
diff --git a/plugin.video.sarpur/default.py b/plugin.video.sarpur/default.py
index ed5b3fa..ada83e3 100755
--- a/plugin.video.sarpur/default.py
+++ b/plugin.video.sarpur/default.py
@@ -64,26 +64,26 @@ def spila(url):
     #rtmp_url = "rtmp://178.19.48.74/ruvvod?key=93292"
     item = xbmcgui.ListItem("RTL")
     item.setProperty("PlayPath", stream_info['playpath'])
-    item.setProperty("SWFPlayer", "http://www.ruv.is/files/spilari/player.swf";)
+    item.setProperty("SWFPlayer", stream_info['swfplayer'])  
#"http://www.ruv.is/files/spilari/player.swf";)
     item.setProperty("PageURL", url)
-    xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(stream_info['rtmp_url'], item)
+    xbmc.Player().play(stream_info['rtmp_url'], item)
 
 def spila_hladvarp(url):
-    xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(url)
+    xbmc.Player().play(url)
 
 def spila_live(stod):
     stream_info = {}
     #if stod == 'ruv':
-    #stream_info['playpath'] = 
'http://194.144.162.36:1935/ruv/beint-2/playlist.m3u8?key=%d' % 
int(math.floor(random.random() * 9999)) 
+    stream_info['rtmp_url'] = 
'http://sip-live.hds.adaptive.level3.net/hls-live/ruv-ruv/_definst_/live/stream1.m3u8'
     stream_info['playpath'] = 'beint-2' 
-    stream_info['rtmp_url'] = 'rtmp://212.30.206.129/ruv?key=%d' % 
int(math.floor(random.random() * 9999))
+    #stream_info['rtmp_url'] = 'rtmp://212.30.206.129/ruv?key=%d' % 
int(math.floor(random.random() * 9999))
     stream_info['page_url'] = 'http://ruv.is/ruv'
 
     item = xbmcgui.ListItem("RTL")
     item.setProperty("PlayPath", stream_info['playpath'])
     item.setProperty("SWFPlayer", "http://www.ruv.is/files/spilari/player.swf";)
     item.setProperty("PageURL", stream_info['page_url'])
-    xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(stream_info['rtmp_url'], item)
+    xbmc.Player().play(stream_info['rtmp_url'], item)
 
 
 
diff --git a/plugin.video.sarpur/scraper.py b/plugin.video.sarpur/scraper.py
index c0f9890..55c2216 100755
--- a/plugin.video.sarpur/scraper.py
+++ b/plugin.video.sarpur/scraper.py
@@ -92,15 +92,24 @@ def get_latest_episodes(url):
 def get_stream_info(page_url):
     "Get a page url and finds the url of the rtmp stream"
     html = fetch_page(page_url)
+    soup = BeautifulSoup(html)
+
+    params = soup.findAll('param', limit=2 )
+    swfplayer = 'http://ruv.is%s' % params[0]['value']
+    details = params[1]['value']
+
+    playpath = re.search('streamer=(.*?)&(file=.*?)&stre', details).group(2)
+    rtmp_url = re.search('http.*?m3u8', html).group()
 
-    access_point_hyperlink = re.search('"http://load.cache.is.*?";', 
html).group()[1:-1]
-    javascript = fetch_page(access_point_hyperlink)
-    access_point = re.search('"(.*?)"', javascript).group(1)
-    path = re.search('ruv(vod)?\?key=\d+', html).group()
-    rtmp_url = "rtmp://%s/%s" % (access_point, path)
-    playpath = re.findall("\'file\': \'(.*?)\'", html)[-1] #.group(1)
+    if 'tengipunktur' in rtmp_url:
+        access_point_hyperlink = re.search('"http://load.cache.is.*?";', 
html).group()[1:-1]
+        javascript = fetch_page(access_point_hyperlink)
+        access_point = re.search('"(.*?)"', javascript).group(1)
+        print access_point
+        rtmp_url = rtmp_url.replace("' + tengipunktur + '", access_point)
 
-    return {'playpath': playpath, 'rtmp_url': rtmp_url}
+    print rtmp_url
+    return {'playpath': playpath, 'rtmp_url': rtmp_url, 'swfplayer': swfplayer}
 
 def update_index():
     "Update the data file with the show list"

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

Summary of changes:
 plugin.video.roosterteeth/addon.xml                |    3 +-
 plugin.video.roosterteeth/changelog.txt            |   10 +
 plugin.video.roosterteeth/default.py               |  237 ++++++++++++++++----
 .../resources/language/English/strings.xml         |   20 ++-
 plugin.video.roosterteeth/resources/settings.xml   |    4 +
 plugin.video.sarpur/addon.xml                      |    9 +-
 plugin.video.sarpur/changelog.txt                  |    6 +
 plugin.video.sarpur/default.py                     |   12 +-
 plugin.video.sarpur/scraper.py                     |   23 ++-
 9 files changed, 261 insertions(+), 63 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing 
conversations that shape the rapidly evolving mobile landscape. Sign up now. 
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to