Browse Source

Trakt.tv add password for protected api. fix #147

tags/build/2.0.0.pre1
Ruud 13 years ago
parent
commit
eb0669f15c
  1. 3
      couchpotato/core/helpers/variable.py
  2. 6
      couchpotato/core/providers/automation/trakt/__init__.py
  3. 21
      couchpotato/core/providers/automation/trakt/main.py

3
couchpotato/core/helpers/variable.py

@ -59,6 +59,9 @@ def flattenList(l):
def md5(text): def md5(text):
return hashlib.md5(text).hexdigest() return hashlib.md5(text).hexdigest()
def sha1(text):
return hashlib.sha1(text).hexdigest()
def getExt(filename): def getExt(filename):
return os.path.splitext(filename)[1][1:] return os.path.splitext(filename)[1][1:]

6
couchpotato/core/providers/automation/trakt/__init__.py

@ -25,6 +25,12 @@ config = [{
'name': 'automation_username', 'name': 'automation_username',
'label': 'Username', 'label': 'Username',
}, },
{
'name': 'automation_password',
'label': 'Password',
'type': 'password',
'description': 'When you have "Protect my data" checked <a href="http://trakt.tv/settings/account">on trakt</a>.',
},
], ],
}, },
], ],

21
couchpotato/core/providers/automation/trakt/main.py

@ -1,6 +1,8 @@
from couchpotato.core.helpers.variable import md5 from couchpotato.core.event import addEvent
from couchpotato.core.helpers.variable import md5, sha1
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.providers.automation.base import Automation from couchpotato.core.providers.automation.base import Automation
import base64
import json import json
log = CPLog(__name__) log = CPLog(__name__)
@ -13,6 +15,14 @@ class Trakt(Automation):
'watchlist': 'user/watchlist/movies.json/%s/', 'watchlist': 'user/watchlist/movies.json/%s/',
} }
def __init__(self):
super(Trakt, self).__init__()
addEvent('setting.save.trakt.automation_password', self.sha1Password)
def sha1Password(self, value):
return sha1(value) if value else ''
def getIMDBids(self): def getIMDBids(self):
if self.isDisabled(): if self.isDisabled():
@ -31,6 +41,13 @@ class Trakt(Automation):
def call(self, method_url): def call(self, method_url):
if self.conf('automation_password'):
headers = {
'Authorization': "Basic %s" % base64.encodestring('%s:%s' % (self.conf('automation_username'), self.conf('automation_password')))[:-1]
}
else:
headers = {}
cache_key = 'trakt.%s' % md5(method_url) cache_key = 'trakt.%s' % md5(method_url)
json_string = self.getCache(cache_key, self.urls['base'] + method_url) json_string = self.getCache(cache_key, self.urls['base'] + method_url, headers = headers)
return json.loads(json_string) return json.loads(json_string)

Loading…
Cancel
Save