Пример #1
0
def play_video(name, url, thumb, plot):
    url = "http://www.nba.com/video/" + url + ".xml"
    html = getPage(url)
    if html["error"] == "HTTP Error 404: Not Found":
        dialog = xbmcgui.Dialog()
        ok = dialog.ok(plugin, settings.getLocalizedString(30006))
        return
    url = "http://nba.cdn.turner.com/nba/big" + common.parseDOM(html["content"], "file", attrs={"type": "large"})[0]
    infoLabels = {"Title": name, "Studio": plugin, "Plot": plot}
    playListItem(label=name, image=thumb, path=url, infoLabels=infoLabels, PlayPath=False)
Пример #2
0
def play_video(url, name, thumb, plot):
	infoLabels = { "Title": name, "Studio": plugin, "Plot": plot }
	result = getPage("http://vod.espn.go.com/motion/" + url + ".smil?FLVPlaybackVersion=2.1")
	if '404' in str(result["error"]):
		dialog = xbmcgui.Dialog()
		ok = dialog.ok(plugin, settings.getLocalizedString( 30004 ))
		return
	else:
		playpath = "mp4:" + url + "_" + settings.getSetting("quality") + ".mp4"
		url = 'rtmp://svod.espn.go.com/motion/'
		playListItem(label = name, image = thumb, path = url, infoLabels = infoLabels, PlayPath = playpath)
Пример #3
0
def play_video(url, name, thumb, plot):
	infoLabels = { "Title": name, "Studio": plugin, "Plot": plot }
	result = getPage("http://vod.espn.go.com/motion/" + url + ".smil?FLVPlaybackVersion=2.1")
	if '404' in str(result["error"]):
		dialog = xbmcgui.Dialog()
		ok = dialog.ok(plugin, settings.getLocalizedString( 30004 ))
		return
	else:
		playpath = "mp4:" + url + "_" + settings.getSetting("quality") + ".mp4"
		
		# Address a bug in early helix versions:
		try:
			version = xbmc_version = xbmc.getInfoLabel( "System.BuildVersion" )
			version = float(version[:4])
			if version >= 14.0 and version < 14.2:
				url = 'rtmp://svod.espn.go.com/motion/' + url + "_" + settings.getSetting("quality") + ".mp4"
			else:
				url = 'rtmp://svod.espn.go.com/motion/'
		except:
			url = 'rtmp://svod.espn.go.com/motion/'
		playListItem(label = name, image = thumb, path = url, infoLabels = infoLabels, PlayPath = playpath)
Пример #4
0
def build_search_directory():
	page = 1
	checking = True
	string = common.getUserInput(settings.getLocalizedString( 30007 ), "")
	if not string:
		build_main_directory()
		return
	if settings.getSetting('playall') == 'true':
		playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
		playlist.clear()
		u = { 'mode': '4' }
		infoLabels = { "Title": '* ' + settings.getLocalizedString( 30030 ) + ' *', "Plot": settings.getLocalizedString( 30031 ) }
		addListItem('* ' + settings.getLocalizedString( 30030 ) + ' *', icon, u, False, 0, infoLabels, fanart)
	while checking:
		url = 'http://www.tmz.com/search/json/videos/' + urllib.quote(string) + '/' + str(page) + '.json'
		data = getPage(url)
		if data['error'] == 'HTTP Error 404: Not Found':
			dialog = xbmcgui.Dialog()
			ok = dialog.ok( plugin , settings.getLocalizedString( 30009 ) + '\n' + settings.getLocalizedString( 30010 ) )
			return
		elif data['error'] != None:
			text = getUrl( url, True )
		else:
			text = data['content']
		jdata = json.loads(text)
		total = int(jdata['total'])
		if ((total - page * 25) > 0):
			page = page + 1
		else:
			checking = False
		for results in jdata['results']:
			title = results['title'].encode('ascii', 'ignore')
			videoUrl = results['URL'].replace("\\", "")
			thumb = results['thumbnailUrl'].replace("\\", "") + '/width/490/height/266/type/3'
			infoLabels = { "Title": title, "Plot": title }
			u = { 'mode': '3', 'name': title, 'url': videoUrl, 'thumb': thumb }
			addListItem(label = title, image = thumb, url = u, isFolder = False, totalItems = total, infoLabels = infoLabels, fanart = fanart)
	xbmcplugin.addSortMethod( handle = int(sys.argv[1]), sortMethod = xbmcplugin.SORT_METHOD_NONE )
	setViewMode("503")
	xbmcplugin.endOfDirectory( int( sys.argv[1] ) )
