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