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

9
couchpotato/core/providers/base.py

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

Loading…
Cancel
Save