Use own cache
This commit is contained in:
@@ -3,8 +3,6 @@ from couchpotato.core.helpers.encoding import simplifyString, toUnicode, ss
|
|||||||
from couchpotato.core.helpers.variable import md5
|
from couchpotato.core.helpers.variable import md5
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.core.providers.info.base import MovieProvider
|
from couchpotato.core.providers.info.base import MovieProvider
|
||||||
from couchpotato.environment import Env
|
|
||||||
import os
|
|
||||||
import tmdb3
|
import tmdb3
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
@@ -20,7 +18,7 @@ class TheMovieDb(MovieProvider):
|
|||||||
|
|
||||||
# Configure TMDB settings
|
# Configure TMDB settings
|
||||||
tmdb3.set_key(self.conf('api_key'))
|
tmdb3.set_key(self.conf('api_key'))
|
||||||
tmdb3.set_cache(engine='file', filename=os.path.join(Env.get('cache_dir'), 'python', 'tmdb.cache'))
|
tmdb3.set_cache('null')
|
||||||
|
|
||||||
def search(self, q, limit = 12):
|
def search(self, q, limit = 12):
|
||||||
""" Find movie by name """
|
""" Find movie by name """
|
||||||
@@ -76,7 +74,7 @@ class TheMovieDb(MovieProvider):
|
|||||||
log.debug('Getting info: %s', cache_key)
|
log.debug('Getting info: %s', cache_key)
|
||||||
movie = tmdb3.Movie(identifier)
|
movie = tmdb3.Movie(identifier)
|
||||||
result = self.parseMovie(movie)
|
result = self.parseMovie(movie)
|
||||||
self.setCache(cache_key, result)
|
self.setCache(md5(ss(cache_key)), result)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -84,52 +82,60 @@ class TheMovieDb(MovieProvider):
|
|||||||
|
|
||||||
def parseMovie(self, movie, with_titles = True):
|
def parseMovie(self, movie, with_titles = True):
|
||||||
|
|
||||||
# Images
|
cache_key = 'tmdb.cache.%s' % movie.id
|
||||||
poster = self.getImage(movie, type = 'poster', size = 'poster')
|
movie_data = self.getCache(cache_key)
|
||||||
poster_original = self.getImage(movie, type = 'poster', size = 'original')
|
|
||||||
backdrop_original = self.getImage(movie, type = 'backdrop', size = 'original')
|
|
||||||
|
|
||||||
# Genres
|
if not movie_data:
|
||||||
try:
|
|
||||||
genres = [genre.name for genre in movie.genres]
|
|
||||||
except:
|
|
||||||
genres = []
|
|
||||||
|
|
||||||
# 1900 is the same as None
|
# Images
|
||||||
year = str(movie.releasedate or '')[:4]
|
poster = self.getImage(movie, type = 'poster', size = 'poster')
|
||||||
if not movie.releasedate or year == '1900' or year.lower() == 'none':
|
poster_original = self.getImage(movie, type = 'poster', size = 'original')
|
||||||
year = None
|
backdrop_original = self.getImage(movie, type = 'backdrop', size = 'original')
|
||||||
|
|
||||||
movie_data = {
|
# Genres
|
||||||
'via_tmdb': True,
|
try:
|
||||||
'tmdb_id': movie.id,
|
genres = [genre.name for genre in movie.genres]
|
||||||
'titles': [toUnicode(movie.title)],
|
except:
|
||||||
'original_title': movie.originaltitle,
|
genres = []
|
||||||
'images': {
|
|
||||||
'poster': [poster] if poster else [],
|
|
||||||
#'backdrop': [backdrop] if backdrop else [],
|
|
||||||
'poster_original': [poster_original] if poster_original else [],
|
|
||||||
'backdrop_original': [backdrop_original] if backdrop_original else [],
|
|
||||||
},
|
|
||||||
'imdb': movie.imdb,
|
|
||||||
'runtime': movie.runtime,
|
|
||||||
'released': str(movie.releasedate),
|
|
||||||
'year': year,
|
|
||||||
'plot': movie.overview,
|
|
||||||
'genres': genres,
|
|
||||||
}
|
|
||||||
|
|
||||||
movie_data = dict((k, v) for k, v in movie_data.iteritems() if v)
|
# 1900 is the same as None
|
||||||
|
year = str(movie.releasedate or '')[:4]
|
||||||
|
if not movie.releasedate or year == '1900' or year.lower() == 'none':
|
||||||
|
year = None
|
||||||
|
|
||||||
# Add alternative names
|
movie_data = {
|
||||||
if with_titles:
|
'via_tmdb': True,
|
||||||
movie_data['titles'].append(movie.originaltitle)
|
'tmdb_id': movie.id,
|
||||||
for alt in movie.alternate_titles:
|
'titles': [toUnicode(movie.title)],
|
||||||
alt_name = alt.title
|
'original_title': movie.originaltitle,
|
||||||
if alt_name and not alt_name in movie_data['titles'] and alt_name.lower() != 'none' and alt_name is not None:
|
'images': {
|
||||||
movie_data['titles'].append(alt_name)
|
'poster': [poster] if poster else [],
|
||||||
|
#'backdrop': [backdrop] if backdrop else [],
|
||||||
|
'poster_original': [poster_original] if poster_original else [],
|
||||||
|
'backdrop_original': [backdrop_original] if backdrop_original else [],
|
||||||
|
},
|
||||||
|
'imdb': movie.imdb,
|
||||||
|
'runtime': movie.runtime,
|
||||||
|
'released': str(movie.releasedate),
|
||||||
|
'year': year,
|
||||||
|
'plot': movie.overview,
|
||||||
|
'genres': genres,
|
||||||
|
}
|
||||||
|
|
||||||
movie_data['titles'] = list(set(movie_data['titles']))
|
movie_data = dict((k, v) for k, v in movie_data.iteritems() if v)
|
||||||
|
|
||||||
|
# Add alternative names
|
||||||
|
if with_titles:
|
||||||
|
movie_data['titles'].append(movie.originaltitle)
|
||||||
|
for alt in movie.alternate_titles:
|
||||||
|
alt_name = alt.title
|
||||||
|
if alt_name and not alt_name in movie_data['titles'] and alt_name.lower() != 'none' and alt_name is not None:
|
||||||
|
movie_data['titles'].append(alt_name)
|
||||||
|
|
||||||
|
movie_data['titles'] = list(set(movie_data['titles']))
|
||||||
|
|
||||||
|
# Cache movie parsed
|
||||||
|
self.setCache(md5(ss(cache_key)), movie_data)
|
||||||
|
|
||||||
return movie_data
|
return movie_data
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user