summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Stefano <l.stickell@yahoo.it> 2013-08-16 21:34:10 +0200
committerGravatar Stefano <l.stickell@yahoo.it> 2013-08-16 21:34:10 +0200
commit3a7c1b306dcf448353048981f8b5126ede9598ff (patch)
tree6aef2fa76a6b6e28867ea94fb1c59bdf19a1ec48
parentMerge pull request #226 from Kagenoshin/simplydebrid (diff)
downloadpyload-3a7c1b306dcf448353048981f8b5126ede9598ff.tar.xz
LetitbitNet: implemented premium mode
-rw-r--r--module/plugins/accounts/LetitbitNet.py46
-rw-r--r--module/plugins/hoster/LetitbitNet.py27
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)