Skip to content

Instantly share code, notes, and snippets.

@SeavantUUz
Created May 8, 2014 09:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SeavantUUz/86723b2f75483b5d7590 to your computer and use it in GitHub Desktop.
Save SeavantUUz/86723b2f75483b5d7590 to your computer and use it in GitHub Desktop.
A fast but simple implement of no database storage
import marshal,json,os
import threading
class LocalStorage(object):
def __init__(self,filename="datafile.dat"):
self.filename = filename
def init(self):
if os.path.exists(self.filename):
inf = open(self.filename,"rb")
self.data = marshal.load(inf)
inf.close()
else:
self.data = {}
self.save()
def default_callback(string):
return json.loads(string)
def store(self,string,callback = default_callback):
dic = callback(string)
# for domin in dic:
# self.data.setdefault(domin,[]).append(dic[domin])
self.data.setdefault(dic["domin"],[]).append(dic["path"])
def query(self,domin):
return json.dumps(self.data.get(domin,""))
def save(self):
threading.Timer(300,self.save).start()
print "I saved"
self._dumps(self.data,self.filename)
def _dumps(self,data,filename):
ouf = open(filename,'wb')
marshal.dump(data,ouf)
ouf.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment