From 5980441bdf231c7e48cf810bb95262c46f6e84d5 Mon Sep 17 00:00:00 2001
From: Max <max@spiritix.eu>
Date: Mon, 22 Jul 2013 20:59:47 +0200
Subject: fastix integration 2nd

---
 module/plugins/accounts/Fastix.py | 36 ++++++++++++++++++++
 module/plugins/hooks/Fastix.py    | 28 ++++++++++++++++
 module/plugins/hoster/Fastix.py   | 70 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 134 insertions(+)
 create mode 100644 module/plugins/accounts/Fastix.py
 create mode 100644 module/plugins/hooks/Fastix.py
 create mode 100644 module/plugins/hoster/Fastix.py

(limited to 'module')

diff --git a/module/plugins/accounts/Fastix.py b/module/plugins/accounts/Fastix.py
new file mode 100644
index 000000000..c52961843
--- /dev/null
+++ b/module/plugins/accounts/Fastix.py
@@ -0,0 +1,36 @@
+from module.plugins.Account import Account
+from module.common.json_layer import json_loads
+
+class Fastix(Account):
+    __name__ = "Fastix"
+    __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
+        out_file = open("fastix_api.txt","w")
+        out_file.write(api)
+        out_file.close()
+        if "error_code" in page:
+            self.wrongPassword()
+            
\ No newline at end of file
diff --git a/module/plugins/hooks/Fastix.py b/module/plugins/hooks/Fastix.py
new file mode 100644
index 000000000..2d2d09e38
--- /dev/null
+++ b/module/plugins/hooks/Fastix.py
@@ -0,0 +1,28 @@
+# -*- 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 Fastix(MultiHoster):
+    __name__ = "Fastix"
+    __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")
+        list = json_loads(page)
+        list = list['allow']
+        return list
\ No newline at end of file
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": "<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)
-- 
cgit v1.2.3


From 1cbdd77c2b17c813163aabf0ef7b8bcae7996dc8 Mon Sep 17 00:00:00 2001
From: Max <max@spiritix.eu>
Date: Mon, 22 Jul 2013 23:26:20 +0200
Subject: fastix integration

---
 module/plugins/accounts/Fastix.py | 3 ---
 module/plugins/hoster/Fastix.py   | 6 +++---
 2 files changed, 3 insertions(+), 6 deletions(-)

(limited to 'module')

diff --git a/module/plugins/accounts/Fastix.py b/module/plugins/accounts/Fastix.py
index c52961843..862815a84 100644
--- a/module/plugins/accounts/Fastix.py
+++ b/module/plugins/accounts/Fastix.py
@@ -28,9 +28,6 @@ class Fastix(Account):
         api = json_loads(page)
         api = api['apikey']
         data["api"] = api
-        out_file = open("fastix_api.txt","w")
-        out_file.write(api)
-        out_file.close()
         if "error_code" in page:
             self.wrongPassword()
             
\ No newline at end of file
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 <max@spiritix.eu>
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')

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