From 22334b664ff2be7bbbe0627e4d65cf222bd29919 Mon Sep 17 00:00:00 2001 From: stickell Date: Thu, 11 Sep 2014 12:16:03 +0200 Subject: [MultiDebrid] renamed to Myfastline --- module/plugins/accounts/MultiDebridCom.py | 10 ++++------ module/plugins/hooks/MultiDebridCom.py | 9 +++------ module/plugins/hoster/MultiDebridCom.py | 13 +++++-------- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/module/plugins/accounts/MultiDebridCom.py b/module/plugins/accounts/MultiDebridCom.py index c731ce9ae..2a2d6d065 100644 --- a/module/plugins/accounts/MultiDebridCom.py +++ b/module/plugins/accounts/MultiDebridCom.py @@ -9,13 +9,11 @@ from module.common.json_layer import json_loads class MultiDebridCom(Account): __name__ = "MultiDebridCom" __type__ = "account" - __version__ = "0.01" - - __description__ = """Multi-debrid.com account plugin""" + __version__ = "0.02" + __description__ = """Myfastfile.com account plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" - def loadAccountInfo(self, user, req): if 'days_left' in self.json_data: validuntil = int(time() + self.json_data['days_left'] * 24 * 60 * 60) @@ -24,8 +22,8 @@ class MultiDebridCom(Account): self.logError('Unable to get account information') def login(self, user, data, req): - # Password to use is the API-Password written in http://multi-debrid.com/myaccount - html = req.load("http://multi-debrid.com/api.php", + # Password to use is the API-Password written in http://myfastfile.com/myaccount + html = req.load("http://myfastfile.com/api.php", get={"user": user, "pass": data['password']}) self.logDebug('JSON data: ' + html) self.json_data = json_loads(html) diff --git a/module/plugins/hooks/MultiDebridCom.py b/module/plugins/hooks/MultiDebridCom.py index c5d1464f8..e27ec8040 100644 --- a/module/plugins/hooks/MultiDebridCom.py +++ b/module/plugins/hooks/MultiDebridCom.py @@ -8,21 +8,18 @@ from module.plugins.internal.MultiHoster import MultiHoster class MultiDebridCom(MultiHoster): __name__ = "MultiDebridCom" __type__ = "hook" - __version__ = "0.01" - + __version__ = "0.02" __config__ = [("activated", "bool", "Activated", False), ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"), ("hosterList", "str", "Hoster list (comma separated)", ""), ("unloadFailing", "bool", "Revert to standard download if download fails", False), ("interval", "int", "Reload interval in hours (0 to disable)", 24)] - - __description__ = """Multi-debrid.com hook plugin""" + __description__ = """Myfastfile.com hook plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" - def getHoster(self): - json_data = getURL('http://multi-debrid.com/api.php?hosts', decode=True) + json_data = getURL('http://myfastfile.com/api.php?hosts', decode=True) self.logDebug('JSON data: ' + json_data) json_data = json_loads(json_data) diff --git a/module/plugins/hoster/MultiDebridCom.py b/module/plugins/hoster/MultiDebridCom.py index f70fa0f0e..bae864806 100644 --- a/module/plugins/hoster/MultiDebridCom.py +++ b/module/plugins/hoster/MultiDebridCom.py @@ -9,15 +9,12 @@ from module.plugins.Hoster import Hoster class MultiDebridCom(Hoster): __name__ = "MultiDebridCom" __type__ = "hoster" - __version__ = "0.03" - + __version__ = "0.04" __pattern__ = r'http://(?:www\.)?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/dl/' - - __description__ = """Multi-debrid.com hoster plugin""" + __description__ = """Myfastfile.com hoster plugin""" __author_name__ = "stickell" __author_mail__ = "l.stickell@yahoo.it" - def setup(self): self.chunkLimit = -1 self.resumeDownload = True @@ -26,11 +23,11 @@ class MultiDebridCom(Hoster): if re.match(self.__pattern__, pyfile.url): new_url = pyfile.url elif not self.account: - self.logError(_("Please enter your %s account or deactivate this plugin") % "Multi-debrid.com") - self.fail("No Multi-debrid.com account provided") + self.logError(_("Please enter your %s account or deactivate this plugin") % "Myfastfile.com") + self.fail("No Myfastfile.com account provided") else: self.logDebug("Original URL: %s" % pyfile.url) - page = self.req.load('http://multi-debrid.com/api.php', + page = self.req.load('http://myfastfile.com/api.php', get={'user': self.user, 'pass': self.account.getAccountData(self.user)['password'], 'link': pyfile.url}) self.logDebug("JSON data: " + page) -- cgit v1.2.3 From 6f87a713970d6a18c0a3e622286488ec9e3b5494 Mon Sep 17 00:00:00 2001 From: stickell Date: Thu, 11 Sep 2014 15:52:16 +0200 Subject: [MultiDebrid] renaming files to MyfastlineCom --- module/plugins/accounts/MultiDebridCom.py | 32 ----------------------- module/plugins/accounts/MyfastfileCom.py | 32 +++++++++++++++++++++++ module/plugins/hooks/MultiDebridCom.py | 26 ------------------- module/plugins/hooks/MyfastfileCom.py | 26 +++++++++++++++++++ module/plugins/hoster/MultiDebridCom.py | 42 ------------------------------- module/plugins/hoster/MyfastfileCom.py | 42 +++++++++++++++++++++++++++++++ 6 files changed, 100 insertions(+), 100 deletions(-) delete mode 100644 module/plugins/accounts/MultiDebridCom.py create mode 100644 module/plugins/accounts/MyfastfileCom.py delete mode 100644 module/plugins/hooks/MultiDebridCom.py create mode 100644 module/plugins/hooks/MyfastfileCom.py delete mode 100644 module/plugins/hoster/MultiDebridCom.py create mode 100644 module/plugins/hoster/MyfastfileCom.py diff --git a/module/plugins/accounts/MultiDebridCom.py b/module/plugins/accounts/MultiDebridCom.py deleted file mode 100644 index 2a2d6d065..000000000 --- a/module/plugins/accounts/MultiDebridCom.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- - -from time import time - -from module.plugins.Account import Account -from module.common.json_layer import json_loads - - -class MultiDebridCom(Account): - __name__ = "MultiDebridCom" - __type__ = "account" - __version__ = "0.02" - __description__ = """Myfastfile.com account plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" - - def loadAccountInfo(self, user, req): - if 'days_left' in self.json_data: - validuntil = int(time() + self.json_data['days_left'] * 24 * 60 * 60) - return {"premium": True, "validuntil": validuntil, "trafficleft": -1} - else: - self.logError('Unable to get account information') - - def login(self, user, data, req): - # Password to use is the API-Password written in http://myfastfile.com/myaccount - html = req.load("http://myfastfile.com/api.php", - get={"user": user, "pass": data['password']}) - self.logDebug('JSON data: ' + html) - self.json_data = json_loads(html) - if self.json_data['status'] != 'ok': - self.logError('Invalid login. The password to use is the API-Password you find in your "My Account" page') - self.wrongPassword() diff --git a/module/plugins/accounts/MyfastfileCom.py b/module/plugins/accounts/MyfastfileCom.py new file mode 100644 index 000000000..8db9c9ade --- /dev/null +++ b/module/plugins/accounts/MyfastfileCom.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +from time import time + +from module.plugins.Account import Account +from module.common.json_layer import json_loads + + +class MyfastfileCom(Account): + __name__ = "MyfastfileCom" + __type__ = "account" + __version__ = "0.02" + __description__ = """Myfastfile.com account plugin""" + __author_name__ = "stickell" + __author_mail__ = "l.stickell@yahoo.it" + + def loadAccountInfo(self, user, req): + if 'days_left' in self.json_data: + validuntil = int(time() + self.json_data['days_left'] * 24 * 60 * 60) + return {"premium": True, "validuntil": validuntil, "trafficleft": -1} + else: + self.logError('Unable to get account information') + + def login(self, user, data, req): + # Password to use is the API-Password written in http://myfastfile.com/myaccount + html = req.load("http://myfastfile.com/api.php", + get={"user": user, "pass": data['password']}) + self.logDebug('JSON data: ' + html) + self.json_data = json_loads(html) + if self.json_data['status'] != 'ok': + self.logError('Invalid login. The password to use is the API-Password you find in your "My Account" page') + self.wrongPassword() diff --git a/module/plugins/hooks/MultiDebridCom.py b/module/plugins/hooks/MultiDebridCom.py deleted file mode 100644 index e27ec8040..000000000 --- a/module/plugins/hooks/MultiDebridCom.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.common.json_layer import json_loads -from module.network.RequestFactory import getURL -from module.plugins.internal.MultiHoster import MultiHoster - - -class MultiDebridCom(MultiHoster): - __name__ = "MultiDebridCom" - __type__ = "hook" - __version__ = "0.02" - __config__ = [("activated", "bool", "Activated", False), - ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"), - ("hosterList", "str", "Hoster list (comma separated)", ""), - ("unloadFailing", "bool", "Revert to standard download if download fails", False), - ("interval", "int", "Reload interval in hours (0 to disable)", 24)] - __description__ = """Myfastfile.com hook plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" - - def getHoster(self): - json_data = getURL('http://myfastfile.com/api.php?hosts', decode=True) - self.logDebug('JSON data: ' + json_data) - json_data = json_loads(json_data) - - return json_data['hosts'] diff --git a/module/plugins/hooks/MyfastfileCom.py b/module/plugins/hooks/MyfastfileCom.py new file mode 100644 index 000000000..bbf665b08 --- /dev/null +++ b/module/plugins/hooks/MyfastfileCom.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +from module.common.json_layer import json_loads +from module.network.RequestFactory import getURL +from module.plugins.internal.MultiHoster import MultiHoster + + +class MyfastfileCom(MultiHoster): + __name__ = "MyfastfileCom" + __type__ = "hook" + __version__ = "0.02" + __config__ = [("activated", "bool", "Activated", False), + ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported)", "all"), + ("hosterList", "str", "Hoster list (comma separated)", ""), + ("unloadFailing", "bool", "Revert to standard download if download fails", False), + ("interval", "int", "Reload interval in hours (0 to disable)", 24)] + __description__ = """Myfastfile.com hook plugin""" + __author_name__ = "stickell" + __author_mail__ = "l.stickell@yahoo.it" + + def getHoster(self): + json_data = getURL('http://myfastfile.com/api.php?hosts', decode=True) + self.logDebug('JSON data: ' + json_data) + json_data = json_loads(json_data) + + return json_data['hosts'] diff --git a/module/plugins/hoster/MultiDebridCom.py b/module/plugins/hoster/MultiDebridCom.py deleted file mode 100644 index bae864806..000000000 --- a/module/plugins/hoster/MultiDebridCom.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from module.common.json_layer import json_loads -from module.plugins.Hoster import Hoster - - -class MultiDebridCom(Hoster): - __name__ = "MultiDebridCom" - __type__ = "hoster" - __version__ = "0.04" - __pattern__ = r'http://(?:www\.)?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/dl/' - __description__ = """Myfastfile.com hoster plugin""" - __author_name__ = "stickell" - __author_mail__ = "l.stickell@yahoo.it" - - def setup(self): - self.chunkLimit = -1 - self.resumeDownload = True - - def process(self, pyfile): - if re.match(self.__pattern__, pyfile.url): - new_url = pyfile.url - elif not self.account: - self.logError(_("Please enter your %s account or deactivate this plugin") % "Myfastfile.com") - self.fail("No Myfastfile.com account provided") - else: - self.logDebug("Original URL: %s" % pyfile.url) - page = self.req.load('http://myfastfile.com/api.php', - get={'user': self.user, 'pass': self.account.getAccountData(self.user)['password'], - 'link': pyfile.url}) - self.logDebug("JSON data: " + page) - page = json_loads(page) - if page['status'] != 'ok': - self.fail('Unable to unrestrict link') - new_url = page['link'] - - if new_url != pyfile.url: - self.logDebug("Unrestricted URL: " + new_url) - - self.download(new_url, disposition=True) diff --git a/module/plugins/hoster/MyfastfileCom.py b/module/plugins/hoster/MyfastfileCom.py new file mode 100644 index 000000000..7a5c2f515 --- /dev/null +++ b/module/plugins/hoster/MyfastfileCom.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- + +import re + +from module.common.json_layer import json_loads +from module.plugins.Hoster import Hoster + + +class MyfastfileCom(Hoster): + __name__ = "MyfastfileCom" + __type__ = "hoster" + __version__ = "0.04" + __pattern__ = r'http://(?:www\.)?\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/dl/' + __description__ = """Myfastfile.com hoster plugin""" + __author_name__ = "stickell" + __author_mail__ = "l.stickell@yahoo.it" + + def setup(self): + self.chunkLimit = -1 + self.resumeDownload = True + + def process(self, pyfile): + if re.match(self.__pattern__, pyfile.url): + new_url = pyfile.url + elif not self.account: + self.logError(_("Please enter your %s account or deactivate this plugin") % "Myfastfile.com") + self.fail("No Myfastfile.com account provided") + else: + self.logDebug("Original URL: %s" % pyfile.url) + page = self.req.load('http://myfastfile.com/api.php', + get={'user': self.user, 'pass': self.account.getAccountData(self.user)['password'], + 'link': pyfile.url}) + self.logDebug("JSON data: " + page) + page = json_loads(page) + if page['status'] != 'ok': + self.fail('Unable to unrestrict link') + new_url = page['link'] + + if new_url != pyfile.url: + self.logDebug("Unrestricted URL: " + new_url) + + self.download(new_url, disposition=True) -- cgit v1.2.3 From a64c0d41a27da58dc004f97bc934c8b3018a1de9 Mon Sep 17 00:00:00 2001 From: stickell Date: Fri, 12 Sep 2014 17:54:39 +0200 Subject: [Premium4Me] Renamed to PremiumTo + partial rewrite + special traffic support --- module/plugins/accounts/Premium4Me.py | 29 -------------- module/plugins/accounts/PremiumTo.py | 28 ++++++++++++++ module/plugins/hooks/Premium4Me.py | 34 ----------------- module/plugins/hooks/PremiumTo.py | 32 ++++++++++++++++ module/plugins/hoster/Premium4Me.py | 72 ----------------------------------- module/plugins/hoster/PremiumTo.py | 72 +++++++++++++++++++++++++++++++++++ 6 files changed, 132 insertions(+), 135 deletions(-) delete mode 100644 module/plugins/accounts/Premium4Me.py create mode 100644 module/plugins/accounts/PremiumTo.py delete mode 100644 module/plugins/hooks/Premium4Me.py create mode 100644 module/plugins/hooks/PremiumTo.py delete mode 100644 module/plugins/hoster/Premium4Me.py create mode 100644 module/plugins/hoster/PremiumTo.py diff --git a/module/plugins/accounts/Premium4Me.py b/module/plugins/accounts/Premium4Me.py deleted file mode 100644 index 9f66af414..000000000 --- a/module/plugins/accounts/Premium4Me.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.Account import Account - - -class Premium4Me(Account): - __name__ = "Premium4Me" - __type__ = "account" - __version__ = "0.03" - - __description__ = """Premium.to account plugin""" - __author_name__ = ("RaNaN", "zoidberg", "stickell") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") - - - def loadAccountInfo(self, user, req): - traffic = req.load("http://premium.to/api/traffic.php?authcode=%s" % self.authcode) - - account_info = {"trafficleft": int(traffic) / 1024, - "validuntil": -1} - - return account_info - - def login(self, user, data, req): - self.authcode = req.load("http://premium.to/api/getauthcode.php?username=%s&password=%s" % ( - user, data['password'])).strip() - - if "wrong username" in self.authcode: - self.wrongPassword() diff --git a/module/plugins/accounts/PremiumTo.py b/module/plugins/accounts/PremiumTo.py new file mode 100644 index 000000000..5678f8210 --- /dev/null +++ b/module/plugins/accounts/PremiumTo.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- + +from module.plugins.Account import Account + + +class PremiumTo(Account): + __name__ = "PremiumTo" + __type__ = "account" + __version__ = "0.04" + __description__ = """Premium.to account plugin""" + __author_name__ = ("RaNaN", "zoidberg", "stickell") + __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") + + def loadAccountInfo(self, user, req): + api_r = req.load("http://premium.to/api/straffic.php", + get={'username': self.username, 'password': self.password}) + traffic = sum(map(int, api_r.split(';'))) + + return {"trafficleft": int(traffic) / 1024, "validuntil": -1} + + def login(self, user, data, req): + self.username = user + self.password = data['password'] + authcode = req.load("http://premium.to/api/getauthcode.php?username=%s&password=%s" % ( + user, self.password)).strip() + + if "wrong username" in authcode: + self.wrongPassword() diff --git a/module/plugins/hooks/Premium4Me.py b/module/plugins/hooks/Premium4Me.py deleted file mode 100644 index 9c6701b06..000000000 --- a/module/plugins/hooks/Premium4Me.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.network.RequestFactory import getURL -from module.plugins.internal.MultiHoster import MultiHoster - - -class Premium4Me(MultiHoster): - __name__ = "Premium4Me" - __type__ = "hook" - __version__ = "0.03" - - __config__ = [("activated", "bool", "Activated", False), - ("hosterListMode", "all;listed;unlisted", "Use for downloads from supported hosters:", "all"), - ("hosterList", "str", "Hoster list (comma separated)", "")] - - __description__ = """Premium.to hook plugin""" - __author_name__ = ("RaNaN", "zoidberg", "stickell") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") - - - def getHoster(self): - page = getURL("http://premium.to/api/hosters.php?authcode=%s" % self.account.authcode) - return [x.strip() for x in page.replace("\"", "").split(";")] - - def coreReady(self): - self.account = self.core.accountManager.getAccountPlugin("Premium4Me") - - user = self.account.selectAccount()[0] - - if not user: - self.logError(_("Please add your premium.to account first and restart pyLoad")) - return - - return MultiHoster.coreReady(self) diff --git a/module/plugins/hooks/PremiumTo.py b/module/plugins/hooks/PremiumTo.py new file mode 100644 index 000000000..0572dab34 --- /dev/null +++ b/module/plugins/hooks/PremiumTo.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +from module.network.RequestFactory import getURL +from module.plugins.internal.MultiHoster import MultiHoster + + +class PremiumTo(MultiHoster): + __name__ = "PremiumTo" + __type__ = "hook" + __version__ = "0.04" + __config__ = [("activated", "bool", "Activated", False), + ("hosterListMode", "all;listed;unlisted", "Use for downloads from supported hosters:", "all"), + ("hosterList", "str", "Hoster list (comma separated)", "")] + __description__ = """Premium.to hook plugin""" + __author_name__ = ("RaNaN", "zoidberg", "stickell") + __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") + + def getHoster(self): + page = getURL("http://premium.to/api/hosters.php", + get={'username': self.account.username, 'password': self.account.password}) + return [x.strip() for x in page.replace("\"", "").split(";")] + + def coreReady(self): + self.account = self.core.accountManager.getAccountPlugin("PremiumTo") + + user = self.account.selectAccount()[0] + + if not user: + self.logError(_("Please add your premium.to account first and restart pyLoad")) + return + + return MultiHoster.coreReady(self) diff --git a/module/plugins/hoster/Premium4Me.py b/module/plugins/hoster/Premium4Me.py deleted file mode 100644 index ea841338a..000000000 --- a/module/plugins/hoster/Premium4Me.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- coding: utf-8 -*- - -from os import remove -from os.path import exists -from urllib import quote - -from module.plugins.Hoster import Hoster -from module.utils import fs_encode - - -class Premium4Me(Hoster): - __name__ = "Premium4Me" - __type__ = "hoster" - __version__ = "0.08" - - __pattern__ = r'http://(?:www\.)?premium.to/.*' - - __description__ = """Premium.to hoster plugin""" - __author_name__ = ("RaNaN", "zoidberg", "stickell") - __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") - - - def setup(self): - self.resumeDownload = True - self.chunkLimit = 1 - - def process(self, pyfile): - if not self.account: - self.logError(_("Please enter your %s account or deactivate this plugin") % "premium.to") - self.fail("No premium.to account provided") - - self.logDebug("premium.to: Old URL: %s" % pyfile.url) - - tra = self.getTraffic() - - #raise timeout to 2min - self.req.setOption("timeout", 120) - - self.download( - "http://premium.to/api/getfile.php?authcode=%s&link=%s" % (self.account.authcode, quote(pyfile.url, "")), - disposition=True) - - check = self.checkDownload({"nopremium": "No premium account available"}) - - if check == "nopremium": - self.retry(60, 5 * 60, "No premium account available") - - err = '' - if self.req.http.code == '420': - # Custom error code send - fail - lastDownload = fs_encode(self.lastDownload) - - if exists(lastDownload): - f = open(lastDownload, "rb") - err = f.read(256).strip() - f.close() - remove(lastDownload) - else: - err = 'File does not exist' - - trb = self.getTraffic() - self.logInfo("Filesize: %d, Traffic used %d, traffic left %d" % (pyfile.size, tra - trb, trb)) - - if err: - self.fail(err) - - def getTraffic(self): - try: - traffic = int(self.load("http://premium.to/api/traffic.php?authcode=%s" % self.account.authcode)) - except: - traffic = 0 - return traffic diff --git a/module/plugins/hoster/PremiumTo.py b/module/plugins/hoster/PremiumTo.py new file mode 100644 index 000000000..3ab7e34ac --- /dev/null +++ b/module/plugins/hoster/PremiumTo.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- + +from os import remove +from os.path import exists +from urllib import quote + +from module.plugins.Hoster import Hoster +from module.utils import fs_encode + + +class PremiumTo(Hoster): + __name__ = "PremiumTo" + __type__ = "hoster" + __version__ = "0.09" + __pattern__ = r'https?://(?:www\.)?premium.to/.*' + __description__ = """Premium.to hoster plugin""" + __author_name__ = ("RaNaN", "zoidberg", "stickell") + __author_mail__ = ("RaNaN@pyload.org", "zoidberg@mujmail.cz", "l.stickell@yahoo.it") + + def setup(self): + self.resumeDownload = True + self.chunkLimit = 1 + + def process(self, pyfile): + if not self.account: + self.logError(_("Please enter your %s account or deactivate this plugin") % "premium.to") + self.fail("No premium.to account provided") + + self.logDebug("Old URL: %s" % pyfile.url) + + tra = self.getTraffic() + + #raise timeout to 2min + self.req.setOption("timeout", 120) + + self.download( + "http://premium.to/api/getfile.php", + get={"username": self.account.username, "password": self.account.password, "link": quote(pyfile.url, "")}, + disposition=True) + + check = self.checkDownload({"nopremium": "No premium account available"}) + + if check == "nopremium": + self.retry(60, 5 * 60, "No premium account available") + + err = '' + if self.req.http.code == '420': + # Custom error code send - fail + lastDownload = fs_encode(self.lastDownload) + + if exists(lastDownload): + f = open(lastDownload, "rb") + err = f.read(256).strip() + f.close() + remove(lastDownload) + else: + err = 'File does not exist' + + trb = self.getTraffic() + self.logInfo("Filesize: %d, Traffic used %d, traffic left %d" % (pyfile.size, tra - trb, trb)) + + if err: + self.fail(err) + + def getTraffic(self): + try: + api_r = self.load("http://premium.to/api/straffic.php", + get={'username': self.account.username, 'password': self.account.password}) + traffic = sum(map(int, api_r.split(';'))) + except: + traffic = 0 + return traffic -- cgit v1.2.3 From a430d250a8e4d84a262b546fa42e6d97a909146b Mon Sep 17 00:00:00 2001 From: stickell Date: Fri, 12 Sep 2014 18:02:58 +0200 Subject: [4shared] Fixed login sequence --- module/plugins/accounts/FourSharedCom.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/module/plugins/accounts/FourSharedCom.py b/module/plugins/accounts/FourSharedCom.py index 206edca23..5e37e54f3 100644 --- a/module/plugins/accounts/FourSharedCom.py +++ b/module/plugins/accounts/FourSharedCom.py @@ -7,28 +7,23 @@ from module.common.json_layer import json_loads class FourSharedCom(Account): __name__ = "FourSharedCom" __type__ = "account" - __version__ = "0.01" - + __version__ = "0.03" __description__ = """FourShared.com account plugin""" - __author_name__ = "zoidberg" - __author_mail__ = "zoidberg@mujmail.cz" - + __author_name__ = ("zoidberg", "stickell") + __author_mail__ = ("zoidberg@mujmail.cz", "l.stickell@yahoo.it") def loadAccountInfo(self, user, req): - #fixme - return {"validuntil": -1, "trafficleft": -1, "premium": False} + # Free mode only for now + return {"premium": False} def login(self, user, data, req): - req.cj.setCookie("www.4shared.com", "4langcookie", "en") - response = req.load('http://www.4shared.com/login', + req.cj.setCookie("4shared.com", "4langcookie", "en") + response = req.load('http://www.4shared.com/web/login', post={"login": user, "password": data['password'], - "remember": "false", - "doNotRedirect": "true"}) - self.logDebug(response) - response = json_loads(response) + "remember": "on", + "_remember": "on", + "returnTo": "http://www.4shared.com/account/home.jsp"}) - if not "ok" in response or response['ok'] != True: - if "rejectReason" in response and response['rejectReason'] != True: - self.logError(response['rejectReason']) + if 'Please log in to access your 4shared account' in response: self.wrongPassword() -- cgit v1.2.3 From 065e1081f7a410bb99a1ab1c3453a6b11d3c96e2 Mon Sep 17 00:00:00 2001 From: stickell Date: Sat, 13 Sep 2014 12:28:28 +0200 Subject: [FTP] Restore pattern. --- module/plugins/hoster/Ftp.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/plugins/hoster/Ftp.py b/module/plugins/hoster/Ftp.py index 8de3f4f47..1b7eab3ab 100644 --- a/module/plugins/hoster/Ftp.py +++ b/module/plugins/hoster/Ftp.py @@ -12,8 +12,8 @@ from module.plugins.Hoster import Hoster class Ftp(Hoster): __name__ = "Ftp" __type__ = "hoster" - __version__ = "0.41" - + __version__ = "0.42" + __pattern__ = r'(ftps?|sftp)://(.*?:.*?@)?.*?/.*' # ftp://user:password@ftp.server.org/path/to/file __description__ = """Download from ftp directory""" __author_name__ = ("jeix", "mkaay", "zoidberg") __author_mail__ = ("jeix@hasnomail.com", "mkaay@mkaay.de", "zoidberg@mujmail.cz") -- cgit v1.2.3