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