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_='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')
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')
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')
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')
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
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')
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(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')