def add_clips_southpark(episode_tree):
	try:
		episode_menu = episode_tree.find_all('li', class_ = 'clips_thumb')
		clip_titles = []
		for episode_item in episode_menu:
			episode_name = episode_item.find('a', class_ = 'clips_thumb_link', text = True).string
			if episode_name not in clip_titles:
				clip_titles.append(episode_name)
				episode_plot = episode_item.find('h6').string.replace('"', '')
				url = episode_item.find('a')['href']
				episode_thumb = episode_item.find('img')['src'].split('?')[0]
				try:
					episode_duration_seconds = _common.format_seconds(episode_item.find('span', class_ = 'clips_duration').string)
				except:
					episode_duration_seconds = -1
				try:
					episode_season = int(episode_item.find('h5', class_ = 'clips_thumb_season').string.replace('Season ', ''))
				except:
					episode_season = -1
				u = sys.argv[0]
				u += '?url="' + urllib.quote_plus(url) + '"'
				u += '&mode="' + SITE + '"'
				u += '&sitemode="play_video"'
				infoLabels={	'title' : episode_name,
								'duration' : episode_duration_seconds,
								'season' : episode_season,
								'plot' : episode_plot,
								'tvshowtitle' : 'South Park'}
				_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	except:
		pass
Exemple #2
0
def add_videos(episode_tree, SITE):
    episode_menu = episode_tree.find_all('div', class_='vidthumb')
    show_name = episode_tree.find('h3', id='natgeov-section-title').text
    show_name = show_name.split('(')[0].strip()
    for episode_item in episode_menu:
        if episode_item.find(class_='video-locked') is None:
            episode_name = episode_item.a['title']
            episode_thumb = episode_item.img['src'].split('url=')[1]
            try:
                episode_duration = _common.format_seconds(
                    episode_item.span.text.strip())
            except:
                episode_duration = -1
            url = BASE + episode_item.a['href']
            u = sys.argv[0]
            u += '?url="' + urllib.quote_plus(url) + '"'
            u += '&mode="' + SITE + '"'
            u += '&sitemode="play_video"'
            infoLabels = {
                'title': episode_name,
                'durationinseconds': episode_duration,
                'TVShowTitle': show_name
            }
            _common.add_video(u,
                              episode_name,
                              episode_thumb,
                              infoLabels=infoLabels,
                              quality_mode='list_qualities')
def add_fullepisodes(episode_tree, season_number = -1):
	try:
		episode_menu = episode_tree.find_all('div', class_ = 'episodeContainer')
		for episode_item in episode_menu:
			episode_name = episode_item.find('div', class_ = 'episodeTitle').a.text
			episode_airdate = _common.format_date(episode_item.find('div', class_ = 'episodeAirDate').contents[1].strip(), '%b %d, %Y', '%d.%m.%Y')
			episode_plot = episode_item.find('div', class_ = 'episodeDescription').contents[0].strip()
			episode_thumb = episode_item.find('div', class_ = 'episodeImage').img['src'].split('?')[0]
			url = episode_item.find('div', class_ = 'episodeTitle').a['href']
			try:
				episode_duration = _common.format_seconds(episode_item.find('span', class_ = 'episodeDuration').text.replace(')', '').replace('(', ''))
			except:
				episode_duration = -1
			try:
				episode_number = int(episode_item.find('div', class_ = 'episodeIdentifier').text.split('#' + season_number)[1])
			except:
				episode_number = -1
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play_video"'
			infoLabels = {	'title' : episode_name,
							'durationinseconds' : episode_duration,
							'season' : season_number,
							'episode' : episode_number,
							'plot' : episode_plot,
							'premiered' : episode_airdate }
			_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	except:
		pass
def add_clips(episode_tree):
	try:
		episode_menu = episode_tree.find_all('div', class_ = 'block')
		for episode_item in episode_menu:
			episode_name = _common.replace_signs(episode_item.find('h3').a.text)
			episode_plot = _common.replace_signs(episode_item.find('p', class_ = False).text)
			episode_thumb = episode_item.find('img')['src'].split('?')[0]
			url = episode_item.find('div', class_ = 'thumb_area').a['href']
			try:
				episode_airdate = episode_item.find('div', class_ = 'details').contents[0].split(' ', 1)[1].strip()
				episode_airdate = _common.format_date(episode_airdate, '%B %d, %Y', '%d.%m.%Y')
			except:
				episode_airdate = -1
			try:
				episode_duration = _common.format_seconds(episode_item.find('h3').small.text.replace(')', '').replace('(', ''))
			except:
				episode_duration = -1
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play_video"'
			infoLabels = {	'title' : episode_name,
							'durationinseconds' : episode_duration,
							'plot' : episode_plot,
							'premiered' : episode_airdate }
			_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels)
	except:
		pass
def episodes(episode_url = _common.args.url):
	episode_data = _connection.getURL(episode_url, header = {'X-Forwarded-For' : '12.13.14.15'})
	episode_menu = simplejson.loads(episode_data)['results']
	for episode_item in episode_menu:
		try:
			show_name = episode_item['seriesTitle']
		except:
			show_name = ''
		episode_name = episode_item['title']
		url = 'http://legacy.nick.com/videos/clip/%s.html'
		url = url % episode_item['urlKey']
		episode_plot = episode_item['description']
		image = episode_item['images'][0]['assets'][0]['path']
		episode_thumb = 'http://nick.com'+image
		try:
			episode_duration = _common.format_seconds(episode_item['duration'])
		except:
			episode_duration = -1
		u = sys.argv[0]
		u += '?url="' + urllib.quote_plus(url) + '"'
		u += '&mode="' + SITE + '"'
		u += '&sitemode="play_video"'
		infoLabels = {	'title' : episode_name,
						'plot' : episode_plot,
						'durationinseconds' : episode_duration,
						'tvshowtitle' : show_name }
		_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	_common.set_view('episodes')
