def trakt_trailer(self, type, name, year, imdb): from resources.lib.modules import trakt #check if this needs .replace(' ', '-') between title spaces id = (name.lower() + '-' + year) if imdb == '0' else imdb if type == 'movie': item = trakt.getMovieSummary(id) else: item = trakt.getTVShowSummary(id) try: trailer_id = item.get('trailer').split('v=') trailer_id = [trailer_id[1]] except: trailer_id = '' return trailer_id
def super_info(self, i): try: if self.list[i]['metacache'] == True: raise Exception() imdb = self.list[i]['imdb'] item = trakt.getMovieSummary(imdb) title = item.get('title') title = client.replaceHTMLCodes(title) originaltitle = title year = item.get('year', 0) year = re.sub('[^0-9]', '', str(year)) imdb = item.get('ids', {}).get('imdb', '0') imdb = 'tt' + re.sub('[^0-9]', '', str(imdb)) tmdb = str(item.get('ids', {}).get('tmdb', 0)) premiered = item.get('released', '0') try: premiered = re.compile('(\d{4}-\d{2}-\d{2})').findall(premiered)[0] except: premiered = '0' genre = item.get('genres', []) genre = [x.title() for x in genre] genre = ' / '.join(genre).strip() if not genre: genre = '0' duration = str(item.get('Runtime', 0)) rating = item.get('rating', '0') if not rating or rating == '0.0': rating = '0' votes = item.get('votes', '0') try: votes = str(format(int(votes), ',d')) except: pass mpaa = item.get('certification', '0') if not mpaa: mpaa = '0' tagline = item.get('tagline', '0') plot = item.get('overview', '0') people = trakt.getPeople(imdb, 'movies') director = writer = '' if 'crew' in people and 'directing' in people['crew']: director = ', '.join([director['person']['name'] for director in people['crew']['directing'] if director['job'].lower() == 'director']) if 'crew' in people and 'writing' in people['crew']: writer = ', '.join([writer['person']['name'] for writer in people['crew']['writing'] if writer['job'].lower() in ['writer', 'screenplay', 'author']]) cast = [] for person in people.get('cast', []): cast.append({'name': person['person']['name'], 'role': person['character']}) cast = [(person['name'], person['role']) for person in cast] try: if self.lang == 'en' or self.lang not in item.get('available_translations', [self.lang]): raise Exception() trans_item = trakt.getMovieTranslation(imdb, self.lang, full=True) title = trans_item.get('title') or title tagline = trans_item.get('tagline') or tagline plot = trans_item.get('overview') or plot except: pass try: artmeta = True #if self.fanart_tv_user == '': raise Exception() art = client.request(self.fanart_tv_art_link % imdb, headers=self.fanart_tv_headers, timeout='10', error=True) try: art = json.loads(art) except: artmeta = False except: pass try: poster2 = art['movieposter'] poster2 = [x for x in poster2 if x.get('lang') == self.lang][::-1] + [x for x in poster2 if x.get('lang') == 'en'][::-1] + [x for x in poster2 if x.get('lang') in ['00', '']][::-1] poster2 = poster2[0]['url'].encode('utf-8') except: poster2 = '0' try: if 'moviebackground' in art: fanart = art['moviebackground'] else: fanart = art['moviethumb'] fanart = [x for x in fanart if x.get('lang') == self.lang][::-1] + [x for x in fanart if x.get('lang') == 'en'][::-1] + [x for x in fanart if x.get('lang') in ['00', '']][::-1] fanart = fanart[0]['url'].encode('utf-8') except: fanart = '0' try: banner = art['moviebanner'] banner = [x for x in banner if x.get('lang') == self.lang][::-1] + [x for x in banner if x.get('lang') == 'en'][::-1] + [x for x in banner if x.get('lang') in ['00', '']][::-1] banner = banner[0]['url'].encode('utf-8') except: banner = '0' try: if 'hdmovielogo' in art: clearlogo = art['hdmovielogo'] else: clearlogo = art['clearlogo'] clearlogo = [x for x in clearlogo if x.get('lang') == self.lang][::-1] + [x for x in clearlogo if x.get('lang') == 'en'][::-1] + [x for x in clearlogo if x.get('lang') in ['00', '']][::-1] clearlogo = clearlogo[0]['url'].encode('utf-8') except: clearlogo = '0' try: if 'hdmovieclearart' in art: clearart = art['hdmovieclearart'] else: clearart = art['clearart'] clearart = [x for x in clearart if x.get('lang') == self.lang][::-1] + [x for x in clearart if x.get('lang') == 'en'][::-1] + [x for x in clearart if x.get('lang') in ['00', '']][::-1] clearart = clearart[0]['url'].encode('utf-8') except: clearart = '0' try: if self.tm_user == '': raise Exception() art2 = client.request(self.tm_art_link % imdb, timeout='10', error=True) art2 = json.loads(art2) except: pass try: poster3 = art2['posters'] poster3 = [x for x in poster3 if x.get('iso_639_1') == self.lang] + [x for x in poster3 if x.get('iso_639_1') == 'en'] + [x for x in poster3 if x.get('iso_639_1') not in [self.lang, 'en']] poster3 = [(x['width'], x['file_path']) for x in poster3] poster3 = [(x[0], x[1]) if x[0] < 300 else ('300', x[1]) for x in poster3] poster3 = self.tm_img_link % poster3[0] poster3 = poster3.encode('utf-8') except: poster3 = '0' try: fanart2 = art2['backdrops'] fanart2 = [x for x in fanart2 if x.get('iso_639_1') == self.lang] + [x for x in fanart2 if x.get('iso_639_1') == 'en'] + [x for x in fanart2 if x.get('iso_639_1') not in [self.lang, 'en']] fanart2 = [x for x in fanart2 if x.get('width') == 1920] + [x for x in fanart2 if x.get('width') < 1920] fanart2 = [(x['width'], x['file_path']) for x in fanart2] fanart2 = [(x[0], x[1]) if x[0] < 1280 else ('1280', x[1]) for x in fanart2] fanart2 = self.tm_img_link % fanart2[0] fanart2 = fanart2.encode('utf-8') except: fanart2 = '0' item = {'title': title, 'originaltitle': originaltitle, 'year': year, 'imdb': imdb, 'tmdb': tmdb, 'poster': '0', 'poster2': poster2, 'poster3': poster3, 'banner': banner, 'fanart': fanart, 'fanart2': fanart2, 'clearlogo': clearlogo, 'clearart': clearart, 'premiered': premiered, 'genre': genre, 'duration': duration, 'rating': rating, 'votes': votes, 'mpaa': mpaa, 'director': director, 'writer': writer, 'cast': cast, 'plot': plot, 'tagline': tagline} item = dict((k,v) for k, v in item.iteritems() if not v == '0') self.list[i].update(item) if artmeta == False: raise Exception() meta = {'imdb': imdb, 'tmdb': tmdb, 'tvdb': '0', 'lang': self.lang, 'user': self.user, 'item': item} self.meta.append(meta) except: pass
def movie_info(self, i): try: if self.list[i]['metacache'] == True: raise Exception() if not self.list[i]['content'] == 'movies': raise Exception() imdb = self.list[i]['imdb'] if imdb == '0': raise Exception() item = trakt.getMovieSummary(imdb) if 'Error' in item and 'incorrect imdb' in item['Error'].lower(): return self.meta.append({'imdb': imdb, 'tmdb': '0', 'tvdb': '0', 'lang': self.lang, 'item': {'code': '0'}}) title = item.get('title') title = client.replaceHTMLCodes(title) originaltitle = title year = item.get('year', 0) year = re.sub('[^0-9]', '', str(year)) imdb = item.get('ids', {}).get('imdb', '0') imdb = 'tt' + re.sub('[^0-9]', '', str(imdb)) tmdb = str(item.get('ids', {}).get('tmdb', 0)) premiered = item.get('released', '0') try: premiered = re.compile('(\d{4}-\d{2}-\d{2})').findall(premiered)[0] except: premiered = '0' genre = item.get('genres', []) genre = [x.title() for x in genre] genre = ' / '.join(genre).strip() if not genre: genre = '0' duration = str(item.get('Runtime', 0)) rating = item.get('rating', '0') if not rating or rating == '0.0': rating = '0' votes = item.get('votes', '0') try: votes = str(format(int(votes), ',d')) except: pass mpaa = item.get('certification', '0') if not mpaa: mpaa = '0' tagline = item.get('tagline', '0') plot = item.get('overview', '0') people = trakt.getPeople(imdb, 'movies') director = writer = '' if 'crew' in people and 'directing' in people['crew']: director = ', '.join([director['person']['name'] for director in people['crew']['directing'] if director['job'].lower() == 'director']) if 'crew' in people and 'writing' in people['crew']: writer = ', '.join([writer['person']['name'] for writer in people['crew']['writing'] if writer['job'].lower() in ['writer', 'screenplay', 'author']]) cast = [] for person in people.get('cast', []): cast.append({'name': person['person']['name'], 'role': person['character']}) cast = [(person['name'], person['role']) for person in cast] self.meta.append({'imdb': imdb, 'tmdb': '0', 'tvdb': '0', 'lang': self.lang, 'item': {'title': title, 'year': year, 'code': imdb, 'imdb': imdb, 'premiered': premiered, 'genre': genre, 'duration': duration, 'rating': rating, 'votes': votes, 'mpaa': mpaa, 'director': director, 'writer': writer, 'cast': cast, 'plot': plot}}) except: pass
def super_info(self, i): try: # if self.list[i]['metacache'] is True: if self.list[i]['metacache']: raise Exception() imdb = self.list[i]['imdb'] item = trakt.getMovieSummary(id=imdb) imdb = item.get('ids', {}).get('imdb', '0') imdb = 'tt' + re.sub('[^0-9]', '', str(imdb)) tmdb = str(item.get('ids', {}).get('tmdb', 0)) premiered = item.get('released', '0') try: premiered = re.compile('(\d{4}-\d{2}-\d{2})').findall(premiered)[0] except: premiered = '0' people = trakt.getPeople(imdb, 'movies') director = writer = '' if 'crew' in people and 'directing' in people['crew']: director = ', '.join([director['person']['name'] for director in people['crew']['directing'] if director['job'].lower() == 'director']) if 'crew' in people and 'writing' in people['crew']: writer = ', '.join([writer['person']['name'] for writer in people['crew']['writing'] if writer['job'].lower() in ['writer', 'screenplay', 'author']]) cast = [] for person in people.get('cast', []): cast.append({'name': person['person']['name'], 'role': person['character']}) cast = [(person['name'], person['role']) for person in cast] try: if self.lang == 'en' or self.lang not in item.get('available_translations', [self.lang]): raise Exception() trans_item = trakt.getMovieTranslation(imdb, self.lang, full = True) title = trans_item.get('title') or title tagline = trans_item.get('tagline') or tagline plot = trans_item.get('overview') or plot except: pass ##--TMDb artwork try: if self.tmdb_key == '': raise Exception() art2 = client.request(self.tmdb_art_link % imdb, timeout='20', error=True) art2 = json.loads(art2) except: pass try: poster3 = art2['posters'] poster3 = [(x['width'], x['file_path']) for x in poster3] poster3 = [x[1] for x in poster3] poster3 = self.tmdb_poster + poster3[0] except: poster3 = '0' try: fanart2 = art2['backdrops'] fanart2 = [(x['width'], x['file_path']) for x in fanart2] fanart2 = [x[1] for x in fanart2] fanart2 = self.tmdb_fanart + fanart2[0] except: fanart2 = '0'
def movie_info(self, i): try: if self.list[i]['metacache'] == True: raise Exception() if not self.list[i]['content'] == 'movies': raise Exception() imdb = self.list[i]['imdb'] if imdb == '0': raise Exception() item = trakt.getMovieSummary(imdb) if 'Error' in item and 'incorrect imdb' in item['Error'].lower(): return self.meta.append({ 'imdb': imdb, 'tmdb': '0', 'tvdb': '0', 'lang': self.lang, 'item': { 'code': '0' } }) title = item.get('title') title = client.replaceHTMLCodes(title) originaltitle = title year = item.get('year', 0) year = re.sub('[^0-9]', '', str(year)) imdb = item.get('ids', {}).get('imdb', '0') imdb = 'tt' + re.sub('[^0-9]', '', str(imdb)) tmdb = str(item.get('ids', {}).get('tmdb', 0)) premiered = item.get('released', '0') try: premiered = re.compile('(\d{4}-\d{2}-\d{2})').findall( premiered)[0] except: premiered = '0' genre = item.get('genres', []) genre = [x.title() for x in genre] genre = ' / '.join(genre).strip() if not genre: genre = '0' duration = str(item.get('Runtime', 0)) rating = item.get('rating', '0') if not rating or rating == '0.0': rating = '0' votes = item.get('votes', '0') try: votes = str(format(int(votes), ',d')) except: pass mpaa = item.get('certification', '0') if not mpaa: mpaa = '0' tagline = item.get('tagline', '0') plot = item.get('overview', '0') people = trakt.getPeople(imdb, 'movies') director = writer = '' if 'crew' in people and 'directing' in people['crew']: director = ', '.join([ director['person']['name'] for director in people['crew']['directing'] if director['job'].lower() == 'director' ]) if 'crew' in people and 'writing' in people['crew']: writer = ', '.join([ writer['person']['name'] for writer in people['crew']['writing'] if writer['job'].lower() in ['writer', 'screenplay', 'author'] ]) cast = [] for person in people.get('cast', []): cast.append({ 'name': person['person']['name'], 'role': person['character'] }) cast = [(person['name'], person['role']) for person in cast] self.meta.append({ 'imdb': imdb, 'tmdb': '0', 'tvdb': '0', 'lang': self.lang, 'item': { 'title': title, 'year': year, 'code': imdb, 'imdb': imdb, 'premiered': premiered, 'genre': genre, 'duration': duration, 'rating': rating, 'votes': votes, 'mpaa': mpaa, 'director': director, 'writer': writer, 'cast': cast, 'plot': plot } }) except: pass