Use own cache

This commit is contained in:
Ruud
2013-09-03 12:14:02 +02:00
parent 779c7d2942
commit 08f44197f3
@@ -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