mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-11 21:53:37 +00:00
05410e2aa0
Replaced urllib2 with requests for both TVDB and TVRage. Updated cache cleanup code to process both TVDB and TVRage cache folders.
46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
from __future__ import division
|
|
|
|
from datetime import datetime
|
|
|
|
try:
|
|
from cPickle import loads, dumps
|
|
except ImportError: # Python 3.x
|
|
from pickle import loads, dumps
|
|
|
|
|
|
def total_seconds(td):
|
|
"""Python 2.6 compatability"""
|
|
if hasattr(td, 'total_seconds'):
|
|
return td.total_seconds()
|
|
|
|
ms = td.microseconds
|
|
secs = (td.seconds + td.days * 24 * 3600)
|
|
return (ms + secs * 10**6) / 10**6
|
|
|
|
|
|
class RedisCache(object):
|
|
|
|
def __init__(self, conn):
|
|
self.conn = conn
|
|
|
|
def get(self, key):
|
|
val = self.conn.get(key)
|
|
if val:
|
|
return loads(val)
|
|
return None
|
|
|
|
def set(self, key, value, expires=None):
|
|
if not expires:
|
|
self.conn.set(key, dumps(value))
|
|
else:
|
|
expires = expires - datetime.now()
|
|
self.conn.setex(key, total_seconds(expires), value)
|
|
|
|
def delete(self, key):
|
|
self.conn.delete(key)
|
|
|
|
def clear(self):
|
|
"""Helper for clearing all the keys in a database. Use with
|
|
caution!"""
|
|
for key in self.conn.keys():
|
|
self.conn.delete(key)
|