def episodes(url=common.args.url): data = common.getURL(url) tree=BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) menu=tree.findAll('div',attrs={'class':'tile'}) for item in menu: link = item.find('div',attrs={'class':'tile_title'}).find('a') name = link.string url = link['href'] thumb = item.find('img')['src'] try: description = item.find('div',attrs={'class':'tile_desc'}).string except: description = '' show_tile_sub = item.find('div',attrs={'class':'show_tile_sub'}).string.split('|') airDate = show_tile_sub[1].replace(' Aired on ','').strip() duration = show_tile_sub[0].strip() u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="abc"' u += '&sitemode="play"' infoLabels={ "Title":name, "Plot":description, "premiered":common.formatDate(airDate,'%m/%d/%y'), "Duration":duration, } common.addVideo(u,name,thumb,infoLabels=infoLabels) common.setView('episodes')
def episodes(url=common.args.url): data = common.getURL(url) tree = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) menu = tree.findAll('div', attrs={'class': 'tile'}) for item in menu: link = item.find('div', attrs={'class': 'tile_title'}).find('a') name = link.string url = link['href'] thumb = item.find('img')['src'] try: description = item.find('div', attrs={'class': 'tile_desc'}).string except: description = '' show_tile_sub = item.find('div', attrs={ 'class': 'show_tile_sub' }).string.split('|') airDate = show_tile_sub[1].replace(' Aired on ', '').strip() duration = show_tile_sub[0].strip() u = sys.argv[0] u += '?url="' + urllib.quote_plus(url) + '"' u += '&mode="abc"' u += '&sitemode="play"' infoLabels = { "Title": name, "Plot": description, "premiered": common.formatDate(airDate, '%m/%d/%y'), "Duration": duration, } common.addVideo(u, name, thumb, infoLabels=infoLabels) common.setView('episodes')
def showroot(id=common.args.url): url = build_api_url('channel','',ID=id) data = common.getURL(url) if data: items = demjson.decode(data)['FolderList'] for item in items: if 'Full Episodes'==item['Name'] or 'Television Clips & Trailers'==item['Name'] or 'Minisodes'==item['Name'] or 'Original Series'==item['Name'] or 'Movie'==item['Name'] or 'Movie Clips & Trailers'==item['Name']: for season in item['PlaylistList']: for video in season['MediaList']: thumb=video['ThumbnailExternal'] ID=str(video['ID']) url = video['DetailsURL'] infoLabels={} infoLabels['Title']=video['Title'] infoLabels['Duration']=video['Duration'] try:infoLabels['Season']=int(video['Season']) except:pass try:infoLabels['Episode']=int(video['Episode']) except:pass infoLabels['MPAA']=video['Rating'] infoLabels['Genre']=video['Genre'] infoLabels['TVShowTitle']=video['ParentChannelName'] infoLabels['Plot']=video['Description'] try:infoLabels['AirDate']=common.formatDate(video['ReleaseDate'],'%m/%d/%Y') except: print video['ReleaseDate'] displayname=infoLabels['Title'] if infoLabels.has_key('Season') or infoLabels.has_key('Episode'): displayname = str(infoLabels['Season'])+'x'+str(infoLabels['Episode'])+' - '+infoLabels['Title'] u = sys.argv[0] u += '?url="'+urllib.quote_plus(ID)+'"' u += '&mode="crackle"' u += '&sitemode="play"' common.addVideo(u,displayname,thumb,infoLabels=infoLabels) common.setView('episodes')
def episode(): cid = common.args.url showname = common.args.name #url = 'http://www.tnt.tv/processors/services/getCollectionByContentId.do?offset=0&sort=&limit=200&id='+cid #url = 'http://www.tnt.tv/content/services/getCollectionByContentId.do?site=true&offset=0&sort=&limit=200&id='+cid url = 'http://www.tnt.tv/video/content/services/getCollectionByContentId.do?offset=0&sort=&limit=200&id='+cid html=common.getURL(url) tree=BeautifulStoneSoup(html, convertEntities=BeautifulStoneSoup.HTML_ENTITIES) episodes = tree.findAll('episode') for episode in episodes: episodeId = episode['id'] name = episode.find('title').string thumbnail = episode.find('thumbnailurl').string plot = episode.find('description').string duration = episode.find('duration').string try:seasonNum = int(episode.find('seasonnumber').string) except:seasonNum = 0 try: episodeNum = episode.find('episodenumber').string if len(episodeNum) > 2 and episodeNum.startswith(str(seasonNum)): episodeNum = episodeNum[1:] if len(episodeNum) > 2: episodeNum = episodeNum[-2:] print episodeNum episodeNum = int(episodeNum) except:episodeNum = 0 try:duration = episode.find('duration').string.strip() except: duration = '' try: mpaa = episode.find('tvratingcode').string.strip() except: mpaa = '' try: airdate = common.formatDate(episode.find('expirationdate').string,'%m/%d/%Y') except: airdate = '' displayname=name if episodeNum <> 0 or seasonNum <> 0: displayname = str(seasonNum)+'x'+str(episodeNum)+' - '+name segments = episode.findAll('segment') if len(segments) == 0: url = episodeId mode = 'play' else: url = '' for segment in segments: url += segment['id']+'<segment>' mode = 'playepisode' #PLAYEPISODE u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="tnt"' u += '&sitemode="'+mode+'"' infoLabels={ "Title":name, "Plot":plot, "Season":seasonNum, "Duration":duration, "MPAA":mpaa, "premiered":airdate, "Episode":episodeNum, "TVShowTitle":showname } common.addVideo(u,displayname,thumbnail,infoLabels=infoLabels) common.setView('episodes')
def showroot(id=common.args.url): url = build_api_url('channel', '', ID=id) data = common.getURL(url) if data: items = demjson.decode(data)['FolderList'] for item in items: if 'Full Episodes' == item[ 'Name'] or 'Television Clips & Trailers' == item[ 'Name'] or 'Minisodes' == item[ 'Name'] or 'Original Series' == item[ 'Name'] or 'Movie' == item[ 'Name'] or 'Movie Clips & Trailers' == item[ 'Name']: for season in item['PlaylistList']: for video in season['MediaList']: thumb = video['ThumbnailExternal'] ID = str(video['ID']) url = video['DetailsURL'] infoLabels = {} infoLabels['Title'] = video['Title'] infoLabels['Duration'] = video['Duration'] try: infoLabels['Season'] = int(video['Season']) except: pass try: infoLabels['Episode'] = int(video['Episode']) except: pass infoLabels['MPAA'] = video['Rating'] infoLabels['Genre'] = video['Genre'] infoLabels['TVShowTitle'] = video['ParentChannelName'] infoLabels['Plot'] = video['Description'] try: infoLabels['AirDate'] = common.formatDate( video['ReleaseDate'], '%m/%d/%Y') except: print video['ReleaseDate'] displayname = infoLabels['Title'] if infoLabels.has_key('Season') or infoLabels.has_key( 'Episode'): displayname = str( infoLabels['Season']) + 'x' + str( infoLabels['Episode'] ) + ' - ' + infoLabels['Title'] u = sys.argv[0] u += '?url="' + urllib.quote_plus(ID) + '"' u += '&mode="crackle"' u += '&sitemode="play"' common.addVideo(u, displayname, thumb, infoLabels=infoLabels) common.setView('episodes')
def process(urlBase, fullname = common.args.url): #url = 'http://feed.theplatform.com/f/OyMl-B/Y3vAV4MxgwlM' url = urlBase url += '&form=json' #url += '&fields=guid,title,description,categories,content,defaultThumbnailUrl' url += '&fileFields=duration,url,width,height' url += '&count=true' url += '&byCategories='+urllib.quote_plus(fullname) #url += '&byCustomValue={fullEpisode}{true}' data = common.getURL(url) episodes = demjson.decode(data)['entries'] for episode in episodes: print episode try: name = episode['title'].split(':')[1].strip() seasonEpisode =episode['title'].split(':')[0].strip() season = int(seasonEpisode[:1]) episodeNum = int(seasonEpisode[1:]) except: name = episode['title'] season=0 episodeNum=0 description = episode['description'] try: thumb= episode['plmedia$defaultThumbnailUrl'] except: print "no thumb for",name duration=str(int(episode['media$content'][0]['plfile$duration'])) airDate = common.formatDate(epoch=episode['pubDate']/1000) #print "vid url",url url=episode['media$content'][0]['plfile$url'] if season <> 0 and episodeNum <> 0: displayname = '%sx%s - %s' % (str(season),str(episodeNum),name) elif season <> 0: displayname = '%S%s - %s' % (str(season),name) else: displayname = name u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="usa"' u += '&sitemode="play"' infoLabels={ "Title":name, "Season":season, "Episode":episodeNum, "Plot":description, "premiered":airDate, "Duration":duration, "TVShowTitle":common.args.name } common.addVideo(u,displayname,thumb,infoLabels=infoLabels)
def ccepisodes(url=common.args.url): data = common.getURL(url) try: showcase=re.compile("var episodeShowcaseLlink = '(.+?)';").findall(data)[0] keepGoing=True except: keepGoing=False u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="comedy"' u += '&sitemode="playurl"' common.addVideo(u,"Play Episode") current=1 while keepGoing: showcase_url = BASE_URL+showcase+'?currentPage='+str(current) data = common.getURL(showcase_url) videos=BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES).findAll('div',attrs={'itemtype':'http://schema.org/TVEpisode'}) for video in videos: infoLabels={} url=video.find('meta',attrs={'itemprop':'url'})['content'] thumb=video.find('meta',attrs={'itemprop':'image'})['content'] infoLabels['Title']=video.find('meta',attrs={'itemprop':'name'})['content'] infoLabels['Plot']=video.find('meta',attrs={'itemprop':'description'})['content'] infoLabels['premiered']=common.formatDate(video.find('meta',attrs={'itemprop':'datePublished'})['content'],'%b %d, %Y') seasonEpisode = video.find('div',attrs={'class':'video_meta'}).string.split('|')[0].split('-') infoLabels['Season'] = int(seasonEpisode[0].replace('Season','').strip()) if 'Special' not in seasonEpisode[1]: episode = seasonEpisode[1].replace('Episode','').strip() if len(episode) > 2: episode = episode[-2:] infoLabels['Episode'] = int(episode) else: infoLabels['Episode'] = 0 if infoLabels['Season'] <> 0 or infoLabels['Episode'] <> 0: displayname = '%sx%s - %s' % (infoLabels['Season'],str(infoLabels['Episode']),infoLabels['Title']) else: displayname = infoLabels['Title'] u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="comedy"' u += '&sitemode="playurl"' common.addVideo(u,displayname,thumb,infoLabels=infoLabels) if len(videos) < 5: keepGoing=False current+=1 common.setView('episodes')
def process(urlBase, fullname = common.args.url): #url = 'http://feed.theplatform.com/f/OyMl-B/Y3vAV4MxgwlM' url = urlBase url += '&form=json' #url += '&fields=guid,title,description,categories,content,defaultThumbnailUrl' url += '&fileFields=duration,url,width,height' url += '&count=true' url += '&byCategories='+urllib.quote_plus(fullname) #url += '&byCustomValue={fullEpisode}{true}' data = common.getURL(url) episodes = demjson.decode(data)['entries'] for episode in episodes: try: name = episode['title'].split(':')[1].strip() seasonEpisode =episode['title'].split(':')[0].strip() season = int(seasonEpisode[:1]) episodeNum = int(seasonEpisode[1:]) except: name = episode['title'] season=0 episodeNum=0 description = episode['description'] thumb= episode['plmedia$defaultThumbnailUrl'] duration=str(int(episode['media$content'][0]['plfile$duration'])) airDate = common.formatDate(epoch=episode['pubDate']/1000) url=episode['media$content'][0]['plfile$url'] if season <> 0 and episodeNum <> 0: displayname = '%sx%s - %s' % (str(season),str(episodeNum),name) elif season <> 0: displayname = '%S%s - %s' % (str(season),name) else: displayname = name u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="usa"' u += '&sitemode="play"' infoLabels={ "Title":name, "Season":season, "Episode":episodeNum, "Plot":description, "premiered":airDate, "Duration":duration, "TVShowTitle":common.args.name } common.addVideo(u,displayname,thumb,infoLabels=infoLabels)
def process(urlBase, fullname=common.args.url): url = urlBase url += '&form=json' #url += '&fields=guid,title,description,categories,content,defaultThumbnailUrl'#,:fullEpisode url += '&fileFields=duration,url,width,height' url += '&count=true' #url += '&byCategories='+urllib.quote_plus(fullname) #url += '&byCustomValue={fullEpisode}{false}' data = common.getURL(url) episodes = demjson.decode(data)['entries'] for episode in episodes: if fullname == episode['pl1$show'][0]: try: name = episode['description'].split('-')[1].strip() except: name = episode['pl1$show'][0] showname = episode['pl1$subtitle'] description = episode['description'] thumb = episode['plmedia$defaultThumbnailUrl'] season = episode['pl1$season'][0] episodeNum = episode['pl1$episode'][0] duration = str(int(episode['media$content'][0]['plfile$duration'])) url = episode['media$content'][0]['plfile$url'] airDate = common.formatDate(epoch=episode['pubDate'] / 1000) displayname = '%sx%s - %s' % (str(season), str(episodeNum), name) u = sys.argv[0] u += '?url="' + urllib.quote_plus(url) + '"' u += '&mode="bravo"' u += '&sitemode="play"' infoLabels = { "Title": name, "Season": season, "Episode": episodeNum, "Plot": description, "premiered": airDate, "Duration": duration, "TVShowTitle": showname } common.addVideo(u, displayname, thumb, infoLabels=infoLabels)
def process(urlBase, fullname = common.args.url): url = urlBase url += '&form=json' #url += '&fields=guid,title,description,categories,content,defaultThumbnailUrl'#,:fullEpisode url += '&fileFields=duration,url,width,height' url += '&count=true' #url += '&byCategories='+urllib.quote_plus(fullname) #url += '&byCustomValue={fullEpisode}{false}' data = common.getURL(url) episodes = demjson.decode(data)['entries'] for episode in episodes: if fullname == episode['pl1$show'][0]: try: name = episode['description'].split('-')[1].strip() except: name = episode['pl1$show'][0] showname = episode['pl1$subtitle'] description = episode['description'] thumb= episode['plmedia$defaultThumbnailUrl'] season = episode['pl1$season'][0] episodeNum = episode['pl1$episode'][0] duration=str(int(episode['media$content'][0]['plfile$duration'])) url=episode['media$content'][0]['plfile$url'] airDate = common.formatDate(epoch=episode['pubDate']/1000) displayname = '%sx%s - %s' % (str(season),str(episodeNum),name) u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="bravo"' u += '&sitemode="play"' infoLabels={ "Title":name, "Season":season, "Episode":episodeNum, "Plot":description, "premiered":airDate, "Duration":duration, "TVShowTitle":showname } common.addVideo(u,displayname,thumb,infoLabels=infoLabels)
def process(urlBase, fullname=common.args.url): #url = 'http://feed.theplatform.com/f/AqNl-B/iyAsU_4kQn1I' url = urlBase url += '?form=json' #url += '&fields=guid,title,description,categories,content,defaultThumbnailUrl'#,:fullEpisode url += '&fileFields=duration,url,width,height' url += '&count=true' url += '&byCategories=' + urllib.quote_plus(fullname) #url += '&byCustomValue={fullEpisode}{false}' data = common.getURL(url) episodes = demjson.decode(data)['entries'] for episode in episodes: if ':' in episode['title']: name = episode['title'].split(':')[1].strip() else: name = episode['title'] description = episode['description'] if ' Episode ' in episode[ 'title'] and ' Episode Preview' not in episode['title']: showname = episode['title'].split('Episode')[0].strip() seasonEpisode = episode['title'].split(':')[0].split( 'Episode')[-1].strip() try: season = int(seasonEpisode[:1]) episodeNum = int(seasonEpisode[1:]) except: season = 0 episodeNum = 0 displayname = '%sx%s - %s' % (str(season), str(episodeNum), name) elif ' Season ' in episode['title']: showname = episode['title'].split('Season')[0].strip() season = int(episode['title'].split(':')[0].split('Season') [-1].strip().split(' ')[0].strip()) episodeNum = 0 displayname = '%sx%s - %s' % (str(season), str(episodeNum), name) else: try: seasonEpisode = episode['title'].split(':')[0].split( ' ')[-1].strip() showname = episode['title'].split(seasonEpisode)[0].strip() season = int(seasonEpisode[:1]) episodeNum = int(seasonEpisode[1:]) displayname = '%sx%s - %s' % (str(season), str(episodeNum), name) except: name = episode['title'] showname = name.split(' ')[0] displayname = name season = 0 episodeNum = 0 thumb = episode['plmedia$defaultThumbnailUrl'] duration = str(int(episode['media$content'][0]['plfile$duration'])) url = episode['media$content'][0]['plfile$url'] airDate = common.formatDate(epoch=episode['pubDate'] / 1000) u = sys.argv[0] u += '?url="' + urllib.quote_plus(url) + '"' u += '&mode="oxygen"' u += '&sitemode="play"' infoLabels = { "Title": name, "Season": season, "Episode": episodeNum, "Plot": description, "premiered": airDate, "Duration": duration, "TVShowTitle": showname } common.addVideo(u, displayname, thumb, infoLabels=infoLabels)
def episodes(url=common.args.url): data = common.getURL(url) tree=BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) menu=tree.findAll(attrs={'id':True,'class':True,'href':'#'}) for item in menu: if 'http://www.colbertnation.com' in common.args.url: eurl='http://www.colbertnation.com'+item['id'] data = common.getURL(eurl) tree=BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) episodes=tree.findAll(attrs={'class':'module showcase_item'}) selected = tree.find(attrs={'class':'module showcase_item selected'}) if selected <> None: episodes.insert(0,selected) for episode in episodes: thumb = episode.find('img')['src'].split('?')[0] name = episode.find(attrs={'class':'title'}).find('a').string.encode('utf8') url = episode.find(attrs={'class':'title'}).find('a')['href'] airDate = episode.find(attrs={'class':'date'}).string.replace('Aired: ','') airDate = common.formatDate(airDate,'%m/%d/%y') try: description = episode.find(attrs={'class':'description'}).string.encode('utf8') except: description = '' seasonepisode = episode.find(attrs={'class':'number'}).string.replace('Episode ','') if len(seasonepisode) == 5: season = int(seasonepisode[:2]) episode = int(seasonepisode[-3:]) elif len(seasonepisode) == 4: season = int(seasonepisode[:2]) episode = int(seasonepisode[-2:]) elif len(seasonepisode) == 3: season = int(seasonepisode[:1]) episode = int(seasonepisode[-2:]) else: season = 0 episode = 0 if season <> 0 or episode <> 0: displayname = '%sx%s - %s' % (str(season),str(episode),name) else: displayname = name u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="comedy"' u += '&sitemode="playurl"' infoLabels={ "Title":name, "Season":season, "Episode":episode, "Plot":description, "premiered":airDate, #"Duration":duration, "TVShowTitle":common.args.name } common.addVideo(u,displayname,thumb,infoLabels=infoLabels) else: eurl = item['id'] data = common.getURL(eurl) tree=BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) episodes=tree.findAll(attrs={'class':'moreEpisodesContainer'}) selected = tree.find(attrs={'class':'moreEpisodesContainer-selected'}) if selected <> None: episodes.insert(0,selected) for episode in episodes: thumb = episode.find('img')['src'].split('?')[0] name = episode.find(attrs={'class':'moreEpisodesTitle'}).find('a').string.encode('utf8') url = episode.find(attrs={'class':'moreEpisodesTitle'}).find('a')['href'] airDate = episode.find(attrs={'class':'moreEpisodesAirDate'}).find(attrs={'class':'date'}).string.replace('Aired: ','') airDate = common.formatDate(airDate,'%m/%d/%y') try: description = episode.find(attrs={'class':'description'}).string.encode('utf8') except: description = '' seasonepisode = episode.find(attrs={'class':'moreEpisodesNumber'}).find(attrs={'class':'id'}).string.replace('Episode ','') if len(seasonepisode) == 5: season = int(seasonepisode[:2]) episode = int(seasonepisode[-3:]) elif len(seasonepisode) == 4: season = int(seasonepisode[:2]) episode = int(seasonepisode[-2:]) elif len(seasonepisode) == 3: season = int(seasonepisode[:1]) episode = int(seasonepisode[-2:]) else: season = 0 episode = 0 if season <> 0 or episode <> 0: displayname = '%sx%s - %s' % (str(season),str(episode),name) else: displayname = name u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="comedy"' u += '&sitemode="playurl"' infoLabels={ "Title":name, "Season":season, "Episode":episode, "Plot":description, "premiered":airDate, #"Duration":duration, "TVShowTitle":common.args.name } common.addVideo(u,displayname,thumb,infoLabels=infoLabels) common.setView('episodes')
def process(urlBase, fullname = common.args.url): #url = 'http://feed.theplatform.com/f/AqNl-B/iyAsU_4kQn1I' url = urlBase url += '?form=json' #url += '&fields=guid,title,description,categories,content,defaultThumbnailUrl'#,:fullEpisode url += '&fileFields=duration,url,width,height' url += '&count=true' url += '&byCategories='+urllib.quote_plus(fullname) #url += '&byCustomValue={fullEpisode}{false}' data = common.getURL(url) episodes = demjson.decode(data)['entries'] for episode in episodes: if ':' in episode['title']: name = episode['title'].split(':')[1].strip() else: name = episode['title'] description = episode['description'] if ' Episode ' in episode['title'] and ' Episode Preview' not in episode['title']: showname=episode['title'].split('Episode')[0].strip() seasonEpisode = episode['title'].split(':')[0].split('Episode')[-1].strip() try: season = int(seasonEpisode[:1]) episodeNum = int(seasonEpisode[1:]) except: season = 0 episodeNum = 0 displayname = '%sx%s - %s' % (str(season),str(episodeNum),name) elif ' Season ' in episode['title']: showname=episode['title'].split('Season')[0].strip() season = int(episode['title'].split(':')[0].split('Season')[-1].strip().split(' ')[0].strip()) episodeNum = 0 displayname = '%sx%s - %s' % (str(season),str(episodeNum),name) else: try: seasonEpisode = episode['title'].split(':')[0].split(' ')[-1].strip() showname=episode['title'].split(seasonEpisode)[0].strip() season = int(seasonEpisode[:1]) episodeNum = int(seasonEpisode[1:]) displayname = '%sx%s - %s' % (str(season),str(episodeNum),name) except: name = episode['title'] showname = name.split(' ')[0] displayname = name season = 0 episodeNum = 0 thumb= episode['plmedia$defaultThumbnailUrl'] duration=str(int(episode['media$content'][0]['plfile$duration'])) url=episode['media$content'][0]['plfile$url'] airDate = common.formatDate(epoch=episode['pubDate']/1000) u = sys.argv[0] u += '?url="'+urllib.quote_plus(url)+'"' u += '&mode="oxygen"' u += '&sitemode="play"' infoLabels={ "Title":name, "Season":season, "Episode":episodeNum, "Plot":description, "premiered":airDate, "Duration":duration, "TVShowTitle":showname } common.addVideo(u,displayname,thumb,infoLabels=infoLabels)
def ccepisodes(url=common.args.url): data = common.getURL(url) try: showcase = re.compile("var episodeShowcaseLlink = '(.+?)';").findall( data)[0] keepGoing = True except: keepGoing = False u = sys.argv[0] u += '?url="' + urllib.quote_plus(url) + '"' u += '&mode="comedy"' u += '&sitemode="playurl"' common.addVideo(u, "Play Episode") current = 1 while keepGoing: showcase_url = BASE_URL + showcase + '?currentPage=' + str(current) data = common.getURL(showcase_url) videos = BeautifulSoup( data, convertEntities=BeautifulSoup.HTML_ENTITIES).findAll( 'div', attrs={'itemtype': 'http://schema.org/TVEpisode'}) for video in videos: infoLabels = {} url = video.find('meta', attrs={'itemprop': 'url'})['content'] thumb = video.find('meta', attrs={'itemprop': 'image'})['content'] infoLabels['Title'] = video.find('meta', attrs={'itemprop': 'name'})['content'] infoLabels['Plot'] = video.find('meta', attrs={'itemprop': 'description'})['content'] infoLabels['premiered'] = common.formatDate( video.find('meta', attrs={'itemprop': 'datePublished'})['content'], '%b %d, %Y') seasonEpisode = video.find('div', attrs={ 'class': 'video_meta' }).string.split('|')[0].split('-') infoLabels['Season'] = int(seasonEpisode[0].replace('Season', '').strip()) if 'Special' not in seasonEpisode[1]: episode = seasonEpisode[1].replace('Episode', '').strip() if len(episode) > 2: episode = episode[-2:] infoLabels['Episode'] = int(episode) else: infoLabels['Episode'] = 0 if infoLabels['Season'] <> 0 or infoLabels['Episode'] <> 0: displayname = '%sx%s - %s' % (infoLabels['Season'], str(infoLabels['Episode']), infoLabels['Title']) else: displayname = infoLabels['Title'] u = sys.argv[0] u += '?url="' + urllib.quote_plus(url) + '"' u += '&mode="comedy"' u += '&sitemode="playurl"' common.addVideo(u, displayname, thumb, infoLabels=infoLabels) if len(videos) < 5: keepGoing = False current += 1 common.setView('episodes')
def episodes(url=common.args.url): data = common.getURL(url) tree = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) menu = tree.findAll(attrs={'id': True, 'class': True, 'href': '#'}) for item in menu: if 'http://www.colbertnation.com' in common.args.url: eurl = 'http://www.colbertnation.com' + item['id'] data = common.getURL(eurl) tree = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) episodes = tree.findAll(attrs={'class': 'module showcase_item'}) selected = tree.find( attrs={'class': 'module showcase_item selected'}) if selected <> None: episodes.insert(0, selected) for episode in episodes: thumb = episode.find('img')['src'].split('?')[0] name = episode.find(attrs={ 'class': 'title' }).find('a').string.encode('utf8') url = episode.find(attrs={'class': 'title'}).find('a')['href'] airDate = episode.find(attrs={ 'class': 'date' }).string.replace('Aired: ', '') airDate = common.formatDate(airDate, '%m/%d/%y') try: description = episode.find(attrs={ 'class': 'description' }).string.encode('utf8') except: description = '' seasonepisode = episode.find(attrs={ 'class': 'number' }).string.replace('Episode ', '') if len(seasonepisode) == 5: season = int(seasonepisode[:2]) episode = int(seasonepisode[-3:]) elif len(seasonepisode) == 4: season = int(seasonepisode[:2]) episode = int(seasonepisode[-2:]) elif len(seasonepisode) == 3: season = int(seasonepisode[:1]) episode = int(seasonepisode[-2:]) else: season = 0 episode = 0 if season <> 0 or episode <> 0: displayname = '%sx%s - %s' % (str(season), str(episode), name) else: displayname = name u = sys.argv[0] u += '?url="' + urllib.quote_plus(url) + '"' u += '&mode="comedy"' u += '&sitemode="playurl"' infoLabels = { "Title": name, "Season": season, "Episode": episode, "Plot": description, "premiered": airDate, #"Duration":duration, "TVShowTitle": common.args.name } common.addVideo(u, displayname, thumb, infoLabels=infoLabels) else: eurl = item['id'] data = common.getURL(eurl) tree = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) episodes = tree.findAll(attrs={'class': 'moreEpisodesContainer'}) selected = tree.find( attrs={'class': 'moreEpisodesContainer-selected'}) if selected <> None: episodes.insert(0, selected) for episode in episodes: thumb = episode.find('img')['src'].split('?')[0] name = episode.find(attrs={ 'class': 'moreEpisodesTitle' }).find('a').string.encode('utf8') url = episode.find(attrs={ 'class': 'moreEpisodesTitle' }).find('a')['href'] airDate = episode.find(attrs={ 'class': 'moreEpisodesAirDate' }).find(attrs={ 'class': 'date' }).string.replace('Aired: ', '') airDate = common.formatDate(airDate, '%m/%d/%y') try: description = episode.find(attrs={ 'class': 'description' }).string.encode('utf8') except: description = '' seasonepisode = episode.find(attrs={ 'class': 'moreEpisodesNumber' }).find(attrs={ 'class': 'id' }).string.replace('Episode ', '') if len(seasonepisode) == 5: season = int(seasonepisode[:2]) episode = int(seasonepisode[-3:]) elif len(seasonepisode) == 4: season = int(seasonepisode[:2]) episode = int(seasonepisode[-2:]) elif len(seasonepisode) == 3: season = int(seasonepisode[:1]) episode = int(seasonepisode[-2:]) else: season = 0 episode = 0 if season <> 0 or episode <> 0: displayname = '%sx%s - %s' % (str(season), str(episode), name) else: displayname = name u = sys.argv[0] u += '?url="' + urllib.quote_plus(url) + '"' u += '&mode="comedy"' u += '&sitemode="playurl"' infoLabels = { "Title": name, "Season": season, "Episode": episode, "Plot": description, "premiered": airDate, #"Duration":duration, "TVShowTitle": common.args.name } common.addVideo(u, displayname, thumb, infoLabels=infoLabels) common.setView('episodes')