def add_videos(episode_tree, SITE):
    episode_menu = episode_tree.find_all('div', class_='media-module')
    show_name = episode_tree.find('h1').text
    for episode_item in episode_menu:
        episode_name = episode_item.a['data-title']
        episode_thumb = urllib.unquote_plus(
            episode_item.a.img['data-src'].split('url=')[1])
        try:
            episode_duration = _common.format_seconds(
                episode_item.find('div', class_='timestamp').text.strip())
        except:
            episode_duration = -1
        url = episode_item.a['href']
        u = sys.argv[0]
        u += '?url="' + urllib.quote_plus(url) + '"'
        u += '&mode="' + SITE + '"'
        u += '&sitemode="play_video"'
        infoLabels = {
            'title': episode_name,
            'durationinseconds': episode_duration,
            'TVShowTitle': show_name
        }
        _common.add_video(u,
                          episode_name,
                          episode_thumb,
                          infoLabels=infoLabels,
                          quality_mode='list_qualities')
def episodes(episode_url = _common.args.url):
	episode_data = _connection.getURL(episode_url, header = {'X-Forwarded-For' : '12.13.14.15'})
	episode_tree = BeautifulSoup(episode_data)
	episode_menu = episode_tree.find_all('article')
	for episode_item in episode_menu:
		try:
			show_name = episode_item.find('p', class_ = 'show-name').text
		except:
			show_name = ''
		episode_name = episode_item.find('p', class_ = 'short-title').text
		url = BASE + episode_item.find('a')['href']
		episode_plot = _common.replace_signs(episode_item.find('p', class_ = 'description').text)
		try:
			episode_thumb = episode_item.find('img', class_ = 'thumbnail')['src']
		except:
			episode_thumb = None
		try:
			episode_duration = _common.format_seconds(episode_item.find('span', class_ = 'duration').text.replace('Duration:', ''))
		except:
			episode_duration = -1
		u = sys.argv[0]
		u += '?url="' + urllib.quote_plus(url) + '"'
		u += '&mode="' + SITE + '"'
		u += '&sitemode="play_video"'
		infoLabels = {	'title' : episode_name,
						'plot' : episode_plot,
						'durationinseconds' : episode_duration,
						'tvshowtitle' : show_name }
		_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	_common.set_view('episodes')
Exemple #8
0
def episodes(episode_url=_common.args.url):
    episode_data = _connection.getURL(episode_url)
    episode_json = simplejson.loads(episode_data)['result']
    episode_menu = episode_json['data']
    title = episode_json['title']
    for episode_item in episode_menu:
        url_att = episode_item['url_att']
        type = episode_item['type']
        if (episode_item['url_in_window']
            ) or url_att or title != 'Full Episodes' or not episode_item[
                'url_amazon']:
            videourl = episode_item['streaming_url']
            url = BASE + episode_item['url']
            episode_duration = int(
                _common.format_seconds(episode_item['duration']))
            episode_airdate = _common.format_date(episode_item['airdate'],
                                                  '%m/%d/%y')
            episode_name = episode_item['label']
            if episode_name == '':
                episode_name = episode_item['title']
            try:
                season_number = int(episode_item['season_number'])
            except:
                season_number = -1
            try:
                episode_number = int(episode_item['episode_number'])
            except:
                episode_number = -1
            try:
                episode_thumb = episode_item['thumb']['large']
            except:
                episode_thumb = None
            if url_att:
                episode_pid = url_att.split('c___')[1]
                episode_plot = ''
            else:
                episode_plot, episode_pid = lookup_meta(url)
            if episode_pid is not None:
                u = sys.argv[0]
                u += '?url="' + urllib.quote_plus(episode_pid) + '"'
                u += '&mode="' + SITE + '"'
                u += '&sitemode="play_video"'
                infoLabels = {
                    'title': episode_name,
                    'durationinseconds': episode_duration,
                    'season': season_number,
                    'episode': episode_number,
                    'plot': episode_plot,
                    'premiered': episode_airdate
                }
                _common.add_video(u,
                                  episode_name,
                                  episode_thumb,
                                  infoLabels=infoLabels,
                                  quality_mode='list_qualities')
            else:
                pass
    _common.set_view('episodes')
