mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-01 00:43:37 +00:00
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
|
'''
|
||
|
Created on Aug 26, 2013
|
||
|
|
||
|
Wrappers around tvtumbler access.
|
||
|
|
||
|
@author: dermot@buckley.ie
|
||
|
'''
|
||
|
import time
|
||
|
|
||
|
from sickbeard import helpers
|
||
|
from sickbeard import logger
|
||
|
|
||
|
try:
|
||
|
import json
|
||
|
except ImportError:
|
||
|
from lib import simplejson as json
|
||
|
|
||
|
UPDATE_INTERVAL = 432000 # 5 days
|
||
|
SHOW_LOOKUP_URL = 'http://show-api.tvtumbler.com/api/show'
|
||
|
_tvtumber_cache = {}
|
||
|
|
||
|
|
||
|
def show_info(indexer_id):
|
||
|
try:
|
||
|
cachedResult = _tvtumber_cache[str(indexer_id)]
|
||
|
if time.time() < (cachedResult['mtime'] + UPDATE_INTERVAL):
|
||
|
# cached result is still considered current, use it
|
||
|
return cachedResult['response']
|
||
|
# otherwise we just fall through to lookup
|
||
|
except KeyError:
|
||
|
pass # no cached value, just fall through to lookup
|
||
|
|
||
|
url = SHOW_LOOKUP_URL + '?indexer_id=' + str(indexer_id)
|
||
|
data = helpers.getURL(url, timeout=60) # give this a longer timeout b/c it may take a while
|
||
|
result = json.loads(data)
|
||
|
if not result:
|
||
|
logger.log(u"Empty lookup result -> failed to find show id", logger.DEBUG)
|
||
|
return None
|
||
|
if result['error']:
|
||
|
logger.log(u"Lookup failed: " + result['errorMessage'], logger.DEBUG)
|
||
|
return None
|
||
|
|
||
|
# result is good, store it for later
|
||
|
_tvtumber_cache[str(indexer_id)] = {'mtime': time.time(),
|
||
|
'response': result['show']}
|
||
|
|
||
|
return result['show']
|