Flixter decode json before parsing. closes #2305

This commit is contained in:
Ruud
2013-10-13 22:21:32 +02:00
parent 3535f44db9
commit e9abf982fe
2 changed files with 8 additions and 3 deletions
@@ -39,7 +39,7 @@ class Flixster(Automation):
if not enablers[index]: if not enablers[index]:
continue continue
data = self.getJsonData(self.url % user_id) data = self.getJsonData(self.url % user_id, decode_from = 'iso-8859-1')
for movie in data: for movie in data:
movies.append({'title': movie['movie']['title'], 'year': movie['movie']['year'] }) movies.append({'title': movie['movie']['title'], 'year': movie['movie']['year'] })
+7 -2
View File
@@ -1,5 +1,5 @@
import logging
from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import toUnicode
from couchpotato.core.helpers.variable import tryFloat, mergeDicts, md5, \ from couchpotato.core.helpers.variable import tryFloat, mergeDicts, md5, \
possibleTitles, getTitle possibleTitles, getTitle
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
@@ -8,6 +8,7 @@ from couchpotato.environment import Env
from urlparse import urlparse from urlparse import urlparse
import cookielib import cookielib
import json import json
import logging
import re import re
import time import time
import traceback import traceback
@@ -63,13 +64,17 @@ class Provider(Plugin):
return self.is_available.get(host, False) return self.is_available.get(host, False)
def getJsonData(self, url, **kwargs): def getJsonData(self, url, decode_from = None, **kwargs):
cache_key = '%s%s' % (md5(url), md5('%s' % kwargs.get('params', {}))) cache_key = '%s%s' % (md5(url), md5('%s' % kwargs.get('params', {})))
data = self.getCache(cache_key, url, **kwargs) data = self.getCache(cache_key, url, **kwargs)
if data: if data:
try: try:
data = data.strip()
if decode_from:
data = data.decode(decode_from)
return json.loads(data) return json.loads(data)
except: except:
log.error('Failed to parsing %s: %s', (self.getName(), traceback.format_exc())) log.error('Failed to parsing %s: %s', (self.getName(), traceback.format_exc()))