def get_list_by_name(zapros): set_key('c97c17e619252e35bad2e158d4211fcc') set_locale('ru', 'ru') set_cache(engine='file', filename='/home/swasher/kinobox/.tmdb3cache') results = searchMovie(zapros) answer=[] i=0 for movie in results[0:10]: mov=kino() #print unicode(results[i]) searchResult = results[i] mov.id=searchResult.id mov.title=searchResult.title mov.year=str(searchResult.releasedate)[0:4] mov.overview=searchResult.overview mov.url='http://www.themoviedb.org/movie/'+str(mov.id) mov.origname=searchResult.originaltitle try: mov.altname=searchResult.alternate_titles[0].title except: mov.altname='' try: mov.poster=searchResult.poster.geturl(size='w154') except: mov.poster='' answer.append(mov) i+=1 return answer
def process_movies(dir): set_key(API_KEY) #store this key somewhere set_locale() dir = expand(dir) movies = list() moviesToDisplay = loadfromfile(dir) if not moviesToDisplay: moviesToDisplay = list() titles = list() for m in moviesToDisplay: titles.append(m.title) explore(dir) for f in fileset: if f.fulltitle in titles: continue result = searchMovie(f.fulltitle) if len(result) == 0: if f.filename not in notfound: notfound.append(f.filename) print "Couldn't find results for: " + f.fulltitle + " result = " + str(result) continue # print "**** Found results for: " + f.fulltitle + " result = " + str(result[0]) movie = result[0] if len(result) > 0 else None movies.append(movie) for m in movies: if not m: continue if m.id in movieids: continue p = m.poster if p: d = DisplayMovie(m, p.geturl('w154'),) else: d = DisplayMovie(m, '',) if m.id in movieids: continue pos = bisect.bisect(movieids, m.id) movieids.insert(pos, m.id) moviesToDisplay.append(d) writetofile(dir, moviesToDisplay) return sorted(moviesToDisplay, key=lambda x: x.movie.title)
def from_tmdb(the_movie, download_poster=True): director = '' if len(the_movie.crew) > 0: directors = [person.name for person in the_movie.crew if person.job == 'Director'] director = ','.join(directors) cast = ';'.join([u'{0}: {1} '.format(person.name, person.character) for person in the_movie.cast]) #runtime in it_IT locale is not set so we get from the en_US #TODO: move to the MovieDb tmdb3.set_locale('en', 'US') runtime = tmdb3.Movie(the_movie.id).runtime tmdb3.set_locale(config.cfg['LANG'], config.cfg['COUNTRY']) year = the_movie.releasedate.year if the_movie.releasedate else 0 imagefile = '' if the_movie.poster: image_url = the_movie.poster.geturl('w185') if download_poster: queue = PosterDownloadQueue() poster_urls = set((the_movie.poster.geturl(size), dir_for_size[size]) for size in dir_for_size.keys()) queue.to_download.update(poster_urls) bname = os.path.basename(image_url) imagefile = bname else: imagefile = image_url return Movie(title=the_movie.title, director=director, cast=cast, overview=the_movie.overview, year=year, runtime=runtime, imagefile=imagefile, tmdbID=the_movie.id)
def tmdb_info(self): from tmdb3 import searchSeries, set_cache, set_key, set_locale, get_locale set_key('587c13e576f991c0a653f783b290a065') set_cache(filename='/tmp/tmdb3.cache') set_locale('en', 'us') _locale = get_locale() try: tmdb_results = searchSeries(self.title, first_air_date_year=self.year, locale=_locale) for _series in tmdb_results: if self.country: if not self.country in _series.origin_countries: continue if self.year: if not self.year == _series.first_air_date.year(): continue if self.title == decode(_series.name): raise GetOutOfLoop(_series) raise SeriesNotFound("Series Not Found in TMDb: {}".format(self.title)) except GetOutOfLoop, e: _series = e.message alias = {'name': 'title', 'id': 'tmdb_id', 'origin_countries': 'country'} for key in dir(_series): if key[:1] == '_': continue if key in alias: key2 = alias[key] else: key2 = key if not hasattr(self, key2): continue setattr(self, key2, decode(getattr(_series, key)))
def init_tmdb3(alternative_lang=None): tmdb3.set_key('1f834eb425728133b9a2c1c0c82980eb') tmdb3.set_cache('null') lng = alternative_lang or config.plugins.tmbd.locale.value try: tmdb3.set_locale(lng, lng.upper()) except: tmdb3.set_locale('en', 'GB') return tmdb3
def __init__(self): addEvent('movie.info', self.getInfo, priority = 1) addEvent('movie.info_by_tmdb', self.getInfo) addEvent('info.search', self.search, priority = 1) addEvent('movie.search', self.search, priority = 1) # Configure TMDB settings tmdb3.set_key(self.conf('api_key')) tmdb3.set_locale(self.conf('locale', None)) tmdb3.set_cache('null')
def tmdb_info(self): from tmdb3 import searchSeries, set_cache, set_key, set_locale, get_locale set_key('587c13e576f991c0a653f783b290a065') set_cache(filename='/tmp/tmdb3.cache') set_locale('en', 'us') _locale = get_locale() try: tmdb_results = searchSeries(self.title, first_air_date_year=self.year, locale=_locale) for _series in tmdb_results: if self.country: if not self.country in _series.origin_countries: continue if self.year: if not self.year == _series.first_air_date.year(): continue if self.title == decode(_series.name): raise GetOutOfLoop(_series) raise SeriesNotFound("Series Not Found in TMDb: {}".format( self.title)) except GetOutOfLoop, e: _series = e.message alias = { 'name': 'title', 'id': 'tmdb_id', 'origin_countries': 'country' } for key in dir(_series): if key[:1] == '_': continue if key in alias: key2 = alias[key] else: key2 = key if not hasattr(self, key2): continue setattr(self, key2, decode(getattr(_series, key)))
from __future__ import unicode_literals from django.conf import settings import tmdb3 tmdb3.set_key(settings.TMDB_API_KEY) tmdb3.set_locale('hu', 'hu')
import tmdb3 from django.conf import settings tmdb3.set_locale() tmdb3.set_key(settings.TMDB_KEY) tmdb_url = 'http://api.themoviedb.org/3/' def list_to_2d(lst, row_length=4): outList = [] i=0 for itm in lst: if i%row_length == 0: clist = [] outList.append(clist) clist.append(itm) i += 1 return outList def find_best_size(sizes, trg): for sz in sizes: if sz[0] == 'w': if int(sz[1:])>=trg: return sz return sizes[-1]
def init_tmdb3(alternative_lang=None): import tmdb3 tmdb3.set_key('1f834eb425728133b9a2c1c0c82980eb') tmdb3.set_cache('null') lng = alternative_lang or config.plugins.tmbd.locale.value if lng == 'en': tmdb3.set_locale(lng, 'US') elif lng == 'el': tmdb3.set_locale(lng, 'GR') elif lng == 'cs': tmdb3.set_locale(lng, 'CZ') elif lng == 'da': tmdb3.set_locale(lng, 'DK') elif lng == 'uk': tmdb3.set_locale('en', 'GB') elif lng == 'fy': tmdb3.set_locale(lng, 'NL') else: try: tmdb3.set_locale(lng, lng.upper()) except: tmdb3 = None return tmdb3
def init_tmdb3(): tmdb3.set_key(config['apikey']) tmdb3.set_cache('null') lng = config['locale'] if lng == 'en': tmdb3.set_locale(lng, 'US') elif lng == 'el': tmdb3.set_locale(lng, 'GR') elif lng == 'cs': tmdb3.set_locale(lng, 'CZ') elif lng == 'da': tmdb3.set_locale(lng, 'DK') elif lng == 'uk': tmdb3.set_locale('en', 'GB') elif lng == 'fy': tmdb3.set_locale(lng, 'NL') else: tmdb3.set_locale(lng, lng.upper()) print('tmdbv3 locale', tmdb3.get_locale()) return tmdb3
from tmdb3 import set_key import json import requests import os API = '259f7fc6b26292afaf6ec1dabe6fdd6a' set_key(API) from tmdb3 import set_cache set_cache('null') set_cache(filename='/full/path/to/cache') # the 'file' engine is assumed set_cache(filename='tmdb3.cache') # relative paths are put in /tmp set_cache(engine='file', filename='~/.tmdb3cache') from tmdb3 import get_locale, set_locale set_locale() print(get_locale()) #locale has bet set to english and United States...yes print print '''import urllib2 #import Request#, urlopen headers = {"Accept": "application/json"} request = urllib2.Request("https://api.themoviedb.org/3/search/movie?api_key="+API+"&query=Foxx") responsebody = urllib2.urlopen(request).read() print responsebody print print''' import tmdb3 search = 'Hanks' a = tmdb3.searchPerson(search)
def add_tmdb_movie(id): set_key('c97c17e619252e35bad2e158d4211fcc') set_locale('ru', 'ru') set_cache(engine='file', filename='/home/swasher/kinobox/.tmdb3cache') m = Movi() try: mov = Movie(id) except: pass #обработать (не нашло фильм, или ппц ваще) sys.exc_info()[0].__dict__ m.title=mov.title m.overview=mov.overview m.origtitle=mov.originaltitle m.tmdb_id=mov.id m.year=str(mov.releasedate)[0:4] m.seen=False m.seendate=datetime.date.today() m.myrating=0 m.stored=True m.adddate=datetime.date.today() m.tagline=mov.tagline m.save() try: poster = urllib.urlretrieve(mov.poster.geturl(size='w92')) m.poster.save('poster_'+'w92_'+str(id)+'.jpg', File(open(poster[0]))) except: #отсутствует постер #print sys.exc_info()[0].__dict__ #{'__module__': 'tmdb3.tmdb_exceptions', '__doc__': None} #print 'cant retrieve' # если не обрабатывать - просто получается пустое поле, его можно обработать дальше poster = urllib.urlretrieve(mov.poster.geturl(size='w92')) m.poster.save('poster_'+'w92_'+str(id)+'.jpg', File(open(poster[0]))) pass try: posterbig = urllib.urlretrieve(mov.poster.geturl(size='w500')) m.posterbig.save('poster_'+'w500_'+str(id)+'.jpg', File(open(posterbig[0]))) except: pass #get counries countries = mov.countries l = '' for country in countries: if country.name=='United States of America': l+='USA'+', ' else: l+=country.name+', ' m.countries=l[:-2] genres = mov.genres genre_list=[] for genre in genres: genre_list.append(genre.name) for genre in genre_list: try: # пытаемся найти жанр по названию gen=Genre.objects.filter(genre=genre)[0] except: # Если не найден, возникает исключение, и мы создаем новый жанр. # Исключение возникает из-за попытки взять нулевой элемент пустого тупла g=Genre(genre=genre) g.save() gen=Genre.objects.filter(genre=genre)[0] m.genres.add(gen) m.save() cast=mov.cast for actor in cast: try: pers=Person.objects.filter(name=actor.name)[0] except: #если актера actor.name нет в базе, то вызывется исключение, актер добавляется, и обзывется как pers p = Person(name=actor.name, tmdb_id=actor.id) p.save() pers=Person.objects.filter(name=actor.name)[0] #если актера до сих пор небыло, то добавляем фото #todo в дальнейшем это убрать - сделать даунлоад фото, когда актер star-рится try: photo = urllib.urlretrieve(actor.profile.geturl(size='w45')) p.photo.save('photo_'+'w45_'+str(actor.id)+'.jpg', File(open(photo[0]))) except: #отсутствует постер #print sys.exc_info()[0].__dict__ #{'__module__': 'tmdb3.tmdb_exceptions', '__doc__': None} #print 'cant retrieve' # если не обрабатывать - просто получается пустое поле, его можно обработать дальше pass # В это месте у нас есть объекты фильма 'm' и актера 'pers' d = Duty(person=pers, movi=m, department='', character=actor.character, job='', order=actor.order) d.save()
# -*- coding: UTF-8 -*- from urllib2 import urlopen, HTTPError from HTMLParser import HTMLParser from traceback import print_exc from xml.dom import minidom from sys import exit import datetime import re import tmdb3 import tvdb_api tmdb3.set_key('50d210cbe126f116d13b83239d0f18d0') tmdb3.set_locale('en', 'US') class rewiredBotPlugin(): """IMDb.com plugin""" def __init__(self, parent, *args): self.parent = parent self.defines = "!imdb" self.privs = {'!imdb': 1} def run(self, params, *args): """!imdb: Usage: !imdb imdbid/Text Searches imdb.com for movies and tv shows. When a search term is given. It will respond with a list of results to choose from. When called with a imdbid instead: !imdb tt0099785 the plugin will look up the movie on imdb and post a overview into chat. ___""" if not params: return "Usage: !imdb SearchText"
from tmdb3 import set_cache from tmdb3 import set_locale from tmdb3 import List # Set personal key to API access set_key('0ba74440350bf374cee4a9b89f7249a8') # Caches data to limit excessive usage against API server set_cache('null') set_cache(filename='/full/path/to/cache') set_cache(filename='tmdb3.cfrom random import randintache') set_cache(engine='file', filename='~/.tmdb3cache') # Set language and country configuration for API data set_locale('en', 'us') now_playing = [] coming_soon = [] modern_classics = [] classics = [] for x in range(0, len(List(35555).members)): media_title = List(35555).members[x].title.replace(' ', '_') media_title = media.Media( List(35555).members[x].title, List(35555).members[x].poster.geturl().replace( 'original', 'w300_and_h450_bestv2'), List(35555).members[x].youtube_trailers[0].geturl(),
def init_tmdb(): """Initialize TMDb api""" tmdb3.set_key(config.cfg['API_KEY']) tmdb3.set_cache(engine='file', filename=config.cfg['CACHEPATH']+'/.tmdb3cache') tmdb3.set_locale(config.cfg['LANG'], config.cfg['COUNTRY'])
def __init__(self, api_key, movie_id): tmbd.set_key(api_key) tmbd.set_cache('null') tmbd.set_locale('en', 'US') self.movie = tmbd.Movie(movie_id)
def init_tmdb(): tmdb3.set_key(settings.TMDB_KEY) tmdb3.set_cache(filename=settings.TMDB_CACHE_PATH) tmdb3.set_locale(*settings.LOCALES[settings.LANGUAGE_CODE]) return tmdb3
#!/usr/bin/env python from config import apiKeys from util import jsonify from tmdb3 import set_key from tmdb3 import set_cache from tmdb3 import set_locale from tmdb3 import searchMovie, searchPerson, searchSeries from tmdb3 import Movie, Person, Collection, Studio, Series, Season, Episode set_key(apiKeys['tmdb']) set_cache('null') set_locale('en', 'gb') @jsonify def getPersonInfo(person): personInfo = {} personInfo['name'] = person.name personInfo['adult'] = person.adult personInfo['biography'] = person.biography personInfo['aliases'] = [] for alias in person.aliases: personInfo['aliases'].append(alias) personInfo['birthplace'] = person.birthplace personInfo['birthdate'] = str(person.dayofbirth)