Exemple #9
0
def episodesClassic(episode_url=_common.args.url):
    episode_data = _connection.getURL(episode_url)
    episode_html = simplejson.loads(episode_data)['html']
    tree = BeautifulSoup(episode_html, 'html5lib')
    episode_menu = tree.find_all('div', class_='video-content-wrapper')
    for episode_item in episode_menu:
        url = episode_item.find('a')['href']
        episode_duration = episode_item.find(
            'div', class_='video-content-duration').contents[1].replace(
                '(', '').replace(')', '').strip()
        episode_duration = int(_common.format_seconds(episode_duration))
        episode_airdate = episode_item.find(
            'div',
            class_='video-content-air-date').contents[0].split(':')[1].strip()
        episode_airdate = _common.format_date(episode_airdate, '%m.%d.%Y')
        show_name = url.split('/')[2]
        episode_name = url.split('/')[-1].replace(show_name.replace(
            '_', '-'), '').replace('-', ' ').title().replace(' T ', '\'t ')
        url = BASE + url
        episode_info = episode_item.find(
            'div', class_='video-content-season-info').text
        try:
            season_number = int(
                episode_info.split(',')[0].split(' ')[1].strip())
        except:
            season_number = -1
        try:
            episode_number = int(
                episode_info.split(',')[1].strip().split(' ')[1])
        except:
            episode_number = -1
        try:
            episode_thumb = episode_item.find('img')['src']
        except:
            episode_thumb = None
        episode_plot = episode_item.find(
            'div', class_='video-content-description').string
        u = sys.argv[0]
        u += '?url="' + urllib.quote_plus(url) + '"'
        u += '&mode="' + SITE + '"'
        u += '&sitemode="play_video"'
        infoLabels = {
            'title': episode_name,
            'durationinseconds': episode_duration,
            'season': season_number,
            'episode': episode_number,
            'plot': episode_plot,
            'premiered': episode_airdate
        }
        _common.add_video(u,
                          episode_name,
                          episode_thumb,
                          infoLabels=infoLabels,
                          quality_mode='list_qualities')
    _common.set_view('episodes')
def episodes(episode_url = _common.args.url):
	episode_data = _connection.getURL(episode_url)
	episode_json = simplejson.loads(episode_data)['result']
	episode_menu = episode_json['data']
	title = episode_json['title']
	for episode_item in episode_menu:
		url_att = episode_item['url_att']
		type = episode_item['type']
		if (episode_item['url_in_window']) or url_att or title != 'Full Episodes' or not episode_item['url_amazon']:
			videourl = episode_item['streaming_url']
			url = BASE + episode_item['url']
			episode_duration = int(_common.format_seconds(episode_item['duration']))
			episode_airdate = _common.format_date(episode_item['airdate'], '%m/%d/%y')
			if len(episode_item['label']) < len(episode_item['title']):
				episode_name = episode_item['label']
			else:
				episode_name = episode_item['title']
			try:
				season_number = int(episode_item['season_number'])
			except:
				season_number = -1
			try:
				episode_number = int(episode_item['episode_number'])
			except:
				episode_number = -1
			try:
				episode_thumb = episode_item['thumb']['large']
			except:
				episode_thumb = None
			if url_att:
				episode_pid = url_att.split('c___')[1]
				episode_plot = ''
			elif episode_item['description']:
				episode_plot = episode_item['description']
				episode_pid = url
			else:
				episode_plot, episode_pid = lookup_meta(url)
			if episode_pid is not None:
				u = sys.argv[0]
				u += '?url="' + urllib.quote_plus(episode_pid) + '"'
				u += '&mode="' + SITE + '"'
				u += '&sitemode="play_video"'
				infoLabels={	'title' : episode_name,
								'durationinseconds' : episode_duration,
								'season' : season_number,
								'episode' : episode_number,
								'plot' : episode_plot,
								'premiered' : episode_airdate }
				_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
			else:
				pass
	_common.set_view('episodes')
def videos(SITE):
	episode_url = _common.args.url
	episode_data = _connection.getURL(episode_url)
	episode_tree = simplejson.loads(episode_data)
	for episode_item in episode_tree['series']['playlists']:
		show_name = episode_tree['series']['title']
		episode_item = episode_item['playlist']
		if '|' in episode_item['headline']:
			episode_name = episode_item['headline'].split('|')[-1].strip()
		elif '- ' in episode_item['headline']:
			episode_name = episode_item['headline'].split('- ')[-1].strip()
		else:
			episode_name = episode_item['headline']
		try:
			episode_info = re.compile('[s|S]([0-9]).[e|E]?([0-9]{0,2}).*').findall(episode_item['title'])
			try:
				episode_season, episode_number = episode_info[0]
			except:
				episode_season = episode_info
				episode_number = -1
		except:
			episode_season = -1
			episode_number = -1
		url = episode_item['id']
		try:
			episode_plot = episode_item['subhead']
		except:
			episode_plot = ''
		episode_thumb = episode_item['image']
		try:
			episode_duration = _common.format_seconds(episode_item['duration']['timecode'])
		except:
			continue
		u = sys.argv[0]
		u += '?url="' + urllib.quote_plus(url) + '"'
		u += '&mode="' + SITE + '"'
		u += '&sitemode="play"'
		infoLabels = {	'title' : episode_name,
						'plot' : episode_plot,
						'durationinseconds' : episode_duration,
						'tvshowtitle' : show_name,
						'season' : episode_season,
						'episode' : episode_number }
		try:
			if (episode_item['distributionPolicies'][0]['distributionPolicy']['policyType'] == 'playable'):
				_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode = 'list_qualities')
		except:
			if (episode_item['distributionPolicies'][0]['policyType'] == 'playable'):
				_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode = 'list_qualities')
		else:
			pass
	_common.set_view('episodes')
