"""return list of max length 3 ids with pyfiles in package not finished or processed""" self.c.execute("SELECT id FROM links WHERE package=? AND status NOT IN (0, 4, 13) LIMIT 3", (str(pid),)) return [r[0] for r in self.c] @style.queue def deleteFinished(self): self.c.execute("DELETE FROM links WHERE status IN (0, 4)") self.c.execute("DELETE FROM packages WHERE NOT EXISTS(SELECT 1 FROM links WHERE packages.id=links.package)") @style.queue def restartFailed(self): self.c.execute("UPDATE links SET status=3, error='' WHERE status IN (6, 8, 9)") @style.queue def findDuplicates(self, id, folder, filename): """ checks if filename exists with different id and same package """ self.c.execute( "SELECT l.plugin FROM links as l INNER JOIN packages as p ON l.package=p.id AND p.folder=? WHERE l.id!=? AND l.status=0 AND l.name=?", (folder, id, filename), ) return self.c.fetchone() @style.queue def purgeLinks(self): self.c.execute("DELETE FROM links;") self.c.execute("DELETE FROM packages;") DatabaseBackend.registerSub(FileMethods)
@style.async def setPermission(db, user, perms): db.c.execute("UPDATE users SET permission=? WHERE name=?", (perms, user)) @style.async def setRole(db, user, role): db.c.execute("UPDATE users SET role=? WHERE name=?", (role, user)) @style.queue def listUsers(db): db.c.execute('SELECT name FROM users') return [row[0] for row in db.c] @style.queue def getAllUserData(db): db.c.execute("SELECT name, permission, role, template, email FROM users") return dict((r[0], {"permission": r[1], "role": r[2], "template": r[3], "email": r[4]}) for r in db.c) @style.queue def removeUser(db, user): db.c.execute('DELETE FROM users WHERE name=?', (user,)) DatabaseBackend.registerSub(UserMethods)
class StorageMethods(object): @style.queue def setStorage(db, identifier, key, value): db.c.execute("SELECT id FROM storage WHERE identifier=? AND key=?", (identifier, key)) if db.c.fetchone() is not None: db.c.execute("UPDATE storage SET value=? WHERE identifier=? AND key=?", (value, identifier, key)) else: db.c.execute("INSERT INTO storage (identifier, key, value) VALUES (?, ?, ?)", (identifier, key, value)) @style.queue def getStorage(db, identifier, key=None): if key is not None: db.c.execute("SELECT value FROM storage WHERE identifier=? AND key=?", (identifier, key)) row = db.c.fetchone() if row is not None: return row[0] else: db.c.execute("SELECT key, value FROM storage WHERE identifier=?", (identifier,)) return dict((row[0], row[1]) for row in db.c) @style.queue def delStorage(db, identifier, key): db.c.execute("DELETE FROM storage WHERE identifier=? AND key=?", (identifier, key)) DatabaseBackend.registerSub(StorageMethods)
def setPermission(db, user, perms): db.c.execute("UPDATE users SET permission=? WHERE name=?", (perms, user)) @style. async def setRole(db, user, role): db.c.execute("UPDATE users SET role=? WHERE name=?", (role, user)) @style.queue def listUsers(db): db.c.execute('SELECT name FROM users') return [row[0] for row in db.c] @style.queue def getAllUserData(db): db.c.execute( "SELECT name, permission, role, template, email FROM users") return dict((r[0], { "permission": r[1], "role": r[2], "template": r[3], "email": r[4] }) for r in db.c) @style.queue def removeUser(db, user): db.c.execute('DELETE FROM users WHERE name=?', (user, )) DatabaseBackend.registerSub(UserMethods)
if db.c.fetchone() is not None: db.c.execute( "UPDATE storage SET value=? WHERE identifier=? AND key=?", (value, identifier, key)) else: db.c.execute( "INSERT INTO storage (identifier, key, value) VALUES (?, ?, ?)", (identifier, key, value)) @style.queue def getStorage(db, identifier, key=None): if key is not None: db.c.execute( "SELECT value FROM storage WHERE identifier=? AND key=?", (identifier, key)) row = db.c.fetchone() if row is not None: return row[0] else: db.c.execute("SELECT key, value FROM storage WHERE identifier=?", (identifier, )) return dict((row[0], row[1]) for row in db.c) @style.queue def delStorage(db, identifier, key): db.c.execute("DELETE FROM storage WHERE identifier=? AND key=?", (identifier, key)) DatabaseBackend.registerSub(StorageMethods)