def items_list(self, i): try: item = trakt.SearchAll(i[0], i[1], True)[0] content = item.get("movie") if not content: content = item.get("show") item = content 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 self.list.append( { "title": title, "originaltitle": originaltitle, "year": year, "premiered": premiered, "genre": genre, "duration": duration, "rating": rating, "votes": votes, "mpaa": mpaa, "director": director, "writer": writer, "cast": cast, "plot": plot, "tagline": tagline, "imdb": imdb, "tmdb": tmdb, "poster": "0", "channel": i[2], "num": i[3], } ) except: pass
def items_list(self, i): try: item = trakt.SearchAll(i[0], i[1], True)[0] content = item.get('movie') if not content: content = item.get('show') item = content 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 self.list.append({ 'title': title, 'originaltitle': originaltitle, 'year': year, 'premiered': premiered, 'genre': genre, 'duration': duration, 'rating': rating, 'votes': votes, 'mpaa': mpaa, 'director': director, 'writer': writer, 'cast': cast, 'plot': plot, 'tagline': tagline, 'imdb': imdb, 'tmdb': tmdb, 'poster': '0', 'channel': i[2], 'num': i[3] }) except: pass
def items_list(self, i): try: trakt_item = trakt.SearchAll(i[0], i[1], False)[0] content = trakt_item.get('movie') if not content: content = trakt_item.get('show') #log_utils.log('content: ' + repr(content)) _title = content.get('title') _title = client.replaceHTMLCodes(_title) if not _title: _title = i[0] _year = content.get('year', 0) _year = re.sub('[^0-9]', '', str(_year)) if not _year or _year == '0': _year = i[1] imdb = content.get('ids', {}).get('imdb') if imdb: imdb = 'tt' + re.sub('[^0-9]', '', str(imdb)) else: imdb = '0' tmdb = str(content.get('ids', {}).get('tmdb', 0)) id = tmdb if not tmdb == '0' else imdb if id == '0': raise Exception() en_url = self.tmdb_api_link % (id) f_url = en_url + ',translations' url = en_url if self.lang == 'en' else f_url #log_utils.log('tmdb_url: ' + url) r = self.session.get(url, timeout=10) r.raise_for_status() r.encoding = 'utf-8' item = r.json() if six.PY3 else utils.json_loads_as_str(r.text) #log_utils.log('tmdb_item: ' + repr(item)) if imdb == '0': try: imdb = item['external_ids']['imdb_id'] if not imdb: imdb = '0' except: pass original_language = item.get('original_language', '') if self.lang == 'en': en_trans_item = None else: try: translations = item['translations']['translations'] en_trans_item = [x['data'] for x in translations if x['iso_639_1'] == 'en'][0] except: en_trans_item = {} name = item.get('title', '') original_name = item.get('original_title', '') en_trans_name = en_trans_item.get('title', '') if not self.lang == 'en' else None #log_utils.log('self_lang: %s | original_language: %s | _title: %s | name: %s | original_name: %s | en_trans_name: %s' % (self.lang, original_language, _title, name, original_name, en_trans_name)) if self.lang == 'en': title = label = name else: title = en_trans_name or original_name if original_language == self.lang: label = name else: label = en_trans_name or name if not title: title = _title if not label: label = _title plot = item.get('overview', '') or '0' tagline = item.get('tagline', '') or '0' if not self.lang == 'en': if plot == '0': en_plot = en_trans_item.get('overview', '') if en_plot: plot = en_plot if tagline == '0': en_tagline = en_trans_item.get('tagline', '') if en_tagline: tagline = en_tagline premiered = item.get('release_date', '') or '0' try: year = re.findall('(\d{4})', premiered)[0] except: year = '' if not year : year = _year status = item.get('status', '') or '0' try: studio = item['production_companies'][0]['name'] except: studio = '' if not studio: studio = '0' try: genres = item['genres'] genres = [d['name'] for d in genres] genre = ' / '.join(genres) except: genre = '' if not genre: genre = '0' try: countries = item['production_countries'] countries = [c['name'] for c in countries] country = ' / '.join(countries) except: country = '' if not country: country = '0' duration = str(item.get('runtime', 0)) or '0' rating = str(item.get('vote_average', '')) or '0' votes = item.get('vote_count', '') or '0' castwiththumb = [] try: c = item['credits']['cast'][:30] for person in c: _icon = person['profile_path'] icon = self.tm_img_link % ('185', _icon) if _icon else '' castwiththumb.append({'name': person['name'], 'role': person['character'], 'thumbnail': icon}) except: pass if not castwiththumb: castwiththumb = '0' try: crew = item['credits']['crew'] director = ', '.join([d['name'] for d in [x for x in crew if x['job'] == 'Director']]) writer = ', '.join([w['name'] for w in [y for y in crew if y['job'] in ['Writer', 'Screenplay', 'Author', 'Novel']]]) except: director = writer = '0' poster_path = item.get('poster_path') if poster_path: poster1 = self.tm_img_link % ('500', poster_path) else: poster1 = '0' fanart_path = item.get('backdrop_path') if fanart_path: fanart1 = self.tm_img_link % ('1280', fanart_path) else: fanart1 = '0' poster2 = fanart2 = None banner = clearlogo = clearart = landscape = discart = '0' if self.hq_artwork == 'true' and not imdb == '0':# and not self.fanart_tv_user == '': try: #if self.fanart_tv_user == '': raise Exception() r2 = self.session.get(self.fanart_tv_art_link % imdb, headers=self.fanart_tv_headers, timeout=10) r2.raise_for_status() r2.encoding = 'utf-8' art = r2.json() if six.PY3 else utils.json_loads_as_str(r2.text) 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'] if _poster2: poster2 = _poster2 except: pass try: if 'moviebackground' in art: _fanart2 = art['moviebackground'] else: _fanart2 = art['moviethumb'] _fanart2 = [x for x in _fanart2 if x.get('lang') == self.lang][::-1] + [x for x in _fanart2 if x.get('lang') == 'en'][::-1] + [x for x in _fanart2 if x.get('lang') in ['00', '']][::-1] _fanart2 = _fanart2[0]['url'] if _fanart2: fanart2 = _fanart2 except: pass 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'] if _banner: banner = _banner except: pass 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'] if _clearlogo: clearlogo = _clearlogo except: pass 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'] if _clearart: clearart = _clearart except: pass try: if 'moviethumb' in art: _landscape = art['moviethumb'] else: _landscape = art['moviebackground'] _landscape = [x for x in _landscape if x.get('lang') == self.lang][::-1] + [x for x in _landscape if x.get('lang') == 'en'][::-1] + [x for x in _landscape if x.get('lang') in ['00', '']][::-1] _landscape = _landscape[0]['url'] if _landscape: landscape = _landscape except: pass try: if 'moviedisc' in art: _discart = art['moviedisc'] _discart = [x for x in _discart if x.get('lang') == self.lang][::-1] + [x for x in _discart if x.get('lang') == 'en'][::-1] + [x for x in _discart if x.get('lang') in ['00', '']][::-1] _discart = _discart[0]['url'] if _discart: discart = _discart except: pass except: #log_utils.log('fanart.tv art fail', 1) pass poster = poster2 or poster1 fanart = fanart2 or fanart1 #log_utils.log('title: ' + title + ' - poster: ' + repr(poster)) self.list.append({'title': title, 'originaltitle': title, 'label': label, 'year': year, 'imdb': imdb, 'tmdb': tmdb, 'poster': poster, 'banner': banner, 'fanart': fanart, 'clearlogo': clearlogo, 'clearart': clearart, 'landscape': landscape, 'discart': discart, 'premiered': premiered, 'genre': genre, 'duration': duration, 'director': director, 'writer': writer, 'castwiththumb': castwiththumb, 'plot': plot, 'tagline': tagline, 'status': status, 'studio': studio, 'country': country, 'rating': rating, 'votes': votes, 'channel': i[2], 'mpaa': i[3]}) except: pass