"""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)
(value, identifier, key)) else: db.c.execute( "INSERT INTO storage (identifier, key, value) VALUES (?, ?, ?)", (identifier, key, value)) @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, )) d = {} for row in db.c: d[row[0]] = row[1] return d @queue def delStorage(db, identifier, key): db.c.execute("DELETE FROM storage WHERE identifier=? AND key=?", (identifier, key)) DatabaseBackend.registerSub(StorageMethods)
@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') users = [] for row in db.c: users.append(row[0]) return users @style.queue def getAllUserData(db): db.c.execute("SELECT name, permission, role, template, email FROM users") user = {} for r in db.c: user[r[0]] = {"permission": r[1], "role": r[2], "template": r[3], "email": r[4]} return user @style.queue def removeUser(db, user): db.c.execute('DELETE FROM users WHERE name=?', (user,)) DatabaseBackend.registerSub(UserMethods)
# -*- coding: utf-8 -*- from pyload.database import queue, async from pyload.database import DatabaseBackend class AccountMethods: @queue def loadAccounts(db): db.c.execute( 'SELECT plugin, loginname, activated, password, options FROM accounts;' ) return db.c.fetchall() @async def saveAccounts(db, data): # TODO: owner, shared db.c.executemany( 'INSERT INTO accounts(plugin, loginname, activated, password, options) VALUES(?,?,?,?,?)', data) @async def removeAccount(db, plugin, loginname): db.c.execute('DELETE FROM accounts WHERE plugin=? AND loginname=?', (plugin, loginname)) DatabaseBackend.registerSub(AccountMethods)
@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 { 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)
# -*- coding: utf-8 -*- from pyload.database import queue, async from pyload.database import DatabaseBackend class AccountMethods: @queue def loadAccounts(db): db.c.execute("SELECT plugin, loginname, activated, password, options FROM accounts;") return db.c.fetchall() @async def saveAccounts(db, data): # TODO: owner, shared db.c.executemany( "INSERT INTO accounts(plugin, loginname, activated, password, options) VALUES(?,?,?,?,?)", data ) @async def removeAccount(db, plugin, loginname): db.c.execute("DELETE FROM accounts WHERE plugin=? AND loginname=?", (plugin, loginname)) DatabaseBackend.registerSub(AccountMethods)
from pyload.database import DatabaseBackend, queue class StorageMethods(): @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)) @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, )) d = {} for row in db.c: d[row[0]] = row[1] return d @queue def delStorage(db, identifier, key): db.c.execute("DELETE FROM storage WHERE identifier=? AND key=?", (identifier, key)) DatabaseBackend.registerSub(StorageMethods)