From 5980441bdf231c7e48cf810bb95262c46f6e84d5 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 22 Jul 2013 20:59:47 +0200 Subject: fastix integration 2nd --- module/plugins/hoster/Fastix.py | 70 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 module/plugins/hoster/Fastix.py (limited to 'module/plugins/hoster/Fastix.py') diff --git a/module/plugins/hoster/Fastix.py b/module/plugins/hoster/Fastix.py new file mode 100644 index 000000000..330ce78fc --- /dev/null +++ b/module/plugins/hoster/Fastix.py @@ -0,0 +1,70 @@ +# -*- 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 +from module.utils import parseFileSize + + +class Fastix(Hoster): + __name__ = "Fastix" + __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.tries = 0 + self.chunkLimit = 3 + self.resumeDownload = True + + def process(self, pyfile): + if not self.account: + self.logError("Please enter your Fastix account or deactivate this plugin") + self.fail("No Fastix account provided") + + self.log.debug("Fastix: Old URL: %s" % pyfile.url) + if re.match(self.__pattern__, pyfile.url): + new_url = pyfile.url + else: + in_file = open("fastix_api.txt","r") + api_key = in_file.read() + in_file.close() + 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("Fastix: 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": "An error occurred while processing your request", + "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) -- cgit v1.2.3 From 1cbdd77c2b17c813163aabf0ef7b8bcae7996dc8 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 22 Jul 2013 23:26:20 +0200 Subject: fastix integration --- module/plugins/hoster/Fastix.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'module/plugins/hoster/Fastix.py') diff --git a/module/plugins/hoster/Fastix.py b/module/plugins/hoster/Fastix.py index 330ce78fc..c16465d92 100644 --- a/module/plugins/hoster/Fastix.py +++ b/module/plugins/hoster/Fastix.py @@ -8,6 +8,7 @@ from module.common.json_layer import json_loads from module.utils import parseFileSize + class Fastix(Hoster): __name__ = "Fastix" __version__ = "0.02" @@ -41,9 +42,8 @@ class Fastix(Hoster): if re.match(self.__pattern__, pyfile.url): new_url = pyfile.url else: - in_file = open("fastix_api.txt","r") - api_key = in_file.read() - in_file.close() + 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) -- cgit v1.2.3 From 7b3f35f0ea904850c0eb58c3ca759adcf3f78c26 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 26 Jul 2013 17:14:07 +0200 Subject: little corrections on Fastix Hoster --- module/plugins/hoster/Fastix.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'module/plugins/hoster/Fastix.py') diff --git a/module/plugins/hoster/Fastix.py b/module/plugins/hoster/Fastix.py index c16465d92..5ebd63c44 100644 --- a/module/plugins/hoster/Fastix.py +++ b/module/plugins/hoster/Fastix.py @@ -29,16 +29,14 @@ class Fastix(Hoster): return name def init(self): - self.tries = 0 self.chunkLimit = 3 self.resumeDownload = True def process(self, pyfile): if not self.account: - self.logError("Please enter your Fastix account or deactivate this plugin") self.fail("No Fastix account provided") - self.log.debug("Fastix: Old URL: %s" % pyfile.url) + self.logDebug("Old URL: %s" % pyfile.url) if re.match(self.__pattern__, pyfile.url): new_url = pyfile.url else: @@ -53,7 +51,7 @@ class Fastix(Hoster): else: new_url = data["downloadlink"] - self.logDebug("Fastix: New URL: %s" % new_url) + self.logDebug("New URL: %s" % new_url) if pyfile.name.startswith("http") or pyfile.name.startswith("Unknown"): #only use when name wasnt already set -- cgit v1.2.3