Bootstrapper use python date functions instead of sqlite

This commit is contained in:
shortcutme 2017-08-18 14:43:28 +02:00
parent f1c320dd22
commit 9f762a0230
No known key found for this signature in database
GPG Key ID: 5B63BAE6CB9613AE
2 changed files with 12 additions and 5 deletions

View File

@ -20,8 +20,9 @@ class BootstrapperDb(Db):
def cleanup(self):
while 1:
self.execute("DELETE FROM peer WHERE date_announced < DATETIME('now', '-40 minute')")
time.sleep(4*60)
timeout = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time() - 60 * 40))
self.execute("DELETE FROM peer WHERE date_announced < ?", [timeout])
def updateHashCache(self):
res = self.execute("SELECT * FROM hash")
@ -96,14 +97,15 @@ class BootstrapperDb(Db):
res = self.execute("SELECT * FROM peer WHERE ? LIMIT 1", {"ip4": ip4, "port": port})
user_row = res.fetchone()
now = time.strftime("%Y-%m-%d %H:%M:%S")
if user_row:
peer_id = user_row["peer_id"]
self.execute("UPDATE peer SET date_announced = DATETIME('now') WHERE ?", {"peer_id": peer_id})
self.execute("UPDATE peer SET date_announced = ? WHERE peer_id = ?", (now, peer_id))
else:
self.log.debug("New peer: %s %s signed: %s" % (ip4, onion, onion_signed))
if onion and not onion_signed:
return len(hashes)
self.execute("INSERT INTO peer ?", {"ip4": ip4, "onion": onion, "port": port})
self.execute("INSERT INTO peer ?", {"ip4": ip4, "onion": onion, "port": port, "date_announced": now})
peer_id = self.cur.cursor.lastrowid
# Check user's hashes

View File

@ -163,8 +163,13 @@ class SiteStorage(object):
return res
# Open file object
def open(self, inner_path, mode="rb"):
return open(self.getPath(inner_path), mode)
def open(self, inner_path, mode="rb", create_dirs=False):
file_path = self.getPath(inner_path)
if create_dirs:
file_dir = os.path.dirname(file_path)
if not os.path.isdir(file_dir):
os.makedirs(file_dir)
return open(file_path, mode)
# Open file object
def read(self, inner_path, mode="r"):