Пример #5
0
def build_sub_directory(url, name, slug, offset, daily_info):
	if slug == None:
		dialog = xbmcgui.Dialog()
		ok = dialog.ok( plugin , settings.getLocalizedString( 30029 ) )
		build_main_directory(BASE + 'getShows' + KEY)
		return
	saveurl = url
	data = json.loads(getUrl(url + '&offset=' + str(offset * 25)))
	if len(data['episodes']) == 0:
		dialog = xbmcgui.Dialog()
		ok = dialog.ok( plugin , settings.getLocalizedString( 30026 ) + ' ' + name + '.' )
		return
	if slug != 'None':
		try:
			downloads = 'http://revision3.com/' + slug + '/' + slug + '_downloads'
			fresult = getPage(downloads)['content']
			match = re.compile( '<a href="(.+?)" target="_blank">1920x1200</a>' ).findall(fresult)
			if len(match) > 1:
				fanart = match[1]
			else:
				fanart = match[0]
			settings.setSetting(slug, fanart)
		except:
			fanart = 'http://videos.revision3.com/revision3/images/shows/%s/%s_hero.jpg' % (slug, slug)
			if getPage(fanart)['error'] == 'HTTP Error 404: Not Found':
				fanart = fanart_bg
				settings.setSetting(slug, fanart)
			else:
				settings.setSetting(slug, fanart)
	else:
		fanart = fanart_bg
	if daily_info != 'None' and settings.getSetting('daily') == 'true':
		daily_info = ast.literal_eval(daily_info)
		u = { 'mode': '1', 'name': daily_info['name'], 'url': daily_info['url'], 'slug': slug, 'daily_info': 'None' }
		infoLabels = { "Title": daily_info['name'], "Plot": daily_info['plot'] }
		addListItem('[ ' + daily_info['name'] + ' ]', daily_info['thumb'], u, True, 0, infoLabels, fanart)
	if settings.getSetting('download') == '' or settings.getSetting('download') == 'false':
		if settings.getSetting('playall') == 'true':
			playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
			playlist.clear()
			u = { 'mode': '6' }
			infoLabels = { "Title": settings.getLocalizedString( 30030 ), "Plot": settings.getLocalizedString( 30031 ) }
			addListItem('* ' + settings.getLocalizedString( 30030 ) + ' *', play_thumb, u, True, 0, infoLabels, fanart)
	for episode in data['episodes']:
		studio = episode['show']['name']
		thumb = episode['images']['medium']
		url = episode['media']
		plot = episode['summary'].encode('ascii', 'ignore')
		name = episode['name'].encode('ascii', 'ignore')
		episodenum = episode['number']
		date = episode['published'].rsplit('T')[0]
		duration = int(episode['duration'])
		infoLabels = { "Title": name, "Studio": studio, "Plot": plot, "Episode": int(episodenum), "Aired": date }
		u = { 'mode': '2', 'name': name, 'url': url, 'plot': plot, 'studio': studio, 'episode': episodenum, 'thumb': thumb, 'date': date }
		addListItem(plot, thumb, u, False, len(data['episodes']), infoLabels, fanart, duration)
	if (int(data['total']) - ((offset + 1) * 25)) > 0:
		u = { 'mode': '1', 'name': studio, 'url': saveurl, 'slug': slug, 'offset': offset + 1, 'daily_info': 'None' }
		infoLabels = { "Title": settings.getLocalizedString( 30016 ), "Plot": settings.getLocalizedString( 30016 ) }
		addListItem(settings.getLocalizedString( 30016 ) + ' (' + str( offset + 2 ) + ')', next_thumb, u, True, 0, infoLabels, fanart)
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_UNSORTED )
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_EPISODE )
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_STUDIO )
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_VIDEO_RUNTIME )
	setViewMode("503")
	xbmcplugin.endOfDirectory(int(sys.argv[1]))
