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

View File

@@ -39,7 +39,7 @@ class Flixster(Automation):
if not enablers[index]:
continue
data = self.getJsonData(self.url % user_id)
data = self.getJsonData(self.url % user_id, decode_from = 'iso-8859-1')
for movie in data:
movies.append({'title': movie['movie']['title'], 'year': movie['movie']['year'] })

View File

@@ -1,5 +1,5 @@
import logging
from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import toUnicode
from couchpotato.core.helpers.variable import tryFloat, mergeDicts, md5, \
possibleTitles, getTitle
from couchpotato.core.logger import CPLog
@@ -8,6 +8,7 @@ from couchpotato.environment import Env
from urlparse import urlparse
import cookielib
import json
import logging
import re
import time
import traceback
@@ -63,13 +64,17 @@ class Provider(Plugin):
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', {})))
data = self.getCache(cache_key, url, **kwargs)
if data:
try:
data = data.strip()
if decode_from:
data = data.decode(decode_from)
return json.loads(data)
except:
log.error('Failed to parsing %s: %s', (self.getName(), traceback.format_exc()))