The branch, eden has been updated
       via  af31de3b2add9c695430e5cdf420d851e5c4ed6a (commit)
      from  a60583b8cfa469353a5c2bf96420eb8a553b93ff (commit)

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

commit af31de3b2add9c695430e5cdf420d851e5c4ed6a
Author: beenje <[email protected]>
Date:   Tue Jul 30 21:35:38 2013 +0200

    [plugin.video.mlbmc] updated to version 1.1.6

diff --git a/plugin.video.mlbmc/addon.xml b/plugin.video.mlbmc/addon.xml
index f7002a7..bf397f5 100644
--- a/plugin.video.mlbmc/addon.xml
+++ b/plugin.video.mlbmc/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="plugin.video.mlbmc"
        name="MLBMC"
-       version="1.1.5"
+       version="1.1.6"
        provider-name="divingmule">
   <requires>
     <import addon="xbmc.python" version="2.0"/>
diff --git a/plugin.video.mlbmc/changelog.txt b/plugin.video.mlbmc/changelog.txt
index 0cd0960..360dda0 100644
--- a/plugin.video.mlbmc/changelog.txt
+++ b/plugin.video.mlbmc/changelog.txt
@@ -1,3 +1,8 @@
+Version 1.1.6
+fix website changes, condensed games, MLB.com playlist
+fix 'identity error' after selecting a coverage type in MLB.TV
+added sorting of coverage types
+
 Version 1.1.5
 fix website changes
 
diff --git a/plugin.video.mlbmc/default.py b/plugin.video.mlbmc/default.py
index 1281c30..b2309fc 100644
--- a/plugin.video.mlbmc/default.py
+++ b/plugin.video.mlbmc/default.py
@@ -221,7 +221,7 @@ if mode==28:
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 if mode==29:
-    mlb.get_playlist_cats(url)
+    mlb.get_playlist_cats(True, url)
     xbmcplugin.endOfDirectory(int(sys.argv[1]))
 
 if mode==30:
diff --git a/plugin.video.mlbmc/resources/mlb.py 
b/plugin.video.mlbmc/resources/mlb.py
index ae9ebbc..7f22b6f 100644
--- a/plugin.video.mlbmc/resources/mlb.py
+++ b/plugin.video.mlbmc/resources/mlb.py
@@ -67,23 +67,7 @@ def get_playlist_page(url):
     mp_items = soup.h4.findNextSibling()('div', attrs={'class': 'item'})
     for i in mp_items:
         categories['playlist']['main_topic']['videos'].append((i.p.string, 
i['data-cid'], i.img['data-lazy-src'].split('_th_')[0] + '_th_13.jpg'))
-    for i in carousel_topics:
-        try:
-            thumb = re.findall('url\((.+?)\)', i.div.div['style'])[0]
-        except:
-            try:
-                thumb = i.img['src']
-            except:
-                addon_log('thumb exception')
-        href = i.a['href']
-        vid_list = []
-        topic_items = i('div', attrs={'class': "page topic item"})
-        for item in topic_items:
-            vids = item('li')
-            for x in vids:
-                content_id = x.a['href'].split('content_id=')[1].split('&')[0]
-                vid_list.append((x.find('span', attrs={'class': 
"headline"}).string, content_id, x.img['data-lazy-src'].split('_th_')[0] + 
'_th_13.jpg'))
-        categories['playlist'][i.h4.string] = {'thumb': thumb, 'href': href, 
'videos': vid_list}
+
     return categories
 
 
@@ -104,9 +88,10 @@ def get_mlb_playlist(url, name=None):
     if url == 'http://wapc.mlb.com/play':
         data = cache.cacheFunction(cache_playlist_categories)
         main_page = 'True'
-        if name is None:
-            addDir(language(30010), 'get_playlist', 4, thumb)
-            addDir(language(30011), 'browse_categories', 28, thumb)
+        addDir(language(30013), 'main_topic', 24, thumb, main_page)
+        # add teams dir
+        addDir(language(30010), 'get_playlist', 4, thumb)
+        get_playlist_cats()
     else:
         data = cache_current_playlist(url)
         main_page = 'False'
@@ -117,10 +102,8 @@ def get_mlb_playlist(url, name=None):
                 team = None
             if team:
                 addDir(language(30012), team[1], 20, thumb)
-    addDir(language(30013), 'main_topic', 24, thumb, main_page)
-    for i in data['playlist'].keys():
-        if i != 'main_topic':
-            addDir(i, i, 24, data['playlist'][i]['thumb'], main_page)
+        addDir(language(30013), 'main_topic', 24, thumb, main_page)
+        get_playlist_cats(True, False)
 
 
 def get_topic_playlist(topic, main_page):
@@ -129,17 +112,27 @@ def get_topic_playlist(topic, main_page):
         data = cache.cacheFunction(cache_playlist_categories)
     else:
         data = eval(cache.get('current'))
