diff options
-rw-r--r-- | Core.py | 6 | ||||
-rw-r--r-- | Plugins/Dummy.py | 71 | ||||
-rw-r--r-- | Plugins/RSLayerCom.py | 62 | ||||
-rw-r--r-- | Plugins/ZshareNet.py | 81 |
4 files changed, 217 insertions, 3 deletions
@@ -57,6 +57,9 @@ class Core(object): translation.install(unicode=True) self.check_create(self.config['log_folder'], _("folder for logs")) + self.check_create(self.config['download_folder'], _("folder for downloads")) + self.check_create(self.config['link_file'], _("file for links"), False) + self.init_logger(logging.DEBUG) # logging level self.check_update() @@ -65,9 +68,6 @@ class Core(object): self.thread_list = Thread_List(self) - self.check_create(self.config['download_folder'], _("folder for downloads")) - self.check_create(self.config['link_file'], _("file for links"), False) - path.append(self.config['plugin_folder']) self.create_plugin_index() diff --git a/Plugins/Dummy.py b/Plugins/Dummy.py new file mode 100644 index 000000000..dedb336ae --- /dev/null +++ b/Plugins/Dummy.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python + +import re +from Plugin import Plugin + +class XupIn(Plugin): + + def __init__(self, parent): + Plugin.__init__(self, parent) + props = {} + props['name'] = "Dummy" + props['type'] = "hoster" + props['pattern'] = r"http://(?:www.)?dummy.com/" + props['version'] = "0.1" + props['description'] = """Dummy Download Plugin""" + props['author_name'] = ("spoob") + props['author_mail'] = ("spoob@pyload.org") + self.plugin_config = props + self.parent = parent + self.html = None + self.html_old = None #time() where loaded the HTML + self.time_plus_wait = None #time() + wait in seconds + self.posts = {} + self.want_reconnect = None + self.multi_dl = False + + def set_parent_status(self): + """ sets all available Statusinfos about a File in self.parent.status + """ + if self.html == None: + self.download_html() + self.parent.status.filename = self.get_file_name() + self.parent.status.url = self.get_file_url() + self.parent.status.wait = self.wait_until() + + def download_html(self): + url = self.parent.url + self.html = self.req.load(url) + + def get_file_url(self): + """ returns the absolute downloadable filepath + """ + if self.html == None: + self.download_html() + if not self.want_reconnect: + return file_url + else: + return False + + def get_file_name(self): + if self.html == None: + self.download_html() + if not self.want_reconnect: + return file_name + else: + return self.parent.url + + def file_exists(self): + """ returns True or False + """ + if self.html == None: + self.download_html() + if re.search(r"File nicht da", self.html, re.I) != None: + return False + else: + return True + + def wait_until(self): + if self.html == None: + self.download_html() + return self.time_plus_wait diff --git a/Plugins/RSLayerCom.py b/Plugins/RSLayerCom.py new file mode 100644 index 000000000..e6691fe3e --- /dev/null +++ b/Plugins/RSLayerCom.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python + +import re +from Plugin import Plugin +import module.unescape + +class XupIn(Plugin): + + def __init__(self, parent): + Plugin.__init__(self, parent) + props = {} + props['name'] = "RSLayerCom" + props['type'] = "container" + props['pattern'] = r"http://(www\.)?rs-layer.com/" + props['version'] = "0.1" + props['description'] = """RSLayer.com Decrypt Plugin""" + props['author_name'] = ("spoob") + props['author_mail'] = ("spoob@pyload.org") + self.plugin_config = props + self.parent = parent + self.html = None + self.html_old = None #time() where loaded the HTML + self.time_plus_wait = None #time() + wait in seconds + self.posts = {} + self.want_reconnect = None + self.multi_dl = False + + def set_parent_status(self): + """ sets all available Statusinfos about a File in self.parent.status + """ + if self.html == None: + self.download_html() + self.parent.status.filename = self.get_file_name() + self.parent.status.url = self.get_file_url() + self.parent.status.wait = self.wait_until() + + def download_html(self): + url = self.parent.url + self.html = self.req.load(url) + + def file_exists(self): + """ returns True or False + """ + if self.html == None: + self.download_html() + if re.search(r"File nicht da", self.html, re.I) != None: + return False + else: + return True + + def proceed(): + while re.search(r".*onclick=\"getFile\(\'([0-9]{6}-.{8})\'\);changeBackgroundColor.*", content, re.I) != None: + found = re.search(r".*onclick=\"getFile\(\'([0-9]{6}-.{8})\'\);changeBackgroundColor.*", content, re.I).group(1) + content = content.replace('getFile(\'' + found + '\');changeBackgroundColor', '') + decryptedUrl = unescape(re.search(r".*<iframe src=\"(.*)\" marginhei.*", urllib2.urlopen("http://rs-layer.com/link-"+ found + ".html").read(), re.I).group(1)) + + self.links.append(decryptedUrl) + + def wait_until(self): + if self.html == None: + self.download_html() + return self.time_plus_wait diff --git a/Plugins/ZshareNet.py b/Plugins/ZshareNet.py new file mode 100644 index 000000000..7acc71608 --- /dev/null +++ b/Plugins/ZshareNet.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python + +import re +from Plugin import Plugin + +class ZshareNet(Plugin): + + def __init__(self, parent): + Plugin.__init__(self, parent) + props = {} + props['name'] = "ZshareNet" + props['type'] = "hoster" + props['pattern'] = r"http://(?:www.)?zshare.net/" + props['version'] = "0.1" + props['description'] = """Zshare.net Download Plugin""" + props['author_name'] = ("spoob") + props['author_mail'] = ("spoob@pyload.org") + self.plugin_config = props + self.parent = parent + self.html = [None, None] + self.html_old = None #time() where loaded the HTML + self.time_plus_wait = None #time() + wait in seconds + self.posts = {} + self.want_reconnect = None + self.multi_dl = False + + def set_parent_status(self): + """ sets all available Statusinfos about a File in self.parent.status + """ + if self.html[0] == None: + self.download_html() + self.parent.status.filename = self.get_file_name() + self.parent.status.url = self.get_file_url() + self.parent.status.wait = self.wait_until() + + def download_html(self): + url = self.parent.url + self.html[0] = self.req.load(url) + if "/video/" in url: + url = url.replace("/video/", "/download/") + elif "/audio/" in url: + url = url.replace("/audio/", "/download/") + elif "/image/" in url: + url = url.replace("/image/", "/download/") + self.html[1] = self.req.load(url, None, {"download": "1"}) + + def get_file_url(self): + """ returns the absolute downloadable filepath + """ + if self.html[0] == None: + self.download_html() + if not self.want_reconnect: + file_url = "".join(eval(re.search("var link_enc=new Array(.*);link", self.html[1]).group(1))) + return file_url + else: + return False + + def get_file_name(self): + if self.html[0] == None: + self.download_html() + if not self.want_reconnect: + file_name = re.search("<font color=\"#666666\">(.*)</font></td>", self.html[0]).group(1) + print file_name + return file_name + else: + return self.parent.url + + def file_exists(self): + """ returns True or False + """ + if self.html[0] == None: + self.download_html() + if re.search(r"File Not Found", self.html[0]) != None: + return False + else: + return True + + def wait_until(self): + if self.html[0] == None: + self.download_html() + return self.time_plus_wait |