summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/Vipleech4uCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/Vipleech4uCom.py')
-rw-r--r--module/plugins/hoster/Vipleech4uCom.py84
1 files changed, 84 insertions, 0 deletions
diff --git a/module/plugins/hoster/Vipleech4uCom.py b/module/plugins/hoster/Vipleech4uCom.py
new file mode 100644
index 000000000..53768a430
--- /dev/null
+++ b/module/plugins/hoster/Vipleech4uCom.py
@@ -0,0 +1,84 @@
+# -*- coding: utf-8 -*-
+
+import re
+
+from module.plugins.Hoster import Hoster
+
+
+class Vipleech4uCom(Hoster):
+ __name__ = "Vipleech4uCom"
+ __version__ = "0.1"
+ __type__ = "hoster"
+ __pattern__ = r"http://vipleech4u.com/manager.php"
+ __description__ = """Vipleech4u.com hoster plugin"""
+ __author_name__ = ("Kagenoshin")
+ __author_mail__ = ("kagenoshin@gmx.ch")
+
+ FILENAME_PATTERN = re.compile(r'name\s*?=\s*?["\']filename["\'][^>]*?value\s*?=\s*?["\'](.*?)["\']', re.I)
+ HOST_PATTERN = re.compile(r'name\s*?=\s*?["\']host["\'][^>]*?value\s*?=\s*?["\'](.*?)["\']', re.I)
+ PATH_PATTERN = re.compile(r'name\s*?=\s*?["\']path["\'][^>]*?value\s*?=\s*?["\'](.*?)["\']', re.I)
+ REFERER_PATTERN = re.compile(r'name\s*?=\s*?["\']referer["\'][^>]*?value\s*?=\s*?["\'](.*?)["\']', re.I)
+ LINK_PATTERN = re.compile(r'name\s*?=\s*?["\']link["\'][^>]*?value\s*?=\s*?["\'](.*?)["\']', re.I)
+ COOKIE_PATTERN = re.compile(r'name\s*?=\s*?["\']cookie["\'][^>]*?value\s*?=\s*?["\'](.*?)["\']', re.I)
+
+ def setup(self):
+ self.resumeDownload = self.multiDL = True
+ self.chunkLimit = 1
+
+ def process(self, pyfile):
+ if not self.account:
+ self.logError(_("Please enter your %s account or deactivate this plugin") % "vipleech4u.com")
+ self.fail("No vipleech4u.com account provided")
+
+ self.logDebug("Old URL: %s" % pyfile.url)
+
+ new_url = pyfile.url
+
+ if re.match(self.__pattern__, new_url):
+ self.fail("Can't handle vipleech4u links.")
+
+ #upload the link which has to be loaded
+ page = self.load('http://vipleech4u.com/generator.php', post={'links': new_url, 'ddl': 'no'})
+
+ #switch to the manager and see what's happening
+ page = self.load('http://vipleech4u.com/unrestrict.php', get={'link': new_url, 'premium_acc': 'on'})
+
+ if re.search(r'You have generated maximum links available to you today', page, re.I):
+ self.fail('Daily limit reached.')
+
+ filename = self.FILENAME_PATTERN.search(page)
+ host = self.HOST_PATTERN.search(page)
+ path = self.PATH_PATTERN.search(page)
+ referer = self.REFERER_PATTERN.search(page)
+ link = self.LINK_PATTERN.search(page)
+ cookie = self.COOKIE_PATTERN.search(page)
+
+ #build the post-dictionary
+ post_dict = {}
+
+ if filename:
+ post_dict.update({'filename': filename.group(1)})
+ if host:
+ post_dict.update({'host': host.group(1)})
+ if path:
+ post_dict.update({'path': path.group(1)})
+ if referer:
+ post_dict.update({'referer': referer.group(1)})
+ if link:
+ post_dict.update({'link': link.group(1)})
+ if cookie:
+ post_dict.update({'cookie': cookie.group(1)})
+
+ if not post_dict:
+ self.logDebug('Get an empty post_dict. Strange.')
+
+ self.setWait(5)
+ self.wait()
+ self.logDebug("Unrestricted URL: " + str(post_dict))
+
+ self.download('http://vipleech4u.com/unrestrict.php', post=post_dict, disposition=True)
+
+ check = self.checkDownload({"bad": "<html"})
+
+ if check == "bad":
+ self.retry(24, 150, 'Bad file downloaded')