Save sites.json every 10 minute

This commit is contained in:
HelloZeroNet 2016-04-20 23:28:58 +02:00
parent 55d76c8c5c
commit cd52a61c4c

View file

@ -4,15 +4,18 @@ import re
import os
import time
import gevent
from Plugin import PluginManager
from Config import config
from util import helper
@PluginManager.acceptPlugins
class SiteManager(object):
def __init__(self):
self.sites = None
gevent.spawn(self.saveTimer)
# Load all sites from data/sites.json
def load(self):
@ -39,6 +42,21 @@ class SiteManager(object):
if added:
logging.debug("SiteManager added %s sites" % added)
def save(self):
if not self.sites:
logging.error("Save error: No sites found")
s = time.time()
data = json.load(open("%s/sites.json" % config.data_dir))
for address, site in self.list().iteritems():
data[address] = site.settings
helper.atomicWrite("%s/sites.json" % config.data_dir, json.dumps(data, indent=2, sort_keys=True))
logging.debug("Saved sites in %.2fs" % (time.time() - s))
def saveTimer(self):
while 1:
time.sleep(60 * 10)
self.save()
# Checks if its a valid address
def isAddress(self, address):
return re.match("^[A-Za-z0-9]{26,35}$", address)