-    for i in data['playlist'][topic]['videos']:
-        mm_url = 'http://wapc.mlb.com/gen/multimedia/detail/%s/%s/%s/%s.xml' 
%(i[1][-3], i[1][-2], i[1][-1], i[1])
-        addLink(i[0], mm_url, '', 2, i[2])
+
+    if len(data['playlist'][topic]['videos']) > 0:
+        for i in data['playlist'][topic]['videos']:
+            mm_url = 
'http://wapc.mlb.com/gen/multimedia/detail/%s/%s/%s/%s.xml' %(i[1][-3], 
i[1][-2], i[1][-1], i[1])
+            addLink(i[0], mm_url, '', 2, i[2])
 
 
-def get_playlist_cats(subcat=False):
+def get_playlist_cats(current=False, subcat=False):
     ''' mode 28-29, add directories for browse all playlist '''
     thumb = 'http://mlbmc-xbmc.googlecode.com/svn/icons/playlist.png'
-    data = cache.cacheFunction(cache_playlist_categories)
+    if current:
+        data = eval(cache.get('current'))
+    else:
+        data = cache.cacheFunction(cache_playlist_categories)
     if subcat:
-        items = data['sub_categories'][subcat]
+        try:
+            items = data['sub_categories'][subcat]
+        except KeyError:
+            addon_log('KeyError: %s' %subcat)
+            addon_log(data['sub_categories'].keys())
+            return
     else:
         items = data['topics']
     for title, item_id in items:
@@ -339,10 +332,10 @@ def getVideos(url, page=False):
         name = i['blurb']
         duration = i['duration']
         item_url = i['url']
-        try:
-            thumb = i['thumbnails'][2]['src']
-        except:
-            thumb = i['thumbnails'][1]['src']
+        if len(i['thumbnails']) > 0:
+            thumb = i['thumbnails'][-1]['src']
+        else:
+            thumb = ''
         addLink(name,item_url,duration,2,thumb)
     if items[1]:
         addDir(language(30034), str(page+1), 21, next_icon)
@@ -370,9 +363,10 @@ def setVideoURL(link, direct=False):
     xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
 
 
-def getVideoURL(url):
-    ''' parses the given xml url, returns the actual video url ''' 
-    soup = BeautifulStoneSoup(getRequest(url), 
convertEntities=BeautifulStoneSoup.XML_ENTITIES)
+def getVideoURL(xml_url):
+    ''' parses the given xml url, returns the actual video url '''
+    url = None
+    soup = BeautifulStoneSoup(getRequest(xml_url), 
convertEntities=BeautifulStoneSoup.XML_ENTITIES)
     if addon.getSetting('use_hls') == 'true':
         if soup.find('url', attrs={'playback_scenario' : "HTTP_CLOUD_TABLET"}):
             url = soup.find('url', attrs={'playback_scenario' : 
"HTTP_CLOUD_TABLET"}).string
@@ -388,7 +382,9 @@ def getVideoURL(url):
         url = soup.find('url', attrs={'playback_scenario' : 
"MLB_FLASH_1000K_PROGDNLD"}).string
     elif soup.find('url', attrs={'playback_scenario' : 
"MLB_FLASH_800K_PROGDNLD"}):
         url = soup.find('url', attrs={'playback_scenario' : 
"MLB_FLASH_800K_PROGDNLD"}).string
-    return url
+    if url:
+        addon_log('Playback URL: %s' %url)
+        return url
 
 
 def getCondensedGames(url):
@@ -398,15 +394,16 @@ def getCondensedGames(url):
     items = data['data']['games']['game']
     addon_log('item count: %s' %len(items))
     for i in items:
-        try:
-            if i['game_media']['newsroom']['media']['type'] == 
'condensed_video':
-                content = i['game_media']['newsroom']['media']['id']
-            else:
-                raise KeyError
-        except KeyError:
-            continue
-        content_id = content[-3]+'/'+content[-2]+'/'+content[-1]+'/'+content
-        url = 'http://mlb.mlb.com/gen/multimedia/detail/'+content_id+'.xml'
+        content_id = None
+        media_items = i['game_media']['homebase']['media']
+        for t in media_items:
+            if t['type'] == "condensed_game":
+                content_id = t['id']
+                break
+        if content_id:        
+            url = ('http://mlb.mlb.com/gen/multimedia/detail/%s/%s/%s/%s.xml'
+                   %(content_id[-3], content_id[-2], content_id[-1], 
content_id))
+
         if show_scores == "true":
             name = TeamCodes[i['away_team_id']][0] + ' - ' + i['away_score'] + 
' @ ' + TeamCodes[i['home_team_id']][0] + ' - ' + i['home_score']
         else:
@@ -569,7 +566,7 @@ def getGames(url):
                 event_id = game['game_media']['media']['calendar_event_id']
             except:
                 addon_log( name+'event_id exception' )