Пример #6
0
def build_sub_directory(url, name, slug, offset, daily_info):
    if slug == None:
        dialog = xbmcgui.Dialog()
        ok = dialog.ok(plugin, settings.getLocalizedString(30029))
        build_main_directory(BASE + 'getShows' + KEY)
        return
    saveurl = url
    data = json.loads(getUrl(url + '&offset=' + str(offset * 25)))
    if len(data['episodes']) == 0:
        dialog = xbmcgui.Dialog()
        ok = dialog.ok(plugin,
                       settings.getLocalizedString(30026) + ' ' + name + '.')
        return
    if slug != 'None':
        try:
            downloads = 'http://testtube.com/' + slug + '/' + slug + '_downloads'
            fresult = getPage(downloads)['content']
            match = re.compile('<a href="(.+?)" target="_blank">1920x1200</a>'
                               ).findall(fresult)
            if len(match) > 1:
                fanart = match[1]
            else:
                fanart = match[0]
            settings.setSetting(slug, fanart)
        except:
            fanart = 'http://videos.testtube.com/revision3/images/shows/%s/%s_hero.jpg' % (
                slug, slug)
            if getPage(fanart)['error'] == 'HTTP Error 404: Not Found':
                fanart = fanart_bg
                settings.setSetting(slug, fanart)
            else:
                settings.setSetting(slug, fanart)
    else:
        fanart = fanart_bg
    if daily_info != 'None' and settings.getSetting('daily') == 'true':
        daily_info = ast.literal_eval(daily_info)
        u = {
            'mode': '1',
            'name': daily_info['name'],
            'url': daily_info['url'],
            'slug': slug,
            'daily_info': 'None'
        }
        infoLabels = {"Title": daily_info['name'], "Plot": daily_info['plot']}
        addListItem('[ ' + daily_info['name'] + ' ]', daily_info['thumb'], u,
                    True, 0, infoLabels, fanart)
    if settings.getSetting('download') == '' or settings.getSetting(
            'download') == 'false':
        if settings.getSetting('playall') == 'true':
            playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
            playlist.clear()
            u = {'mode': '6'}
            infoLabels = {
                "Title": settings.getLocalizedString(30030),
                "Plot": settings.getLocalizedString(30031)
            }
            addListItem('* ' + settings.getLocalizedString(30030) + ' *',
                        play_thumb, u, True, 0, infoLabels, fanart)
    for episode in data['episodes']:
        studio = episode['show']['name']
        thumb = episode['images']['medium']
        url = episode['media']
        plot = episode['summary'].encode('ascii', 'ignore')
        name = episode['name'].encode('ascii', 'ignore')
        episodenum = episode['number']
        date = episode['published'].rsplit('T')[0]
        duration = int(episode['duration'])
        infoLabels = {
            "Title": name,
            "Studio": studio,
            "Plot": plot,
            "Episode": int(episodenum),
            "Aired": date
        }
        u = {
            'mode': '2',
            'name': name,
            'url': url,
            'plot': plot,
            'studio': studio,
            'episode': episodenum,
            'thumb': thumb,
            'date': date
        }
        addListItem(plot, thumb, u, False, len(data['episodes']), infoLabels,
                    fanart, duration)
    if (int(data['total']) - ((offset + 1) * 25)) > 0:
        u = {
            'mode': '1',
            'name': studio,
            'url': saveurl,
            'slug': slug,
            'offset': offset + 1,
            'daily_info': 'None'
        }
        infoLabels = {
            "Title": settings.getLocalizedString(30016),
            "Plot": settings.getLocalizedString(30016)
        }
        addListItem(
            settings.getLocalizedString(30016) + ' (' + str(offset + 2) + ')',
            next_thumb, u, True, 0, infoLabels, fanart)
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_UNSORTED)
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_EPISODE)
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_STUDIO)
    xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                             sortMethod=xbmcplugin.SORT_METHOD_VIDEO_RUNTIME)
    setViewMode("503")
    xbmcplugin.endOfDirectory(int(sys.argv[1]))
