Browse Source

Flixter decode json before parsing. closes #2305

pull/2350/head
Ruud 12 years ago
parent
commit
e9abf982fe
  1. 2
      couchpotato/core/providers/automation/flixster/main.py
  2. 9
      couchpotato/core/providers/base.py

2
couchpotato/core/providers/automation/flixster/main.py

@ -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'] })

9
couchpotato/core/providers/base.py

@ -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()))

Loading…
Cancel
Save