Suggestion api

This commit is contained in:
Ruud
2011-09-19 21:31:46 +02:00
parent bce5a9f8f9
commit ae72271583
@@ -1,6 +1,10 @@
from couchpotato import get_session
from couchpotato.api import addApiView
from couchpotato.core.event import addEvent from couchpotato.core.event import addEvent
from couchpotato.core.helpers.request import jsonified, getParams
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.providers.base import MovieProvider from couchpotato.core.providers.base import MovieProvider
from couchpotato.core.settings.model import Movie
from flask.helpers import json from flask.helpers import json
log = CPLog(__name__) log = CPLog(__name__)
@@ -8,15 +12,16 @@ log = CPLog(__name__)
class CouchPotatoApi(MovieProvider): class CouchPotatoApi(MovieProvider):
apiUrl = 'http://couchpotatoapp.com/api/%s/%s/' apiUrl = 'http://couchpotatoapp.com/api/%s/'
def __init__(self): def __init__(self):
addEvent('provider.movie.release_date', self.releaseDate) addEvent('provider.movie.release_date', self.releaseDate)
addApiView('movie.suggest', self.suggestView)
def releaseDate(self, imdb_id): def releaseDate(self, imdb_id):
data = self.urlopen(self.apiUrl % ('eta', id)) data = self.urlopen((self.apiUrl % ('eta')) + (id + '/'))
try: try:
dates = json.loads(data) dates = json.loads(data)
@@ -24,4 +29,36 @@ class CouchPotatoApi(MovieProvider):
except Exception, e: except Exception, e:
log.error('Error getting ETA for %s: %s' % (imdb_id, e)) log.error('Error getting ETA for %s: %s' % (imdb_id, e))
return dates return dates
def suggest(self, movies = [], ignore = []):
data = self.urlopen((self.apiUrl % ('suggest')) + ','.join(movies) + '/' + ','.join(ignore) + '/')
try:
suggestions = json.loads(data)
log.info('Found Suggestions for %s' % (suggestions))
except Exception, e:
log.error('Error getting suggestions for %s: %s' % (movies, e))
return suggestions
def suggestView(self):
params = getParams()
movies = params.get('movies')
ignore = params.get('ignore', [])
if not movies:
db = get_session()
active_movies = db.query(Movie).filter(Movie.status.has(identifier = 'active')).all()
print active_movies
movies = []
suggestions = self.suggest(movies, ignore)
return jsonified({
'success': True,
'count': len(suggestions),
'suggestions': suggestions
})