Generic cache
I have created a generic cache to hold information outside of the library. This could include album art or an artist bio.
This commit is contained in:
parent
03ed1489dc
commit
5c842def01
|
@ -13,10 +13,13 @@ if __dev__ == True:
|
||||||
import event
|
import event
|
||||||
import path
|
import path
|
||||||
from map import Map
|
from map import Map
|
||||||
|
from cache import Cache
|
||||||
|
|
||||||
# Variables are not saved across sessions, but preferences are
|
# Variables are not saved across sessions, but preferences are
|
||||||
|
# The cache is also saved across sessions
|
||||||
vars = None
|
vars = None
|
||||||
prefs = None
|
prefs = None
|
||||||
|
cache = Cache()
|
||||||
|
|
||||||
plugin = None
|
plugin = None
|
||||||
music = None
|
music = None
|
||||||
|
|
35
libsaria/cache.py
Normal file
35
libsaria/cache.py
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# Bryan Schumaker (10/23/2010)
|
||||||
|
import libsaria
|
||||||
|
|
||||||
|
path = libsaria.path
|
||||||
|
expand = path.expand
|
||||||
|
mkdir = path.mkdir
|
||||||
|
exists = path.exists
|
||||||
|
join = path.join
|
||||||
|
ls = path.ls
|
||||||
|
|
||||||
|
CACHE_DIR = expand("~/.saria/cache")
|
||||||
|
mkdir(CACHE_DIR)
|
||||||
|
|
||||||
|
class CacheObject:
|
||||||
|
def __init__(self, path):
|
||||||
|
self.path = path
|
||||||
|
|
||||||
|
def get(self, key, func, *args):
|
||||||
|
path = join(self.path, key)
|
||||||
|
if not exists(path):
|
||||||
|
f = open(path, 'w')
|
||||||
|
if func(f, *args):
|
||||||
|
return path
|
||||||
|
else:
|
||||||
|
return path
|
||||||
|
|
||||||
|
class Cache:
|
||||||
|
def keys(self):
|
||||||
|
return ls(CACHE_DIR)
|
||||||
|
|
||||||
|
def __getitem__(self, key):
|
||||||
|
p = join(CACHE_DIR, key)
|
||||||
|
if not exists(p):
|
||||||
|
mkdir(p)
|
||||||
|
return CacheObject(p)
|
|
@ -7,7 +7,7 @@ is_dir = os.path.isdir
|
||||||
expand = os.path.expanduser
|
expand = os.path.expanduser
|
||||||
splitext = os.path.splitext
|
splitext = os.path.splitext
|
||||||
join = os.path.join
|
join = os.path.join
|
||||||
mkdir = os.mkdir
|
makedir = os.mkdir
|
||||||
rm = os.remove
|
rm = os.remove
|
||||||
ls = os.listdir
|
ls = os.listdir
|
||||||
walk = os.walk
|
walk = os.walk
|
||||||
|
@ -58,3 +58,8 @@ def cp_once(src, dest):
|
||||||
cp = shutil.copy
|
cp = shutil.copy
|
||||||
cp(src, dest)
|
cp(src, dest)
|
||||||
cp = cp_once
|
cp = cp_once
|
||||||
|
|
||||||
|
|
||||||
|
def mkdir(path):
|
||||||
|
if not exists(path):
|
||||||
|
makedir(path)
|
||||||
|
|
9
tests/cache.py
Normal file
9
tests/cache.py
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Bryan Schumaker (10/23/2010)
|
||||||
|
|
||||||
|
import libsaria
|
||||||
|
|
||||||
|
cache = libsaria.cache
|
||||||
|
|
||||||
|
obj = cache["test"]
|
||||||
|
#obj = cache["Train"]
|
||||||
|
#print obj["Save Me, San Francisco.jpg"]
|
Loading…
Reference in New Issue
Block a user