def episodes(episode_url = _common.args.url):
	filter = episode_url.split('#')[1]
	season = episode_url.split('#')[2]
	episode_url = episode_url.split('#')[0]
	episode_data = _connection.getURL(episode_url)
	episode_tree = simplejson.loads(episode_data)[2]['data']
	episode_menu = BeautifulSoup(episode_tree, 'html.parser', parse_only = SoupStrainer('ul', id= 'full-episode-ul'))
	for episode_item in episode_menu.find_all('li', {'data-field_primary_filter_value' : filter , 'data-field_season_value' : season}):
		if 'locked' not in episode_item['class']:
			url = episode_item['data-public-url']
			episode_duration = episode_item['data-duration']
			episode_duration = int(_common.format_seconds(episode_duration))
			try:
				episode_airdate = _common.format_date(episode_item['data-date'].split(': ')[1],'%m/%d/%Y')
			except:
				episode_airdate = -1
			episode_name = HTMLParser.HTMLParser().unescape(episode_item['data-title'])
			try:
				season_number = int(episode_item['data-season'])
			except:
				season_number = -1
			try:
				episode_number = int(episode_item['data-episode'])
			except:
				episode_number = -1
			try:
				episode_thumb = episode_item.find('img')['data-src']
			except:
				try:
					episode_thumb = episode_item.find('img')['src']
				except:
					episode_thumb = None
			episode_plot = HTMLParser.HTMLParser().unescape(episode_item['data-description'])
			episode_showtitle = episode_item['data-page-title'].split('-')[1].strip()
			episode_MPAA = episode_item['data-rating']
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play_video"'
			infoLabels={	'title' : episode_name,
							'durationinseconds' : episode_duration,
							'season' : season_number,
							'episode' : episode_number,
							'plot' : episode_plot,
							'premiered' : episode_airdate,
							'TVShowTitle' : episode_showtitle,
							'MPAA' : episode_MPAA}
			_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels)
	_common.set_view('episodes')
def episodes(episode_url = _common.args.url):
	episode_data = _connection.getURL(episode_url)
	episode_tree = BeautifulSoup(episode_data, 'html.parser')
	episode_menu = episode_tree.find_all('episode')
	for episode_item in episode_menu:
		url = EPISODE % episode_item['id']
		try:
			episode_duration = episode_item['duration']
			episode_duration = int(_common.format_seconds(episode_duration))
		except:
			episode_duration = 0
			for segment_duration in episode_item.find_all('segment'):
				episode_duration += float(segment_duration['duration'])
		try:
			episode_airdate = _common.format_date(episode_item['originalpremieredate'].split(' ')[0],'%m/%d/%Y')
		except:
			try:
				episode_airdate = _common.format_date(episode_item['launchdate'].split(' ')[0],'%m/%d/%Y')
			except:
				episode_airdate = -1
		episode_name = episode_item['title']
		try:
			season_number = int(episode_item['episeasonnumber'])
		except:
			season_number = -1
		try:
			episode_number = int(episode_item['episodenumber'][:2])
		except:
			episode_number = -1
		try:
			episode_thumb = episode_item['thumbnailurl']
		except:
			episode_thumb = None
		episode_plot = episode_item.description.text
		u = sys.argv[0]
		u += '?url="' + urllib.quote_plus(url) + '"'
		u += '&mode="' + SITE + '"'
		u += '&sitemode="play_video"'
		infoLabels={	'title' : episode_name,
						'durationinseconds' : episode_duration,
						'season' : season_number,
						'episode' : episode_number,
						'plot' : episode_plot,
						'premiered' : episode_airdate }
		_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels)
	_common.set_view('episodes')
Exemple #14
0
def episodes(episode_url = _common.args.url):
	episode_data = _connection.getURL(episode_url)
	episode_json = simplejson.loads(episode_data)['result']
	episode_menu = episode_json['data']
	title = episode_json['title']
	for episode_item in episode_menu:
		url_att = episode_item['streaming_url']
		type = episode_item['type']
		if episode_item['status'] == 'AVAILABLE' or (_addoncompat.get_setting('cbs_use_login') == 'true' and episode_item['status'] == 'PREMIUM'):
			videourl = episode_item['streaming_url']
			url = BASE + episode_item['url']
			episode_duration = int(_common.format_seconds(episode_item['duration']))
			episode_airdate = _common.format_date(episode_item['airdate'], '%m/%d/%y')
			if len(episode_item['label']) < len(episode_item['title']) and episode_item['label']:
				episode_name = episode_item['label']
			else:
				episode_name = episode_item['title']
			try:
				season_number = int(episode_item['season_number'])
			except:
				season_number = -1
			try:
				episode_number = int(episode_item['episode_number'])
			except:
				episode_number = -1
			try:
				episode_thumb = episode_item['thumb']['large']
			except:
				episode_thumb = None
			episode_plot = episode_item['description']
			if url is not None:
				u = sys.argv[0]
				u += '?url="' + urllib.quote_plus(url) + '"'
				u += '&mode="' + SITE + '"'
				u += '&sitemode="play_video"'
				infoLabels={	'title' : episode_name,
								'durationinseconds' : episode_duration,
								'season' : season_number,
								'episode' : episode_number,
								'plot' : episode_plot,
								'premiered' : episode_airdate }
				_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
			else:
				pass
	_common.set_view('episodes')
