diff options
Diffstat (limited to 'module')
-rw-r--r-- | module/plugins/CCF.py | 2 | ||||
-rw-r--r-- | module/plugins/LinkList.py | 44 | ||||
-rw-r--r-- | module/plugins/RSDF.py | 40 | ||||
-rw-r--r-- | module/plugins/RapidshareCom.py | 2 | ||||
-rw-r--r-- | module/thread_list.py | 30 |
5 files changed, 87 insertions, 31 deletions
diff --git a/module/plugins/CCF.py b/module/plugins/CCF.py index ba5b1c77d..7b6e3397f 100644 --- a/module/plugins/CCF.py +++ b/module/plugins/CCF.py @@ -17,7 +17,7 @@ class CCF(Plugin): props = {} props['name'] = "CCF" props['type'] = "container" - props['pattern'] = r".*\.ccf" + props['pattern'] = r"(?!http://).*\.ccf" props['version'] = "0.1" props['description'] = """CCF Container Convert Plugin""" props['author_name'] = ("Willnix") diff --git a/module/plugins/LinkList.py b/module/plugins/LinkList.py new file mode 100644 index 000000000..e496f2a57 --- /dev/null +++ b/module/plugins/LinkList.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import re + +from module.Plugin import Plugin + +class LinkList(Plugin): + + def __init__(self, parent): + Plugin.__init__(self, parent) + props = {} + props['name'] = "LinkList" + props['type'] = "container" + props['pattern'] = r"(?!http://).*\.txt" + props['version'] = "0.1" + props['description'] = """Read Link Lists in txt format""" + props['author_name'] = ("Spoob") + props['author_mail'] = ("spoob@pyload.org") + self.props = props + self.parent = parent + self.html = None + self.read_config() + + def file_exists(self): + """ returns True or False + """ + return True + + def proceed(self, linkList, location): + tmpLinks = [] + txt = open(linkList, 'r') + links = txt.readlines() + for link in links: + if link != "\n": + tmpLinks.append(link) + txt.close() + + txt = open(linkList, 'w') + txt.write("") + txt.close() + #may delete read txt file? + + self.links = tmpLinks diff --git a/module/plugins/RSDF.py b/module/plugins/RSDF.py index 50fca9b1f..5ce8fd716 100644 --- a/module/plugins/RSDF.py +++ b/module/plugins/RSDF.py @@ -13,7 +13,7 @@ class RSDF(Plugin): props = {} props['name'] = "RSDF" props['type'] = "container" - props['pattern'] = r".*\.rsdf" + props['pattern'] = r"(?!http://).*\.rsdf" props['version'] = "0.2" props['description'] = """RSDF Container Decode Plugin""" props['author_name'] = ("RaNaN", "spoob") @@ -29,31 +29,27 @@ class RSDF(Plugin): return True def proceed(self, url, location): - try: - from Crypto.Cipher import AES + from Crypto.Cipher import AES - infile = url.replace("\n", "") - Key = binascii.unhexlify('8C35192D964DC3182C6F84F3252239EB4A320D2500000000') + infile = url.replace("\n", "") + Key = binascii.unhexlify('8C35192D964DC3182C6F84F3252239EB4A320D2500000000') - IV = binascii.unhexlify('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF') - IV_Cipher = AES.new(Key, AES.MODE_ECB) - IV = IV_Cipher.encrypt(IV) + IV = binascii.unhexlify('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF') + IV_Cipher = AES.new(Key, AES.MODE_ECB) + IV = IV_Cipher.encrypt(IV) - obj = AES.new(Key, AES.MODE_CFB, IV) + obj = AES.new(Key, AES.MODE_CFB, IV) - rsdf = open(infile, 'r') + rsdf = open(infile, 'r') - data = rsdf.read() - data = binascii.unhexlify(''.join(data.split())) - data = data.splitlines() + data = rsdf.read() + data = binascii.unhexlify(''.join(data.split())) + data = data.splitlines() - for link in data: - link = base64.b64decode(link) - link = obj.decrypt(link) - decryptedUrl = link.replace('CCF: ', '') - self.links.append(decryptedUrl) + for link in data: + link = base64.b64decode(link) + link = obj.decrypt(link) + decryptedUrl = link.replace('CCF: ', '') + self.links.append(decryptedUrl) - rsdf.close() - - except: - print "Kein Crypto installiert, RSDF Plugin kann nicht genutzt werden" + rsdf.close() diff --git a/module/plugins/RapidshareCom.py b/module/plugins/RapidshareCom.py index 29e9a7c1f..7daff3f8f 100644 --- a/module/plugins/RapidshareCom.py +++ b/module/plugins/RapidshareCom.py @@ -27,7 +27,7 @@ class RapidshareCom(Plugin): self.time_plus_wait = None #time() + wait in seconds self.want_reconnect = False self.no_slots = True - self.logger = logging.getLogger("log") + #~ self.logger = logging.getLogger("log") self.read_config() if self.config['premium']: self.multi_dl = True diff --git a/module/thread_list.py b/module/thread_list.py index fc886e4b4..55f237544 100644 --- a/module/thread_list.py +++ b/module/thread_list.py @@ -78,7 +78,10 @@ class Thread_List(object): if not pyfile.plugin.multi_dl: self.occ_plugins.append(pyfile.modul.__name__) pyfile.active = True - self.parent.logger.info('Download starts: ' + pyfile.url) + if pyfile.plugin.props['type'] == "container": + self.parent.logger.info('Get links from: ' + pyfile.url) + else: + self.parent.logger.info('Download starts: ' + pyfile.url) self.lock.release() return pyfile @@ -102,14 +105,27 @@ class Thread_List(object): self.py_downloading.remove(pyfile) if pyfile.status.type == "finished": - self.parent.logger.info('Download finished: ' + pyfile.url + ' @' + str(pyfile.status.get_speed()) + 'kb/s') - if pyfile.plugin.props['type'] == "container": - self.list.packager.removeFileFromPackage(pyfile.id, pyfile.package.id) + #works(!) but adds many packs to queue + newLinks = 0 + newPackager = self.list.packager.addNewPackage(pyfile.status.filename) for link in pyfile.plugin.links: - id = self.list.collector.addLink(link) - pyfile.packager.pullOutPackage(pyfile.package.id) - pyfile.packager.addFileToPackage(pyfile.package.id, pyfile.collector.popFile(id)) + newFile = self.list.collector.addLink(link) + self.list.packager.addFileToPackage(newPackager, self.list.collector.popFile(newFile)) + newLinks += 1 + self.list.packager.pushPackage2Queue(newPackager) + + if newLinks: + self.parent.logger.info("Parsed link from %s: %i" % (pyfile.status.filename, newLinks)) + else: + self.parent.logger.info("No links in %s" % pyfile.status.filename) + #~ self.list.packager.removeFileFromPackage(pyfile.id, pyfile.package.id) + #~ for link in pyfile.plugin.links: + #~ id = self.list.collector.addLink(link) + #~ pyfile.packager.pullOutPackage(pyfile.package.id) + #~ pyfile.packager.addFileToPackage(pyfile.package.id, pyfile.collector.popFile(id)) + else: + self.parent.logger.info("Download finished: %s" % pyfile.url) elif pyfile.status.type == "reconnected": pyfile.plugin.req.init_curl() |