summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Core.py6
-rw-r--r--Plugins/Dummy.py71
-rw-r--r--Plugins/RSLayerCom.py62
-rw-r--r--Plugins/ZshareNet.py81
4 files changed, 217 insertions, 3 deletions
diff --git a/Core.py b/Core.py
index c34d48acd..dd5947e27 100644
--- a/Core.py
+++ b/Core.py
@@ -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