Exemple #15
0
def add_clips_southpark(episode_tree):
    try:
        episode_menu = episode_tree.find_all('li', class_='clips_thumb')
        clip_titles = []
        for episode_item in episode_menu:
            episode_name = episode_item.find('a',
                                             class_='clips_thumb_link',
                                             text=True).string
            if episode_name not in clip_titles:
                clip_titles.append(episode_name)
                episode_plot = episode_item.find('h6').string.replace('"', '')
                url = episode_item.find('a')['href']
                episode_thumb = episode_item.find('img')['src'].split('?')[0]
                try:
                    episode_duration_seconds = _common.format_seconds(
                        episode_item.find('span',
                                          class_='clips_duration').string)
                except:
                    episode_duration_seconds = -1
                try:
                    episode_season = int(
                        episode_item.find(
                            'h5', class_='clips_thumb_season').string.replace(
                                'Season ', ''))
                except:
                    episode_season = -1
                u = sys.argv[0]
                u += '?url="' + urllib.quote_plus(url) + '"'
                u += '&mode="' + SITE + '"'
                u += '&sitemode="play_video"'
                infoLabels = {
                    'title': episode_name,
                    'duration': episode_duration_seconds,
                    'season': episode_season,
                    'plot': episode_plot,
                    'tvshowtitle': 'South Park'
                }
                _common.add_video(u,
                                  episode_name,
                                  episode_thumb,
                                  infoLabels=infoLabels,
                                  quality_mode='list_qualities')
    except:
        pass
def add_videos(episode_tree, SITE):
	episode_menu = episode_tree.find_all('div', class_ = 'media-module')
	show_name = episode_tree.find('h1').text
	for episode_item in episode_menu:
		episode_name = episode_item.a['data-title']
		episode_thumb = urllib.unquote_plus(episode_item.a.img['data-src'].split('url=')[1])
		try:
			episode_duration = _common.format_seconds(episode_item.find('div', class_='timestamp').text.strip())
		except:
			episode_duration = -1
		url = episode_item.a['href']
		u = sys.argv[0]
		u += '?url="' + urllib.quote_plus(url) + '"'
		u += '&mode="' + SITE + '"'
		u += '&sitemode="play_video"'
		infoLabels = {	'title' : episode_name,
						'durationinseconds' : episode_duration,
						'TVShowTitle' : show_name }
		_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode = 'list_qualities')
def add_videos(episode_tree, SITE):
    episode_menu = episode_tree.find_all("div", class_="vidthumb")
    show_name = episode_tree.find("h3", id="natgeov-section-title").text
    show_name = show_name.split("(")[0].strip()
    for episode_item in episode_menu:
        if episode_item.find(class_="video-locked") is None:
            episode_name = episode_item.a["title"]
            episode_thumb = episode_item.img["src"].split("url=")[1]
            try:
                episode_duration = _common.format_seconds(episode_item.span.text.strip())
            except:
                episode_duration = -1
            url = BASE + episode_item.a["href"]
            u = sys.argv[0]
            u += '?url="' + urllib.quote_plus(url) + '"'
            u += '&mode="' + SITE + '"'
            u += '&sitemode="play_video"'
            infoLabels = {"title": episode_name, "durationinseconds": episode_duration, "TVShowTitle": show_name}
            _common.add_video(u, episode_name, episode_thumb, infoLabels=infoLabels, quality_mode="list_qualities")
def add_clips(episode_tree):
    try:
        episode_menu = episode_tree.find_all('div', class_='block')
        for episode_item in episode_menu:
            episode_name = _common.replace_signs(
                episode_item.find('h3').a.text)
            episode_plot = _common.replace_signs(
                episode_item.find('p', class_=False).text)
            episode_thumb = episode_item.find('img')['src'].split('?')[0]
            url = episode_item.find('div', class_='thumb_area').a['href']
            try:
                episode_airdate = episode_item.find(
                    'div', class_='details').contents[0].split(' ',
                                                               1)[1].strip()
                episode_airdate = _common.format_date(episode_airdate,
                                                      '%B %d, %Y', '%d.%m.%Y')
            except:
                episode_airdate = -1
            try:
                episode_duration = _common.format_seconds(
                    episode_item.find('h3').small.text.replace(')',
                                                               '').replace(
                                                                   '(', ''))
            except:
                episode_duration = -1
            u = sys.argv[0]
            u += '?url="' + urllib.quote_plus(url) + '"'
            u += '&mode="' + SITE + '"'
            u += '&sitemode="play_video"'
            infoLabels = {
                'title': episode_name,
                'durationinseconds': episode_duration,
                'plot': episode_plot,
                'premiered': episode_airdate
            }
            _common.add_video(u,
                              episode_name,
                              episode_thumb,
                              infoLabels=infoLabels)
    except:
        pass
