diff options
author | Stefano <l.stickell@yahoo.it> | 2013-08-16 21:34:10 +0200 |
---|---|---|
committer | Stefano <l.stickell@yahoo.it> | 2013-08-16 21:34:10 +0200 |
commit | 3a7c1b306dcf448353048981f8b5126ede9598ff (patch) | |
tree | 6aef2fa76a6b6e28867ea94fb1c59bdf19a1ec48 | |
parent | Merge pull request #226 from Kagenoshin/simplydebrid (diff) | |
download | pyload-3a7c1b306dcf448353048981f8b5126ede9598ff.tar.xz |
LetitbitNet: implemented premium mode
-rw-r--r-- | module/plugins/accounts/LetitbitNet.py | 46 | ||||
-rw-r--r-- | module/plugins/hoster/LetitbitNet.py | 27 |
2 files changed, 71 insertions, 2 deletions
diff --git a/module/plugins/accounts/LetitbitNet.py b/module/plugins/accounts/LetitbitNet.py new file mode 100644 index 000000000..bcc004b91 --- /dev/null +++ b/module/plugins/accounts/LetitbitNet.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- + +############################################################################ +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as # +# published by the Free Software Foundation, either version 3 of the # +# License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Affero General Public License for more details. # +# # +# You should have received a copy of the GNU Affero General Public License # +# along with this program. If not, see <http://www.gnu.org/licenses/>. # +############################################################################ + +from module.plugins.Account import Account +# from module.common.json_layer import json_loads, json_dumps + + +class LetitbitNet(Account): + __name__ = "LetitbitNet" + __version__ = "0.01" + __type__ = "account" + __description__ = """Letitbit.net account plugin""" + __author_name__ = ("stickell") + __author_mail__ = ("l.stickell@yahoo.it") + + def loadAccountInfo(self, user, req): + ## DISABLED BECAUSE IT GET 'key exausted' EVEN IF VALID ## + # api_key = self.accounts[user]['password'] + # json_data = [api_key, ["key/info"]] + # api_rep = req.load('http://api.letitbit.net/json', post={'r': json_dumps(json_data)}) + # self.logDebug('API Key Info: ' + api_rep) + # api_rep = json_loads(api_rep) + # + # if api_rep['status'] == 'FAIL': + # self.logWarning(api_rep['data']) + # return {'valid': False, 'premium': False} + + return {"premium": True} + + def login(self, user, data, req): + # API_KEY is the username and the PREMIUM_KEY is the password + self.logInfo('You must use your API KEY as username and the PREMIUM KEY as password.') diff --git a/module/plugins/hoster/LetitbitNet.py b/module/plugins/hoster/LetitbitNet.py index 8748817eb..c1ef615fd 100644 --- a/module/plugins/hoster/LetitbitNet.py +++ b/module/plugins/hoster/LetitbitNet.py @@ -16,9 +16,15 @@ @author: zoidberg """ +# API Documentation: +# http://api.letitbit.net/reg/static/api.pdf + +# Test links (random.bin): +# http://letitbit.net/download/07874.0b5709a7d3beee2408bb1f2eefce/random.bin.html + import re from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -from module.common.json_layer import json_loads +from module.common.json_layer import json_loads, json_dumps from module.plugins.internal.CaptchaService import ReCaptcha @@ -26,7 +32,7 @@ class LetitbitNet(SimpleHoster): __name__ = "LetitbitNet" __type__ = "hoster" __pattern__ = r"http://(?:\w*\.)*(letitbit|shareflare).net/download/.*" - __version__ = "0.20" + __version__ = "0.21" __description__ = """letitbit.net""" __author_name__ = ("zoidberg", "z00nx") __author_mail__ = ("zoidberg@mujmail.cz", "z00nx0@gmail.com") @@ -121,5 +127,22 @@ class LetitbitNet(SimpleHoster): else: self.fail("Download did not finish correctly") + def handlePremium(self): + api_key = self.user + premium_key = self.account.getAccountData(self.user)["password"] + + json_data = [api_key, ["download/direct_links", {"pass": premium_key, "link": self.pyfile.url}]] + api_rep = self.load('http://api.letitbit.net/json', post={'r': json_dumps(json_data)}) + self.logDebug('API Data: ' + api_rep) + api_rep = json_loads(api_rep) + + if api_rep['status'] == 'FAIL': + self.fail(api_rep['data']) + + direct_link = api_rep['data'][0][0] + self.logDebug('Direct Link: ' + direct_link) + + self.download(direct_link, disposition=True) + getInfo = create_getInfo(LetitbitNet) |