diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2012-12-21 17:09:01 +0100 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2012-12-21 17:09:01 +0100 |
commit | c22d2aadb41b6014516b31c978634c4979d9a43c (patch) | |
tree | e0d1284ef0e591316f083abfccf9404fd95557b3 /module/database | |
parent | removed pie charts (diff) | |
download | pyload-c22d2aadb41b6014516b31c978634c4979d9a43c.tar.xz |
added tags attribute to packages
Diffstat (limited to 'module/database')
-rw-r--r-- | module/database/FileDatabase.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/module/database/FileDatabase.py b/module/database/FileDatabase.py index f3992465c..b303b9b0f 100644 --- a/module/database/FileDatabase.py +++ b/module/database/FileDatabase.py @@ -30,6 +30,12 @@ class FileMethods(DatabaseMethods): return self.c.fetchone()[0] @queue + def downloadcount(self, user=None): + """ number of downloads """ + self.c.execute("SELECT COUNT(*) FROM files WHERE dlstatus != 0") + return self.c.fetchone()[0] + + @queue def queuecount(self, user=None): """ number of files in queue not finished yet""" # status not in NA, finished, skipped @@ -156,12 +162,14 @@ class FileMethods(DatabaseMethods): return data @queue - def getAllPackages(self, root=None, owner=None): + def getAllPackages(self, root=None, owner=None, tags=None): """ Return dict with package information :param root: optional root to filter + :param owner: optional user id + :param tags: optional tag list """ - qry = ('SELECT pid, name, folder, root, owner, site, comment, password, added, status, packageorder ' + qry = ('SELECT pid, name, folder, root, owner, site, comment, password, added, tags, status, packageorder ' 'FROM packages%s ORDER BY root, packageorder') if root is None: @@ -180,9 +188,8 @@ class FileMethods(DatabaseMethods): data = OrderedDict() for r in self.c: data[r[0]] = PackageInfo( - r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], None, r[9], r[10], stats.get(r[0], zero_stats) + r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9].split(","), r[10], r[11], stats.get(r[0], zero_stats) ) - # TODO: tags return data @@ -242,7 +249,7 @@ class FileMethods(DatabaseMethods): if stats: stats = self.getPackageStats(pid=pid) - self.c.execute('SELECT pid, name, folder, root, owner, site, comment, password, added, status, packageorder ' + self.c.execute('SELECT pid, name, folder, root, owner, site, comment, password, added, tags, status, packageorder ' 'FROM packages WHERE pid=?', (pid,)) r = self.c.fetchone() @@ -250,7 +257,7 @@ class FileMethods(DatabaseMethods): return None else: return PackageInfo( - r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], None, r[9], r[10], stats.get(r[0], zero_stats) if stats else None + r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9].split(","), r[10], r[11], stats.get(r[0], zero_stats) if stats else None ) @async @@ -272,8 +279,8 @@ class FileMethods(DatabaseMethods): @async def updatePackage(self, p): - self.c.execute('UPDATE packages SET name=?, folder=?, site=?, comment=?, password=?, status=? WHERE pid=?', - (p.name, p.folder, p.site, p.comment, p.password, p.status, p.pid)) + self.c.execute('UPDATE packages SET name=?, folder=?, site=?, comment=?, password=?, tags=?, status=? WHERE pid=?', + (p.name, p.folder, p.site, p.comment, p.password, ",".join(p.tags), p.status, p.pid)) # TODO: most modifying methods needs owner argument to avoid checking beforehand @async |