Exemple #19
0
def episodesClassic(episode_url = _common.args.url):
	episode_data = _connection.getURL(episode_url)
	episode_html = simplejson.loads(episode_data)['html']
	tree = BeautifulSoup(episode_html, 'html.parser')
	episode_menu = tree.find_all('div', class_ = 'video-content-wrapper')
	for episode_item in episode_menu:
		url = episode_item.find('a')['href']
		episode_duration = episode_item.find('div', class_ = 'video-content-duration').contents[1].replace('(', '').replace(')', '').strip()
		episode_duration = int(_common.format_seconds(episode_duration))
		episode_airdate = episode_item.find('div', class_ = 'video-content-air-date').contents[0].split(':')[1].strip()
		episode_airdate = _common.format_date(episode_airdate, '%m.%d.%Y')
		show_name = url.split('/')[2]
		episode_name = url.split('/')[-1].replace(show_name.replace('_', '-'), '').replace('-', ' ').title().replace(' T ', '\'t ')
		url = BASE + url
		episode_info = episode_item.find('div', class_ = 'video-content-season-info').text
		try:
			season_number = int(episode_info.split(',')[0].split(' ')[1].strip())
		except:
			season_number = -1
		try:
			episode_number = int(episode_info.split(',')[1].strip().split(' ')[1])
		except:
			episode_number = -1
		try:
			episode_thumb = episode_item.find('img')['src']
		except:
			episode_thumb = None
		episode_plot = episode_item.find('div', class_ = 'video-content-description').string
		u = sys.argv[0]
		u += '?url="' + urllib.quote_plus(url) + '"'
		u += '&mode="' + SITE + '"'
		u += '&sitemode="play_video"'
		infoLabels={	'title' : episode_name,
						'durationinseconds' : episode_duration,
						'season' : season_number,
						'episode' : episode_number,
						'plot' : episode_plot,
						'premiered' : episode_airdate }
		_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	_common.set_view('episodes')
def add_clips(episode_tree, season_number = -1):
	try:
		episode_menu = episode_tree.find_all('div', class_ = 'search_pad')
		for episode_item in episode_menu:
			show_name = episode_item.find('div', class_ = 'search_show').text
			episode_name = episode_item.find('div', class_ = 'search_text').a.text.strip()
			episode_plot = episode_item.find('div', class_ = 'search_text').contents[4].strip()
			url = episode_item.find('div', class_ = 'search_text').a['href']
			episode_thumb = episode_item.find('div', class_ = 'search_image').img['src'].split('?')[0]
			try:
				episode_airdate = episode_item.find('div', class_ = 'episode_meta').contents[5].text.replace('Aired: ', '').strip()
				episode_airdate = _common.format_date(episode_airdate, '%B %d, %Y', '%d.%m.%Y')
			except:
				episode_airdate = -1
			try:
				episode_duration = _common.format_seconds(episode_item.find('span', class_ = 'search_duration').text.replace(')', '').replace('(', ''))
			except:
				episode_duration = -1
			try:
				episode_number = int(episode_item.find('div', class_ = 'episode_meta').contents[1].text.split('#')[1])
			except:
				episode_number = -1
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play_video"'
			infoLabels = {	'title' : episode_name,
							'durationinseconds' : episode_duration,
							'season' : season_number,
							'episode' : episode_number,
							'plot' : episode_plot,
							'premiered' : episode_airdate,
							'tvshowtitle': show_name }
			_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	except:
		pass
def episodes(episode_url = _common.args.url):
	episode_data = _connection.getURL(episode_url)
	if 'clips' in _common.args.name.lower():
		episode_menu = simplejson.loads(episode_data)['entries']
		for i, episode_item in enumerate(episode_menu):
			default_mediacontent = None
			for mediacontent in episode_item['media$content']:
				if (mediacontent['plfile$isDefault'] == True) and (mediacontent['plfile$format'] == 'MPEG4'):
					default_mediacontent = mediacontent
				elif (mediacontent['plfile$format'] == 'MPEG4'):
					mpeg4_mediacontent = mediacontent
			if default_mediacontent is None:
				default_mediacontent=mpeg4_mediacontent
			url = default_mediacontent['plfile$url']
			episode_duration = int(episode_item['media$content'][0]['plfile$duration'])
			episode_plot = episode_item['description']
			episode_airdate = _common.format_date(epoch = episode_item['pubDate']/1000)
			episode_name = episode_item['title']
			try:
				season_number = int(episode_item['pl' + str(i + 1) + '$season'][0])
			except:
				season_number = -1
			try:
				episode_number = int(episode_item['pl' + str(i + 1) + '$episode'][0])
			except:
				episode_number = -1
			try:
				episode_thumb = episode_item['plmedia$defaultThumbnailUrl']
			except:
				episode_thumb = None
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play_video"'
			infoLabels={	'title' : episode_name,
							'durationinseconds' : episode_duration,
							'season' : season_number,
							'episode' : episode_number,
							'plot' : episode_plot,
							'premiered' : episode_airdate }
			_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels)
	else:
		episode_menu = simplejson.loads(episode_data)['episodes']
		for episode_item in episode_menu['episode']:
			url = str(episode_item['id'])
			episode_duration = _common.format_seconds(episode_item['duration'])
			episode_plot = episode_item['description']
			episode_airdate = _common.format_date(episode_item['publishDate'].replace(' EDT', ''), '%a %b %d %H:%M:%S %Y')
			episode_name = episode_item['title']
			try:
				season_number = int(episode_item['seasonNumber'])
			except:
				season_number = -1
			try:
				episode_number = int(episode_item['episodeNumber'][:1])
			except:
				episode_number = -1
			try:
				episode_thumb = episode_item['Thumbs']['Thumb'][-1]['content']
			except:
				episode_thumb = None
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play_video"'
			infoLabels={	'title' : episode_name,
							'durationinseconds' : episode_duration,
							'season' : season_number,
							'episode' : episode_number,
							'plot' : episode_plot,
							'premiered' : episode_airdate }
			_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	_common.set_view('episodes')
