From 681deb7ff09956be0bee04453e33ac6e9d6dab4a Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 8 Jun 2015 05:56:10 +0200 Subject: Move base plugins to internal folder --- module/plugins/internal/Container.py | 75 ++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 module/plugins/internal/Container.py (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py new file mode 100644 index 000000000..c233d3710 --- /dev/null +++ b/module/plugins/internal/Container.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- + +""" + 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: mkaay +""" + +from module.plugins.Crypter import Crypter + +from os.path import join, exists, basename +from os import remove +import re + +class Container(Crypter): + __name__ = "Container" + __version__ = "0.1" + __pattern__ = None + __type__ = "container" + __description__ = """Base container plugin""" + __author_name__ = ("mkaay") + __author_mail__ = ("mkaay@mkaay.de") + + + def preprocessing(self, thread): + """prepare""" + + self.setup() + self.thread = thread + + self.loadToDisk() + + self.decrypt(self.pyfile) + self.deleteTmp() + + self.createPackages() + + + def loadToDisk(self): + """loads container to disk if its stored remotely and overwrite url, + or check existent on several places at disk""" + + if self.pyfile.url.startswith("http"): + self.pyfile.name = re.findall("([^\/=]+)", self.pyfile.url)[-1] + content = self.load(self.pyfile.url) + self.pyfile.url = join(self.config["general"]["download_folder"], self.pyfile.name) + f = open(self.pyfile.url, "wb" ) + f.write(content) + f.close() + + else: + self.pyfile.name = basename(self.pyfile.url) + if not exists(self.pyfile.url): + if exists(join(pypath, self.pyfile.url)): + self.pyfile.url = join(pypath, self.pyfile.url) + else: + self.fail(_("File not exists.")) + + + def deleteTmp(self): + if self.pyfile.name.startswith("tmp_"): + remove(self.pyfile.url) + + -- cgit v1.2.3 From 0e1ef9bc01579328e17e79416fa3c1c7b77adcc8 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 8 Jun 2015 06:08:01 +0200 Subject: Update everything --- module/plugins/internal/Container.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index c233d3710..43ca95e77 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -13,11 +13,11 @@ You should have received a copy of the GNU General Public License along with this program; if not, see . - + @author: mkaay """ -from module.plugins.Crypter import Crypter +from module.plugins.internal.Crypter import Crypter from os.path import join, exists, basename from os import remove @@ -25,7 +25,7 @@ import re class Container(Crypter): __name__ = "Container" - __version__ = "0.1" + __version__ = "0.02" __pattern__ = None __type__ = "container" __description__ = """Base container plugin""" @@ -38,19 +38,19 @@ class Container(Crypter): self.setup() self.thread = thread - + self.loadToDisk() self.decrypt(self.pyfile) self.deleteTmp() - + self.createPackages() - + def loadToDisk(self): - """loads container to disk if its stored remotely and overwrite url, + """loads container to disk if its stored remotely and overwrite url, or check existent on several places at disk""" - + if self.pyfile.url.startswith("http"): self.pyfile.name = re.findall("([^\/=]+)", self.pyfile.url)[-1] content = self.load(self.pyfile.url) @@ -58,7 +58,7 @@ class Container(Crypter): f = open(self.pyfile.url, "wb" ) f.write(content) f.close() - + else: self.pyfile.name = basename(self.pyfile.url) if not exists(self.pyfile.url): @@ -66,10 +66,10 @@ class Container(Crypter): self.pyfile.url = join(pypath, self.pyfile.url) else: self.fail(_("File not exists.")) - + def deleteTmp(self): if self.pyfile.name.startswith("tmp_"): remove(self.pyfile.url) - + -- cgit v1.2.3 From da62d00a301076bda1f645f31cc461a7b0f4c674 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 14 Jun 2015 19:56:43 +0200 Subject: Update Container --- module/plugins/internal/Container.py | 77 ++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 44 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index 43ca95e77..fa3508ae4 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -1,75 +1,64 @@ # -*- coding: utf-8 -*- -""" - 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. +from __future__ import with_statement - 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: mkaay -""" +import os +import re from module.plugins.internal.Crypter import Crypter +from pyload.utils import save_join -from os.path import join, exists, basename -from os import remove -import re class Container(Crypter): - __name__ = "Container" - __version__ = "0.02" - __pattern__ = None - __type__ = "container" - __description__ = """Base container plugin""" - __author_name__ = ("mkaay") - __author_mail__ = ("mkaay@mkaay.de") + __name__ = "Container" + __type__ = "container" + __version__ = "0.03" + + __pattern__ = r'^unmatchable$' + __config__ = [] #: [("name", "type", "desc", "default")] + + __description__ = """Base container decrypter plugin""" + __license__ = "GPLv3" + __authors__ = [("mkaay", "mkaay@mkaay.de")] def preprocessing(self, thread): - """prepare""" + """Prepare""" self.setup() self.thread = thread - self.loadToDisk() + self._load2disk() self.decrypt(self.pyfile) - self.deleteTmp() + self.delete_tmp() - self.createPackages() + self._create_packages() - def loadToDisk(self): - """loads container to disk if its stored remotely and overwrite url, + def _load2disk(self): + """Loads container to disk if its stored remotely and overwrite url, or check existent on several places at disk""" if self.pyfile.url.startswith("http"): self.pyfile.name = re.findall("([^\/=]+)", self.pyfile.url)[-1] content = self.load(self.pyfile.url) - self.pyfile.url = join(self.config["general"]["download_folder"], self.pyfile.name) - f = open(self.pyfile.url, "wb" ) - f.write(content) - f.close() + self.pyfile.url = save_join(self.core.config.get("general", "download_folder"), self.pyfile.name) + try: + with open(self.pyfile.url, "wb") as f: + f.write(content) + except IOError, e: + self.fail(str(e)) else: - self.pyfile.name = basename(self.pyfile.url) - if not exists(self.pyfile.url): - if exists(join(pypath, self.pyfile.url)): - self.pyfile.url = join(pypath, self.pyfile.url) + self.pyfile.name = os.path.basename(self.pyfile.url) + if not os.path.exists(self.pyfile.url): + if os.path.exists(save_join(pypath, self.pyfile.url)): + self.pyfile.url = save_join(pypath, self.pyfile.url) else: - self.fail(_("File not exists.")) + self.fail(_("File not exists")) - def deleteTmp(self): + def delete_tmp(self): if self.pyfile.name.startswith("tmp_"): - remove(self.pyfile.url) - - + os.remove(self.pyfile.url) -- cgit v1.2.3 From 40092f35f8bf79a88e435acb056cf0129f1b5711 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 15 Jun 2015 18:30:32 +0200 Subject: Fix http://forum.pyload.org/viewtopic.php?f=12&t=4332 --- module/plugins/internal/Container.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index fa3508ae4..3b3eb88aa 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -6,13 +6,13 @@ import os import re from module.plugins.internal.Crypter import Crypter -from pyload.utils import save_join +from module.utils import save_join class Container(Crypter): __name__ = "Container" __type__ = "container" - __version__ = "0.03" + __version__ = "0.04" __pattern__ = r'^unmatchable$' __config__ = [] #: [("name", "type", "desc", "default")] -- cgit v1.2.3 From 5a139055ae658d3a05cbb658cbd66aeae0d01db5 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 15 Jun 2015 21:06:10 +0200 Subject: Spare code cosmetics --- module/plugins/internal/Container.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index 3b3eb88aa..097b04ac7 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -6,7 +6,7 @@ import os import re from module.plugins.internal.Crypter import Crypter -from module.utils import save_join +from module.utils import save_join as fs_join class Container(Crypter): @@ -43,7 +43,7 @@ class Container(Crypter): if self.pyfile.url.startswith("http"): self.pyfile.name = re.findall("([^\/=]+)", self.pyfile.url)[-1] content = self.load(self.pyfile.url) - self.pyfile.url = save_join(self.core.config.get("general", "download_folder"), self.pyfile.name) + self.pyfile.url = fs_join(self.core.config.get("general", "download_folder"), self.pyfile.name) try: with open(self.pyfile.url, "wb") as f: f.write(content) @@ -53,8 +53,8 @@ class Container(Crypter): else: self.pyfile.name = os.path.basename(self.pyfile.url) if not os.path.exists(self.pyfile.url): - if os.path.exists(save_join(pypath, self.pyfile.url)): - self.pyfile.url = save_join(pypath, self.pyfile.url) + if os.path.exists(fs_join(pypath, self.pyfile.url)): + self.pyfile.url = fs_join(pypath, self.pyfile.url) else: self.fail(_("File not exists")) -- cgit v1.2.3 From 164512b6a74c94a731fcee7435dce1ccfa2f71e7 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Wed, 17 Jun 2015 18:29:50 +0200 Subject: Spare code cosmetics --- module/plugins/internal/Container.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index 097b04ac7..fc1a93606 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -23,8 +23,9 @@ class Container(Crypter): def preprocessing(self, thread): - """Prepare""" - + """ + Prepare + """ self.setup() self.thread = thread @@ -37,9 +38,10 @@ class Container(Crypter): def _load2disk(self): - """Loads container to disk if its stored remotely and overwrite url, - or check existent on several places at disk""" - + """ + Loads container to disk if its stored remotely and overwrite url, + or check existent on several places at disk + """ if self.pyfile.url.startswith("http"): self.pyfile.name = re.findall("([^\/=]+)", self.pyfile.url)[-1] content = self.load(self.pyfile.url) -- cgit v1.2.3 From b1759bc440cd6013837697eb8de540914f693ffd Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Tue, 7 Jul 2015 01:23:55 +0200 Subject: No camelCase style anymore --- module/plugins/internal/Container.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index fc1a93606..91b5a6f76 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -12,7 +12,7 @@ from module.utils import save_join as fs_join class Container(Crypter): __name__ = "Container" __type__ = "container" - __version__ = "0.04" + __version__ = "0.05" __pattern__ = r'^unmatchable$' __config__ = [] #: [("name", "type", "desc", "default")] -- cgit v1.2.3 From 56389e28ba5d2f5658278bc7f486d73be747f135 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 19 Jul 2015 11:44:49 +0200 Subject: Rename self.core to self.pyload (plugins only) --- module/plugins/internal/Container.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index 91b5a6f76..2c092f98a 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -45,7 +45,7 @@ class Container(Crypter): if self.pyfile.url.startswith("http"): self.pyfile.name = re.findall("([^\/=]+)", self.pyfile.url)[-1] content = self.load(self.pyfile.url) - self.pyfile.url = fs_join(self.core.config.get("general", "download_folder"), self.pyfile.name) + self.pyfile.url = fs_join(self.pyload.config.get("general", "download_folder"), self.pyfile.name) try: with open(self.pyfile.url, "wb") as f: f.write(content) -- cgit v1.2.3 From d38e830b7c0b3c6561a0072c74bbccb5fcdf4a61 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sun, 19 Jul 2015 14:43:42 +0200 Subject: New __status__ magic key --- module/plugins/internal/Container.py | 1 + 1 file changed, 1 insertion(+) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index 2c092f98a..8dfa1031d 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -13,6 +13,7 @@ class Container(Crypter): __name__ = "Container" __type__ = "container" __version__ = "0.05" + __status__ = "stable" __pattern__ = r'^unmatchable$' __config__ = [] #: [("name", "type", "desc", "default")] -- cgit v1.2.3 From f7df6ef48a7c0a8ab6351e046cd12160257c4ef5 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Fri, 24 Jul 2015 02:15:31 +0200 Subject: Hotfixes --- module/plugins/internal/Container.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index 8dfa1031d..ce9426b0d 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -4,6 +4,7 @@ from __future__ import with_statement import os import re +import traceback from module.plugins.internal.Crypter import Crypter from module.utils import save_join as fs_join @@ -63,5 +64,12 @@ class Container(Crypter): def delete_tmp(self): - if self.pyfile.name.startswith("tmp_"): + if not self.pyfile.name.startswith("tmp_"): + return + + try: os.remove(self.pyfile.url) + except OSError, e: + self.log_warning(_("Error removing: %s") % self.pyfile.url, e) + if self.pyload.debug: + traceback.print_exc() -- cgit v1.2.3 From 94d017cd2a5c1f194960827a8c7e46afc3682008 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Fri, 24 Jul 2015 06:55:49 +0200 Subject: Hotfixes (2) --- module/plugins/internal/Container.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index ce9426b0d..cc732247e 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -14,7 +14,7 @@ class Container(Crypter): __name__ = "Container" __type__ = "container" __version__ = "0.05" - __status__ = "stable" + __status__ = "testing" __pattern__ = r'^unmatchable$' __config__ = [] #: [("name", "type", "desc", "default")] @@ -39,6 +39,11 @@ class Container(Crypter): self._create_packages() + #: Deprecated method, use `_load2disk` instead + def loadToDisk(self, *args, **kwargs): + return self._load2disk(*args, **kwargs) + + def _load2disk(self): """ Loads container to disk if its stored remotely and overwrite url, @@ -63,6 +68,11 @@ class Container(Crypter): self.fail(_("File not exists")) + #: Deprecated method, use `delete_tmp` instead + def deleteTmp(self, *args, **kwargs): + return self.delete_tmp(*args, **kwargs) + + def delete_tmp(self): if not self.pyfile.name.startswith("tmp_"): return -- cgit v1.2.3 From 8f17f875f6e28f73ddb10da59c6464bd04922222 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sat, 25 Jul 2015 04:59:27 +0200 Subject: Account rewritten --- module/plugins/internal/Container.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index cc732247e..c0135fb1f 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -39,7 +39,7 @@ class Container(Crypter): self._create_packages() - #: Deprecated method, use `_load2disk` instead + #: Deprecated method, use `_load2disk` instead (Remove in 0.4.10) def loadToDisk(self, *args, **kwargs): return self._load2disk(*args, **kwargs) @@ -68,7 +68,7 @@ class Container(Crypter): self.fail(_("File not exists")) - #: Deprecated method, use `delete_tmp` instead + #: Deprecated method, use `delete_tmp` instead (Remove in 0.4.10) def deleteTmp(self, *args, **kwargs): return self.delete_tmp(*args, **kwargs) -- cgit v1.2.3 From a95c217627a1cb651b24e69f20640df40797aff9 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Sat, 25 Jul 2015 09:34:18 +0200 Subject: Account rewritten (2) --- module/plugins/internal/Container.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index c0135fb1f..c7a6828c7 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -56,8 +56,9 @@ class Container(Crypter): try: with open(self.pyfile.url, "wb") as f: f.write(content) + except IOError, e: - self.fail(str(e)) + self.fail(str(e)) #@TODO: Remove `str` in 0.4.10 else: self.pyfile.name = os.path.basename(self.pyfile.url) -- cgit v1.2.3 From f83389333ec10376452aa5f6d5ccd3963c6bafa1 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 27 Jul 2015 10:28:30 +0200 Subject: Update internal plugins --- module/plugins/internal/Container.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index c7a6828c7..ec2d429dd 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -13,7 +13,7 @@ from module.utils import save_join as fs_join class Container(Crypter): __name__ = "Container" __type__ = "container" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __pattern__ = r'^unmatchable$' @@ -24,18 +24,22 @@ class Container(Crypter): __authors__ = [("mkaay", "mkaay@mkaay.de")] - def preprocessing(self, thread): + def process(self, pyfile): """ - Prepare + Main method """ - self.setup() - self.thread = thread - self._load2disk() - self.decrypt(self.pyfile) + self.decrypt(pyfile) + self.delete_tmp() + if self.urls: + self._generate_packages() + + elif not self.packages: + self.error(_("No link grabbed"), "decrypt") + self._create_packages() -- cgit v1.2.3 From 34f48259060656077b5cb45edd8f9d92bb0282de Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 27 Jul 2015 20:19:03 +0200 Subject: Bunch of fixups --- module/plugins/internal/Container.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'module/plugins/internal/Container.py') diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index ec2d429dd..729592a0d 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -7,6 +7,7 @@ import re import traceback from module.plugins.internal.Crypter import Crypter +from module.plugins.internal.Plugin import exists from module.utils import save_join as fs_join @@ -66,8 +67,8 @@ class Container(Crypter): else: self.pyfile.name = os.path.basename(self.pyfile.url) - if not os.path.exists(self.pyfile.url): - if os.path.exists(fs_join(pypath, self.pyfile.url)): + if not exists(self.pyfile.url): + if exists(fs_join(pypath, self.pyfile.url)): self.pyfile.url = fs_join(pypath, self.pyfile.url) else: self.fail(_("File not exists")) -- cgit v1.2.3