Пример #7
0
def build_sub_directory(url, name):
	saveurl = url
	studio = name
	savestudio = name
	html = getUrl(url)
	ret = common.parseDOM(html, "div", attrs = { "id": "main-episodes" })
	pageLoad = common.parseDOM(ret, "a", ret = "onclick")
	if len(ret) == 0:
		ret = common.parseDOM(html, "div", attrs = { "id": "all-episodes" })
		pageLoad = common.parseDOM(ret, "a", ret = "onclick")
	if len(ret) == 0:
		ret = common.parseDOM(html, "ul", attrs = { "class": "episode-grid" })
		pageLoad = common.parseDOM(html, "a", ret = "onclick")
	current = common.parseDOM(html, "span", attrs = { "class": "active" })
	episodes = common.parseDOM(ret, "li", attrs = { "class": "episode item" })
	img = common.parseDOM(episodes[0], "img", ret = "src")[0]
	if settings.getLocalizedString( 30013 ) != name:
		try:
			downloads = 'http://revision3.com/' + img.rsplit('/')[6] + '/' + img.rsplit('/')[6] + '_downloads'
			fresult = getPage(downloads)['content']
			data = re.compile( '<a href="(.+?)" target="_blank">1920x1200</a>' ).findall(fresult)
			if len(data) > 1:
				fanart = data[1]
			else:
				fanart = data[0]
			settings.setSetting(img.rsplit('/')[6], fanart)
		except:
			fanart = 'http://statics.revision3.com/_/images/shows/' + img.rsplit('/')[6] + '/show_background.jpg'
			if getPage(fanart)['error'] == 'HTTP Error 404: Not Found':
				settings.setSetting(img.rsplit('/')[6], fanart_bg)
			else:
				settings.setSetting(img.rsplit('/')[6], fanart)		
	try:
		child = common.parseDOM(html, "div", attrs = { "id": "child-episodes" })
		label = common.parseDOM(html, "a", attrs = { "href": "#child-episodes" })[0]
		childshow = common.parseDOM(child, "a", attrs = { "class": "thumbnail" }, ret = "href" )[0].rsplit('/')[1]
		csaveurl = 'http://revision3.com/' + childshow + '/episodePage?type=recent&limit=15&hideShow=1&hideArrows=1&page=1'
		u = { 'mode': '1', 'name': urllib.quote_plus(studio), 'url': urllib.quote_plus(csaveurl) }
		infoLabels = { "Title": label, "Plot": label }
		addListItem('[ ' + label + ' ]', more_thumb, u, True, infoLabels, fanart)
	except:
		pass
	try:
		strs = 'http://revision3.com' + pageLoad[-1:][0].rsplit('\'')[1]
		params = getParameters(strs)
		saveurl = strs.rstrip('&page=' + params['page']) + '&page=' + str( int(current[0]) + 1 )
		if int(params['page']) > int(current[0]):
			next = True
		else:
			next = False
	except:
		next = False
	for data in episodes:
		thumb = common.parseDOM(data, "img", ret = "src")[0].replace('small.thumb','medium.thumb')
		show_id = thumb.split('/')[6]
		if not settings.getSetting(show_id):
			fanart = fanart_bg
		else:
			fanart = settings.getSetting(show_id)
		plot = clean(common.parseDOM(data, "img", ret = "alt")[0])
		name = clean(common.stripTags(common.parseDOM(data, "a")[1]))
		cut = common.parseDOM(data, "a")[1]
		try:
			studio = clean(common.parseDOM(cut, "strong")[0])
		except:
			pass
		name = name.replace(studio + '   ','')
		url = 'http://revision3.com' + common.parseDOM(data, "a", attrs = { "class": "thumbnail" }, ret = "href")[0]
		try:
			episode = name.rsplit(' ')[1]
			date = name.rsplit(' ')[3].rsplit('/')[2] + '-'  + name.rsplit(' ')[3].rsplit('/')[0] + '-' + name.rsplit(' ')[3].rsplit('/')[1]
		except:
			episode = '0'
			date = '0000-00-00'
		length = name[-6:].rstrip(')').replace('(','').split(':')
		duration = int(length[0]) * 60 + int(length[1])
		infoLabels = { "Title": plot, "Studio": studio, "Plot": plot, "Episode": int(episode), "Aired": date }
		u = { 'mode': '2', 'name': urllib.quote_plus(plot), 'url': urllib.quote_plus(url), 'plot': urllib.quote_plus(infoLabels['Plot'].encode('ascii', 'ignore')), 'studio': urllib.quote_plus(infoLabels['Studio']), 'episode': urllib.quote_plus(str(infoLabels['Episode'])), 'thumb': urllib.quote_plus(thumb), 'date': urllib.quote_plus(infoLabels['Aired']) }
		addListItem(plot, thumb, u, False, infoLabels, fanart, duration)
	if next == True:
		u = { 'mode': '1', 'name': urllib.quote_plus(savestudio), 'url': urllib.quote_plus(saveurl) }
		infoLabels = { "Title": settings.getLocalizedString( 30016 ), "Plot": settings.getLocalizedString( 30016 ) }
		addListItem(settings.getLocalizedString( 30016 ) + ' (' + str( int(current[0]) + 1 ) + ')', next_thumb, u, True, infoLabels, fanart_bg)
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_UNSORTED )
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_EPISODE )
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_STUDIO )
	xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_VIDEO_RUNTIME )
	setViewMode("503")
	xbmcplugin.endOfDirectory(int(sys.argv[1]))