def add_video(episode_tree):
	episode_menu = episode_tree.find_all(itemtype = "http://schema.org/VideoObject", maincontent = re.compile('^((?!(quarantineDate|<b>)).)*$'))
	if not episode_menu:
		episode_menu = episode_tree.find_all(attrs = {'data-uri' : True, 'data-filter' : re.compile(_common.args.name.replace(' ', ''))})
	for episode_item in episode_menu:
		if not episode_item.find(class_ = "disabled-video"):
			try:
				episode_url = episode_item['mainuri']
			except:
				try:
					episode_url = BASE + episode_item.find(itemprop = "url")['href']
				except:
					episode_url = episode_item['data-uri']
			try:
				name =  episode_item.find(itemprop = "name")['content']
			except:
				try:
					name =  episode_item.find(itemprop = "name").string
				except:
					try:
						name =  episode_item.find(class_ = "sub-header").text.strip()
					except:
						try:
							name =  episode_item.find(class_ = "headline").text.strip()
						except:
							name =  episode_item.find(class_ = "header").text.strip()
			try:
				thumb =  episode_item.find(itemprop = "thumbnail")['content']
			except:
				try:
					thumb =  episode_item.find(itemprop = "thumbnail")['src']
				except:
					try:
						thumb =  episode_item.find(attrs ={'data-src' : True})['data-src']
					except:
						thumb = ''
			if 'http' not in thumb and thumb != '':
				thumb = BASE + thumb
			try: 
				plot = episode_item.find(itemprop = "description")['content']
			except:
				try: 
					plot = episode_item.find(class_ = "deck").text
				except:
					plot = ''
			plot = plot.replace('<i>', '').replace('</i>', '')
			try:
				episode_number = int(re.compile('s[0-9]/e([0-9]?[0-9])').findall(episode_item.find(class_ = "header").text.strip())[0])
			except:
				try:
					try:
						episode_number = episode_item.find('li', class_ ='list-ep').string
					except:
						episode_number = int(re.compile('[0-9]?([0-9]?[0-9])').findall(name)[0])
				except:
					episode_number = -1
			try:
				season_number = int(re.compile('Season ([0-9]+)').findall(_common.args.name + episode_item.a.string)[0])
			except:
				try:
					season_number = int(re.compile('([0-9])[0-9][0-9]').findall(name)[0])
				except:
					try:
						season_number = int(re.compile('s([0-9])/e[0-9]?[0-9]').findall(episode_item.find(class_ = "header").text.strip())[0])
					except:
						season_number = -1
			try:
				name = re.compile('\(([^0-9]+)\)').findall(name)[0]
			except: 
				try:
					name = re.compile('[\-:|(](.+?)(?: \(|$|\))').findall(name)[0]
				except: 
					pass
			try:
				airDate = episode_item.find(itemprop = "uploadDate")['content']
				airDate = _common.format_date(airDate, '%y-%m-%d') 
			except:
				try:
					airDate = episode_item.find(itemprop = "datePublished").string.split(' ')[0]
					airDate = _common.format_date(airDate, '%m/%d/%y') 
				except:
					try:
						airDate = episode_item.find(class_ = "meta").text.split(' ')[-1].strip()
						airDate = _common.format_date(airDate, '%m/%d/%y') 
					except:
						airDate = -1
			try:
				duration = episode_item.find(class_ = "meta").text.split('-')[0].strip()
				durationinseconds = _common.format_seconds(duration)
			except:
				durationinseconds = -1
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(episode_url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play"'
			_common.add_video(u, name, thumb, infoLabels = {'title' : name, "Episode" : episode_number, "Season" : season_number, "Plot" : plot, "premiered" : airDate, "durationinseconds" : durationinseconds}, quality_mode  = 'list_qualities')
			_common.set_view('episodes')
Exemple #23
0
def episodes(episode_url=_common.args.url):
    filter = episode_url.split('#')[1]
    season = episode_url.split('#')[2]
    episode_url = episode_url.split('#')[0]
    episode_data = _connection.getURL(episode_url)
    episode_tree = simplejson.loads(episode_data)[2]['data']
    episode_menu = BeautifulSoup(episode_tree,
                                 'html.parser',
                                 parse_only=SoupStrainer('ul',
                                                         id='full-episode-ul'))
    for episode_item in episode_menu.find_all(
            'li', {
                'data-field_primary_filter_value': filter,
                'data-field_season_value': season
            }):
        if 'locked' not in episode_item['class']:
            url = episode_item['data-public-url']
            episode_duration = episode_item['data-duration']
            episode_duration = int(_common.format_seconds(episode_duration))
            try:
                episode_airdate = _common.format_date(
                    episode_item['data-date'].split(': ')[1], '%m/%d/%Y')
            except:
                episode_airdate = -1
            episode_name = HTMLParser.HTMLParser().unescape(
                episode_item['data-title'])
            try:
                season_number = int(episode_item['data-season'])
            except:
                season_number = -1
            try:
                episode_number = int(episode_item['data-episode'])
            except:
                episode_number = -1
            try:
                episode_thumb = episode_item.find('img')['data-src']
            except:
                try:
                    episode_thumb = episode_item.find('img')['src']
                except:
                    episode_thumb = None
            episode_plot = HTMLParser.HTMLParser().unescape(
                episode_item['data-description'])
            episode_showtitle = episode_item['data-page-title'].split(
                '-')[1].strip()
            episode_MPAA = episode_item['data-rating']
            u = sys.argv[0]
            u += '?url="' + urllib.quote_plus(url) + '"'
            u += '&mode="' + SITE + '"'
            u += '&sitemode="play_video"'
            infoLabels = {
                'title': episode_name,
                'durationinseconds': episode_duration,
                'season': season_number,
                'episode': episode_number,
                'plot': episode_plot,
                'premiered': episode_airdate,
                'TVShowTitle': episode_showtitle,
                'MPAA': episode_MPAA
            }
            _common.add_video(u,
                              episode_name,
                              episode_thumb,
                              infoLabels=infoLabels)
    _common.set_view('episodes')
Exemple #24
0
def episodes(SITE):
    episode_url = _common.args.url
    try:
        season_number = int(episode_url.split('filterBySeasonNumber=')[1])
    except:
        season_number = 0
    episode_data = _connection.getURL(episode_url)
    episode_tree = BeautifulSoup(episode_data, 'html.parser')
    episode_menu = episode_tree.find_all('episode')
    for episode_item in episode_menu:
        try:
            episode_season_number = int(episode_item['episeasonnumber'])
        except:
            episode_season_number = 0
        print "Es", episode_season_number
        if episode_season_number == season_number or 'filterBySeasonNumber' not in episode_url:
            print "HRE"
            segments = episode_item.find_all('segment')
            if len(segments) == 0:
                url = episode_item['id']
            else:
                url = ''
                for segment in segments:
                    url = url + ',' + segment['id']
                url = url[1:]
            try:
                episode_duration = episode_item['duration']
                episode_duration = int(
                    _common.format_seconds(episode_duration))
            except:
                episode_duration = 0
                for segment_duration in segments:
                    episode_duration += float(segment_duration['duration'])
            try:
                episode_airdate = _common.format_date(
                    episode_item['originalpremieredate'].split(' ')[0],
                    '%m/%d/%Y')
            except:
                try:
                    episode_airdate = _common.format_date(
                        episode_item['launchdate'].split(' ')[0], '%m/%d/%Y')
                except:
                    episode_airdate = -1
            episode_name = episode_item['title']
            try:
                season_number = int(episode_item['episeasonnumber'])
            except:
                season_number = -1
            try:
                episode_number = int(episode_item['episodenumber'][:2])
            except:
                episode_number = -1
            try:
                episode_thumb = episode_item['thumbnailurl']
            except:
                episode_thumb = None
            episode_plot = episode_item.description.text
            u = sys.argv[0]
            u += '?url="' + urllib.quote_plus(url) + '"'
            u += '&mode="' + SITE + '"'
            u += '&sitemode="play_video"'
            infoLabels = {
                'title': episode_name,
                'durationinseconds': episode_duration,
                'season': season_number,
                'episode': episode_number,
                'plot': episode_plot,
                'premiered': episode_airdate
            }
            _common.add_video(u,
                              episode_name,
                              episode_thumb,
                              infoLabels=infoLabels)
    _common.set_view('episodes')
def episodes(SITE):
	episode_url = _common.args.url
	try:
		season_number = int(episode_url.split('filterBySeasonNumber=')[1])
	except:
		season_number = 0 
	episode_data = _connection.getURL(episode_url)
	episode_tree = BeautifulSoup(episode_data, 'html.parser')
	episode_menu = episode_tree.find_all('episode')
	for episode_item in episode_menu:
		try:
			episode_season_number = int(episode_item['episeasonnumber'])
		except:
			episode_season_number = 0
		if episode_season_number == season_number or 'filterBySeasonNumber'  not in episode_url:
			segments = episode_item.find_all('segment')
			if len(segments) == 0:
				url = episode_item['id']
			else:
				url = ''
				for segment in segments:
					url = url + ',' + segment['id']
				url = url[1:]
			try:
				episode_duration = episode_item['duration']
				episode_duration = int(_common.format_seconds(episode_duration))
			except:
				episode_duration = 0
				for segment_duration in segments:
					episode_duration += float(segment_duration['duration'])
			try:
				episode_airdate = _common.format_date(episode_item['originalpremieredate'].split(' ')[0],'%m/%d/%Y')
			except:
				try:
					episode_airdate = _common.format_date(episode_item['launchdate'].split(' ')[0],'%m/%d/%Y')
				except:
					episode_airdate = -1
			episode_name = episode_item['title']
			try:
				season_number = int(episode_item['episeasonnumber'])
			except:
				season_number = -1
			try:
				episode_number = int(episode_item['episodenumber'][:2])
			except:
				episode_number = -1
			try:
				episode_thumb = episode_item['thumbnailurl']
			except:
				episode_thumb = None
			episode_plot = episode_item.description.text
			u = sys.argv[0]
			u += '?url="' + urllib.quote_plus(url) + '"'
			u += '&mode="' + SITE + '"'
			u += '&sitemode="play_video"'
			infoLabels={	'title' : episode_name,
							'durationinseconds' : episode_duration,
							'season' : season_number,
							'episode' : episode_number,
							'plot' : episode_plot,
							'premiered' : episode_airdate }
			_common.add_video(u, episode_name, episode_thumb, infoLabels = infoLabels, quality_mode  = 'list_qualities')
	_common.set_view('episodes')