From 5499be89203a18ca61a21cfc7266cf0f4ebe6547 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Thu, 15 Dec 2011 23:18:21 +0100 Subject: refractoring --- module/PyPackage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py index f3be6c886..162a448a0 100644 --- a/module/PyPackage.py +++ b/module/PyPackage.py @@ -17,7 +17,7 @@ @author: mkaay """ -from module.PullEvents import UpdateEvent +from interaction.PullEvents import UpdateEvent from module.utils import save_path class PyPackage(): -- cgit v1.2.3 From be4f9cfb0c3b67017925a347a48320af73e6d560 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Fri, 23 Dec 2011 13:00:04 +0100 Subject: closed #468 --- module/PyPackage.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py index 162a448a0..b194e3dc8 100644 --- a/module/PyPackage.py +++ b/module/PyPackage.py @@ -18,7 +18,6 @@ """ from interaction.PullEvents import UpdateEvent -from module.utils import save_path class PyPackage(): """ @@ -30,17 +29,13 @@ class PyPackage(): self.id = int(id) self.name = name - self._folder = folder + self.folder = folder self.site = site self.password = password self.queue = queue self.order = order self.setFinished = False - @property - def folder(self): - return save_path(self._folder) - def toDict(self): """ Returns a dictionary representation of the data. -- cgit v1.2.3 From d35c003cc53d4723d1dfe0d81eeb9bea78cee594 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sat, 31 Dec 2011 16:01:24 +0100 Subject: new crypter plugin API, now decrypting possible for now. --- module/PyPackage.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py index b194e3dc8..dce501d93 100644 --- a/module/PyPackage.py +++ b/module/PyPackage.py @@ -71,5 +71,4 @@ class PyPackage(): self.m.deletePackage(self.id) def notifyChange(self): - e = UpdateEvent("pack", self.id, "collector" if not self.queue else "queue") - self.m.core.pullManager.addEvent(e) + self.m.core.eventManager.dispatchEvent("packageUpdated", self.id) -- cgit v1.2.3 From 35742c2cb023ac49ab3056752d2040cdb030cc2b Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 1 Jan 2012 13:36:59 +0100 Subject: Happy new Year ! --- module/PyPackage.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py index dce501d93..d4b468f9c 100644 --- a/module/PyPackage.py +++ b/module/PyPackage.py @@ -69,6 +69,13 @@ class PyPackage(): def delete(self): self.m.deletePackage(self.id) - + + def deleteIfEmpty(self): + """ True if deleted """ + if not len(self.getChildren()): + self.delete() + return True + return False + def notifyChange(self): self.m.core.eventManager.dispatchEvent("packageUpdated", self.id) -- cgit v1.2.3 From 5a3e5a8228e4c5421b44d18c9c9ae2f1fe616400 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 1 Jan 2012 18:01:25 +0100 Subject: fixed imports --- module/PyPackage.py | 2 -- 1 file changed, 2 deletions(-) (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py index d4b468f9c..970982e68 100644 --- a/module/PyPackage.py +++ b/module/PyPackage.py @@ -17,8 +17,6 @@ @author: mkaay """ -from interaction.PullEvents import UpdateEvent - class PyPackage(): """ Represents a package object at runtime -- cgit v1.2.3 From 4df2b77fdf42046fe19bd371be7c7255986b5980 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Tue, 6 Mar 2012 13:36:39 +0100 Subject: renamed hooks to addons, new filemanager and database, many new api methods you will loose ALL your LINKS, webinterface will NOT work --- module/PyPackage.py | 82 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 26 deletions(-) (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py index 970982e68..d0739124f 100644 --- a/module/PyPackage.py +++ b/module/PyPackage.py @@ -14,48 +14,60 @@ along with this program; if not, see . @author: RaNaN - @author: mkaay """ -class PyPackage(): +from time import time + +from module.utils.fs import join + +from Api import PackageInfo, PackageStatus + +class PyPackage: """ Represents a package object at runtime """ - def __init__(self, manager, id, name, folder, site, password, queue, order): + + @staticmethod + def fromInfoData(m, info): + return PyPackage(m, info.pid, info.name, info.folder, info.root, + info.site, info.comment, info.password, info.added, info.status, info.packageorder) + + def __init__(self, manager, pid, name, folder, root, site, comment, password, added, status, packageorder): self.m = manager - self.m.packageCache[int(id)] = self - self.id = int(id) + self.pid = pid self.name = name self.folder = folder + self.root = root self.site = site + self.comment = comment self.password = password - self.queue = queue - self.order = order - self.setFinished = False - - def toDict(self): - """ Returns a dictionary representation of the data. - - :return: dict: {id: { attr: value }} - """ - return { - self.id: { - 'id': self.id, - 'name': self.name, - 'folder': self.folder, - 'site': self.site, - 'password': self.password, - 'queue': self.queue, - 'order': self.order, - 'links': {} - } - } + self.added = added + self.status = status + self.packageorder = packageorder + self.timestamp = time() + + @property + def id(self): + self.m.core.log.debug("Deprecated package attr .id, use .pid instead") + return self.pid + + def isStale(self): + return self.timestamp + 30 * 60 > time() + + def toInfoData(self): + return PackageInfo(self.pid, self.name, self.folder, self.root, self.site, + self.comment, self.password, self.added, self.status, self.packageorder + ) def getChildren(self): """get information about contained links""" return self.m.getPackageData(self.id)["links"] + def getPath(self, name=""): + self.timestamp = time() + return join(self.m.getPackage(self.root).getPath(), self.folder, name) + def sync(self): """sync with db""" self.m.updatePackage(self) @@ -77,3 +89,21 @@ class PyPackage(): def notifyChange(self): self.m.core.eventManager.dispatchEvent("packageUpdated", self.id) + + +class RootPackage(PyPackage): + def __init__(self, m): + PyPackage.__init__(self, m, -1, "root", "", -2, "", "", "", 0, PackageStatus.Ok, 0) + + def getPath(self, name=""): + return join(self.m.core.config["general"]["download_folder"], name) + + # no database operations + def sync(self): + pass + + def delete(self): + pass + + def release(self): + pass \ No newline at end of file -- cgit v1.2.3 From 829244a6140763712d50ed046c33f415f2b04301 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Tue, 15 May 2012 19:22:34 +0200 Subject: some multiuser db changes --- module/PyPackage.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py index d0739124f..1dc2754ef 100644 --- a/module/PyPackage.py +++ b/module/PyPackage.py @@ -1,20 +1,19 @@ #!/usr/bin/env python -""" - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, - or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, see . - - @author: RaNaN -""" +# -*- coding: utf-8 -*- + +############################################################################### +# Copyright(c) 2008-2012 pyLoad Team +# http://www.pyload.org +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# Subjected to the terms and conditions in LICENSE +# +# @author: RaNaN +############################################################################### from time import time @@ -29,16 +28,17 @@ class PyPackage: @staticmethod def fromInfoData(m, info): - return PyPackage(m, info.pid, info.name, info.folder, info.root, + return PyPackage(m, info.pid, info.name, info.folder, info.root, info.owner, info.site, info.comment, info.password, info.added, info.status, info.packageorder) - def __init__(self, manager, pid, name, folder, root, site, comment, password, added, status, packageorder): + def __init__(self, manager, pid, name, folder, root, owner, site, comment, password, added, status, packageorder): self.m = manager self.pid = pid self.name = name self.folder = folder self.root = root + self.ownerid = owner self.site = site self.comment = comment self.password = password @@ -56,7 +56,7 @@ class PyPackage: return self.timestamp + 30 * 60 > time() def toInfoData(self): - return PackageInfo(self.pid, self.name, self.folder, self.root, self.site, + return PackageInfo(self.pid, self.name, self.folder, self.root, self.ownerid, self.site, self.comment, self.password, self.added, self.status, self.packageorder ) @@ -92,8 +92,8 @@ class PyPackage: class RootPackage(PyPackage): - def __init__(self, m): - PyPackage.__init__(self, m, -1, "root", "", -2, "", "", "", 0, PackageStatus.Ok, 0) + def __init__(self, m, owner): + PyPackage.__init__(self, m, -1, "root", "", owner, -2, "", "", "", 0, PackageStatus.Ok, 0) def getPath(self, name=""): return join(self.m.core.config["general"]["download_folder"], name) -- cgit v1.2.3 From 0d2d6daef850ac6bcc7fafccd230e52d2a862c2c Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 3 Jun 2012 17:45:10 +0200 Subject: updates for database + api --- module/PyPackage.py | 109 ---------------------------------------------------- 1 file changed, 109 deletions(-) delete mode 100644 module/PyPackage.py (limited to 'module/PyPackage.py') diff --git a/module/PyPackage.py b/module/PyPackage.py deleted file mode 100644 index 1dc2754ef..000000000 --- a/module/PyPackage.py +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -############################################################################### -# Copyright(c) 2008-2012 pyLoad Team -# http://www.pyload.org -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# Subjected to the terms and conditions in LICENSE -# -# @author: RaNaN -############################################################################### - -from time import time - -from module.utils.fs import join - -from Api import PackageInfo, PackageStatus - -class PyPackage: - """ - Represents a package object at runtime - """ - - @staticmethod - def fromInfoData(m, info): - return PyPackage(m, info.pid, info.name, info.folder, info.root, info.owner, - info.site, info.comment, info.password, info.added, info.status, info.packageorder) - - def __init__(self, manager, pid, name, folder, root, owner, site, comment, password, added, status, packageorder): - self.m = manager - - self.pid = pid - self.name = name - self.folder = folder - self.root = root - self.ownerid = owner - self.site = site - self.comment = comment - self.password = password - self.added = added - self.status = status - self.packageorder = packageorder - self.timestamp = time() - - @property - def id(self): - self.m.core.log.debug("Deprecated package attr .id, use .pid instead") - return self.pid - - def isStale(self): - return self.timestamp + 30 * 60 > time() - - def toInfoData(self): - return PackageInfo(self.pid, self.name, self.folder, self.root, self.ownerid, self.site, - self.comment, self.password, self.added, self.status, self.packageorder - ) - - def getChildren(self): - """get information about contained links""" - return self.m.getPackageData(self.id)["links"] - - def getPath(self, name=""): - self.timestamp = time() - return join(self.m.getPackage(self.root).getPath(), self.folder, name) - - def sync(self): - """sync with db""" - self.m.updatePackage(self) - - def release(self): - """sync and delete from cache""" - self.sync() - self.m.releasePackage(self.id) - - def delete(self): - self.m.deletePackage(self.id) - - def deleteIfEmpty(self): - """ True if deleted """ - if not len(self.getChildren()): - self.delete() - return True - return False - - def notifyChange(self): - self.m.core.eventManager.dispatchEvent("packageUpdated", self.id) - - -class RootPackage(PyPackage): - def __init__(self, m, owner): - PyPackage.__init__(self, m, -1, "root", "", owner, -2, "", "", "", 0, PackageStatus.Ok, 0) - - def getPath(self, name=""): - return join(self.m.core.config["general"]["download_folder"], name) - - # no database operations - def sync(self): - pass - - def delete(self): - pass - - def release(self): - pass \ No newline at end of file -- cgit v1.2.3