Browse Source

OMDB changed api. closes #7214

pull/7215/merge
Ruud 8 years ago
parent
commit
30a529659c
  1. 44
      couchpotato/core/media/movie/providers/info/omdbapi.py

44
couchpotato/core/media/movie/providers/info/omdbapi.py

@ -18,8 +18,8 @@ autoload = 'OMDBAPI'
class OMDBAPI(MovieProvider): class OMDBAPI(MovieProvider):
urls = { urls = {
'search': 'http://www.omdbapi.com/?type=movie&%s', 'search': 'https://www.omdbapi.com/?apikey=%s&type=movie&%s',
'info': 'http://www.omdbapi.com/?type=movie&i=%s', 'info': 'https://www.omdbapi.com/?apikiey=%s&type=movie&i=%s',
} }
http_time_between_calls = 0 http_time_between_calls = 0
@ -30,6 +30,8 @@ class OMDBAPI(MovieProvider):
addEvent('movie.info', self.getInfo) addEvent('movie.info', self.getInfo)
def search(self, q, limit = 12): def search(self, q, limit = 12):
if self.isDisabled():
return []
name_year = fireEvent('scanner.name_year', q, single = True) name_year = fireEvent('scanner.name_year', q, single = True)
@ -39,7 +41,7 @@ class OMDBAPI(MovieProvider):
} }
cache_key = 'omdbapi.cache.%s' % q cache_key = 'omdbapi.cache.%s' % q
url = self.urls['search'] % tryUrlencode({'t': name_year.get('name'), 'y': name_year.get('year', '')}) url = self.urls['search'] % (self.getApiKey(), tryUrlencode({'t': name_year.get('name'), 'y': name_year.get('year', '')}))
cached = self.getCache(cache_key, url, timeout = 3, headers = {'User-Agent': Env.getIdentifier()}) cached = self.getCache(cache_key, url, timeout = 3, headers = {'User-Agent': Env.getIdentifier()})
if cached: if cached:
@ -53,8 +55,7 @@ class OMDBAPI(MovieProvider):
return [] return []
def getInfo(self, identifier = None, **kwargs): def getInfo(self, identifier = None, **kwargs):
if self.isDisabled() or not identifier:
if not identifier:
return {} return {}
cache_key = 'omdbapi.cache.%s' % identifier cache_key = 'omdbapi.cache.%s' % identifier
@ -89,7 +90,7 @@ class OMDBAPI(MovieProvider):
tmp_movie = movie.copy() tmp_movie = movie.copy()
for key in tmp_movie: for key in tmp_movie:
tmp_movie_elem = tmp_movie.get(key) tmp_movie_elem = tmp_movie.get(key)
if not isinstance(tmp_movie_elem, str) or tmp_movie_elem.lower() == 'n/a': if not isinstance(tmp_movie_elem, (str, unicode)) or tmp_movie_elem.lower() == 'n/a':
del movie[key] del movie[key]
year = tryInt(movie.get('Year', '')) year = tryInt(movie.get('Year', ''))
@ -123,6 +124,16 @@ class OMDBAPI(MovieProvider):
return movie_data return movie_data
def isDisabled(self):
if self.getApiKey() == '':
log.error('No API key provided.')
return True
return False
def getApiKey(self):
apikey = self.conf('api_key')
return apikey
def runtimeToMinutes(self, runtime_str): def runtimeToMinutes(self, runtime_str):
runtime = 0 runtime = 0
@ -133,3 +144,24 @@ class OMDBAPI(MovieProvider):
runtime += tryInt(nr) * (60 if 'h' is str(size)[0] else 1) runtime += tryInt(nr) * (60 if 'h' is str(size)[0] else 1)
return runtime return runtime
config = [{
'name': 'omdbapi',
'groups': [
{
'tab': 'providers',
'name': 'tmdb',
'label': 'OMDB API',
'hidden': True,
'description': 'Used for all calls to TheMovieDB.',
'options': [
{
'name': 'api_key',
'default': 'bbc0e412', # Don't be a dick and use this somewhere else
'label': 'Api Key',
},
],
},
],
}]

Loading…
Cancel
Save