diff options
author | Stefano <l.stickell@yahoo.it> | 2013-07-28 19:56:38 +0200 |
---|---|---|
committer | Stefano <l.stickell@yahoo.it> | 2013-07-28 19:56:38 +0200 |
commit | 39c4fd2a00c0f1181815fe2e14c4c7fc16c2d839 (patch) | |
tree | 287585dc3114304a329cb81b637b16beb4858017 /pyload | |
parent | Fastfix: renamed and code cleanup (diff) | |
download | pyload-39c4fd2a00c0f1181815fe2e14c4c7fc16c2d839.tar.xz |
Moving plugins from module to pyload
Diffstat (limited to 'pyload')
-rw-r--r-- | pyload/plugins/accounts/FastixRu.py | 32 | ||||
-rw-r--r-- | pyload/plugins/addons/FastixRu.py | 27 | ||||
-rw-r--r-- | pyload/plugins/hoster/FastixRu.py | 66 |
3 files changed, 125 insertions, 0 deletions
diff --git a/pyload/plugins/accounts/FastixRu.py b/pyload/plugins/accounts/FastixRu.py new file mode 100644 index 000000000..3e1896e44 --- /dev/null +++ b/pyload/plugins/accounts/FastixRu.py @@ -0,0 +1,32 @@ +from module.plugins.Account import Account +from module.common.json_layer import json_loads + + +class FastixRu(Account): + __name__ = "FastixRu" + __version__ = "0.02" + __type__ = "account" + __description__ = """Fastix account plugin""" + __author_name__ = ("Massimo, Rosamilia") + __author_mail__ = ("max@spiritix.eu") + + def loadAccountInfo(self, user, req): + data = self.getAccountData(user) + page = req.load("http://fastix.ru/api_v2/?apikey=%s&sub=getaccountdetails" % (data["api"])) + page = json_loads(page) + points = page['points'] + kb = float(points) + kb = kb * 1024 ** 2 / 1000 + if points > 0: + account_info = {"validuntil": -1, "trafficleft": kb} + else: + account_info = {"validuntil": None, "trafficleft": None, "premium": False} + return account_info + + def login(self, user, data, req): + page = req.load("http://fastix.ru/api_v2/?sub=get_apikey&email=%s&password=%s" % (user, data["password"])) + api = json_loads(page) + api = api['apikey'] + data["api"] = api + if "error_code" in page: + self.wrongPassword() diff --git a/pyload/plugins/addons/FastixRu.py b/pyload/plugins/addons/FastixRu.py new file mode 100644 index 000000000..25c9a1a67 --- /dev/null +++ b/pyload/plugins/addons/FastixRu.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- + +# should be working + +from module.network.RequestFactory import getURL +from module.plugins.internal.MultiHoster import MultiHoster +from module.common.json_layer import json_loads + + +class FastixRu(MultiHoster): + __name__ = "FastixRu" + __version__ = "0.02" + __type__ = "hook" + __config__ = [("activated", "bool", "Activated", "False"), + ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"), + ("unloadFailing", "bool", "Revert to standard download if download fails", "False"), + ("interval", "int", "Reload interval in hours (0 to disable)", "24")] + __description__ = """Fastix hook plugin""" + __author_name__ = ("Massimo, Rosamilia") + __author_mail__ = ("max@spiritix.eu") + + def getHoster(self): + page = getURL( + "http://fastix.ru/api_v2/?apikey=5182964c3f8f9a7f0b00000a_kelmFB4n1IrnCDYuIFn2y&sub=allowed_sources") + host_list = json_loads(page) + host_list = host_list['allow'] + return host_list diff --git a/pyload/plugins/hoster/FastixRu.py b/pyload/plugins/hoster/FastixRu.py new file mode 100644 index 000000000..4d3e7b93d --- /dev/null +++ b/pyload/plugins/hoster/FastixRu.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- + +import re +from urllib import unquote +from random import randrange +from module.plugins.Hoster import Hoster +from module.common.json_layer import json_loads + + +class FastixRu(Hoster): + __name__ = "FastixRu" + __version__ = "0.02" + __type__ = "hoster" + __pattern__ = r"http?://.*fastix.ru\..*" + __description__ = """Fastix hoster plugin""" + __author_name__ = ("Massimo, Rosamilia") + __author_mail__ = ("max@spiritix.eu") + + def getFilename(self, url): + try: + name = unquote(url.rsplit("/", 1)[1]) + except IndexError: + name = "Unknown_Filename..." + if name.endswith("..."): # incomplete filename, append random stuff + name += "%s.tmp" % randrange(100, 999) + return name + + def init(self): + self.chunkLimit = 3 + self.resumeDownload = True + + def process(self, pyfile): + if not self.account: + self.logError(_("Please enter your %s account or deactivate this plugin") % "Fastix") + self.fail("No Fastix account provided") + + self.logDebug("Old URL: %s" % pyfile.url) + if re.match(self.__pattern__, pyfile.url): + new_url = pyfile.url + else: + api_key = self.account.getAccountData(self.user) + api_key = api_key["api"] + url = "http://fastix.ru/api_v2/?apikey=%s&sub=getdirectlink&link=%s" % (api_key, pyfile.url) + page = self.load(url) + data = json_loads(page) + self.logDebug("Json data: %s" % str(data)) + if "error\":true" in page: + self.offline() + else: + new_url = data["downloadlink"] + + self.logDebug("New URL: %s" % new_url) + + if pyfile.name.startswith("http") or pyfile.name.startswith("Unknown"): + #only use when name wasnt already set + pyfile.name = self.getFilename(new_url) + + self.download(new_url, disposition=True) + + check = self.checkDownload({"error": "<title>An error occurred while processing your request</title>", + "empty": re.compile(r"^$")}) + + if check == "error": + self.retry(reason="An error occurred while generating link.", wait_time=60) + elif check == "empty": + self.retry(reason="Downloaded File was empty.", wait_time=60) |