-                mode = '24'
+                mode = '30'
                 event_id = ''
 
         try:
diff --git a/plugin.video.mlbmc/resources/mlbtv.py 
b/plugin.video.mlbmc/resources/mlbtv.py
index 556668b..0a05b19 100644
--- a/plugin.video.mlbmc/resources/mlbtv.py
+++ b/plugin.video.mlbmc/resources/mlbtv.py
@@ -65,7 +65,10 @@ def mlb_login():
         addon_log( "Logged in successfully!" )
     except:
         addon_log("Login Failed!")
-        addon_log(login)
+        try:
+            soup = BeautifulSoup(login)
+            addon_log(str(soup.head.title))
+        except: pass
         
xbmc.executebuiltin("XBMC.Notification("+language(30035)+","+language(30042)+",5000,"+icon+")")
 
     if cookies.has_key('ipid') and cookies.has_key('fprt'):
@@ -110,7 +113,7 @@ def mlbGame(event_id, full_count=False):
         if cookies.has_key('ftmu'):
             addon_log("cookies.has_key('ftmu')")
             session = urllib.unquote(cookies['ftmu'])
-
+        
         values = {
             'eventId': event_id,
             'sessionKey': session,
@@ -183,9 +186,9 @@ def mlbGame(event_id, full_count=False):
 
     event_id = soup.find('event-id').string
     items = soup.findAll('user-verified-content')
-    verified_content = []
-    name_list = []
+    verified_content = {'video': [], 'audio': []}
     for item in items:
+        audio = False
         if item.state.string == 'MEDIA_ARCHIVE':
             if int(event_id.split('-')[2]) < 2012:
                 scenario = addon.getSetting('archive_scenario')
@@ -225,6 +228,7 @@ def mlbGame(event_id, full_count=False):
                 name = coverage+' '+call_letters+' '+blackout
 
             if item.type.string == 'audio':
+                audio = True
                 name += ' Gameday Audio'
                 scenario = 'AUDIO_FMS_32K'
 
@@ -235,15 +239,25 @@ def mlbGame(event_id, full_count=False):
                 continue
 
             else:
-                
verified_content.append((name,event_id,content_id,session,cookies['ipid'],cookies['fprt'],scenario,live))
-                name_list.append(name)
+                if audio:
+                    
verified_content['audio'].append((name,event_id,content_id,session,cookies['ipid'],cookies['fprt'],scenario,live))
+                else:
+                    
verified_content['video'].append((name,event_id,content_id,session,cookies['ipid'],cookies['fprt'],scenario,live))
+
+    index = 0
+    name_list = []
+    sorted_content = {}
+    for i in verified_content['video'] + verified_content['audio']:
+        sorted_content[index] = i
+        name_list.append(i[0])
+        index += 1
 
     dialog = xbmcgui.Dialog()
     ret = dialog.select(language(30033), name_list)
     if ret >= 0:
         addon_log('Selected: %s' %name_list[ret])
-        addon_log('content: %s' %verified_content[ret][0])
-        getGameURL(*verified_content[ret])
+        addon_log('content: %s' %sorted_content[ret][0])
+        getGameURL(*sorted_content[ret])
 
 
 def getGameURL(name,event,content,session,cookieIp,cookieFp,scenario,live):
@@ -253,6 +267,7 @@ def 
getGameURL(name,event,content,session,cookieIp,cookieFp,scenario,live):
     else:
         subject = 'LIVE_EVENT_COVERAGE'
         url = 
'https://secure.mlb.com/pubajaxws/bamrest/MediaService2_0/op-findUserVerifiedEvent/v-2.1?'
+        
     values = {
         'subject': subject,
         'sessionKey': session,
@@ -260,7 +275,7 @@ def 
getGameURL(name,event,content,session,cookieIp,cookieFp,scenario,live):
         'contentId': content,
         'playbackScenario': scenario,
         'eventId': event,
-        'fingerprint': cookieFp,
+        'fingerprint': urllib.unquote(cookieFp),
         'platform':'WEB_MEDIAPLAYER'
         }
 
@@ -392,9 +407,6 @@ def 
getGameURL(name,event,content,session,cookieIp,cookieFp,scenario,live):
         xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
 
 
-
-
-
 def get_smil(url):
     soup = BeautifulStoneSoup(getRequest(url))
     base = soup.meta['base']

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

Summary of changes:
 plugin.video.mlbmc/addon.xml          |    2 +-
 plugin.video.mlbmc/changelog.txt      |    5 ++
 plugin.video.mlbmc/default.py         |    2 +-
 plugin.video.mlbmc/resources/mlb.py   |   93 ++++++++++++++++-----------------
 plugin.video.mlbmc/resources/mlbtv.py |   36 +++++++++----
 5 files changed, 76 insertions(+), 62 deletions(-)


hooks/post-receive
-- 
Plugins

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons

Reply via email to