Trakt watchlist automation

This commit is contained in:
Ruud
2012-01-25 16:48:02 +01:00
parent a3361daef6
commit 30b7eca945
2 changed files with 33 additions and 3 deletions
@@ -10,13 +10,21 @@ config = [{
'tab': 'automation',
'name': 'trakt_automation',
'label': 'Trakt',
'description': 'Enable automatic movie adding from Trakt',
'description': 'from watchlist',
'options': [
{
'name': 'automation_enabled',
'default': False,
'type': 'enabler',
},
{
'name': 'automation_api_key',
'label': 'Apikey',
},
{
'name': 'automation_username',
'label': 'Username',
},
],
},
],
@@ -1,14 +1,36 @@
from couchpotato.core.helpers.variable import md5
from couchpotato.core.logger import CPLog
from couchpotato.core.providers.automation.base import Automation
import json
log = CPLog(__name__)
class Trakt(Automation):
def getMovies(self):
urls = {
'base': 'http://api.trakt.tv/',
'watchlist': 'user/watchlist/movies.json/%s/',
}
def getIMDBids(self):
if self.isDisabled():
return
return []
movies = []
for movie in self.getWatchlist():
movies.append(movie.get('imdb_id'))
return movies
def getWatchlist(self):
method = (self.urls['watchlist'] % self.conf('automation_api_key')) + self.conf('automation_username')
return self.call(method)
def call(self, method_url):
cache_key = 'trakt.%s' % md5(method_url)
json_string = self.getCache(cache_key, self.urls['base'] + method_url)
return json.loads(json_string)