summaryrefslogtreecommitdiffstats
path: root/pyload/plugin/hoster/MegaDebridEu.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/plugin/hoster/MegaDebridEu.py')
-rw-r--r--pyload/plugin/hoster/MegaDebridEu.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/pyload/plugin/hoster/MegaDebridEu.py b/pyload/plugin/hoster/MegaDebridEu.py
new file mode 100644
index 000000000..1c84223b8
--- /dev/null
+++ b/pyload/plugin/hoster/MegaDebridEu.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+
+import re
+
+from urllib import unquote_plus
+
+from pyload.utils import json_loads
+from pyload.plugin.internal.MultiHoster import MultiHoster
+
+
+class MegaDebridEu(MultiHoster):
+ __name = "MegaDebridEu"
+ __type = "hoster"
+ __version = "0.47"
+
+ __pattern = r'http://((?:www\d+\.|s\d+\.)?mega-debrid\.eu|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/download/file/[\w^_]+'
+ __config = [("use_premium", "bool", "Use premium account if available", True)]
+
+ __description = """mega-debrid.eu multi-hoster plugin"""
+ __license = "GPLv3"
+ __authors = [("D.Ducatel", "dducatel@je-geek.fr")]
+
+
+ API_URL = "https://www.mega-debrid.eu/api.php"
+
+
+ def api_load(self):
+ """
+ Connexion to the mega-debrid API
+ Return True if succeed
+ """
+ user, data = self.account.selectAccount()
+ jsonResponse = self.load(self.API_URL,
+ get={'action': 'connectUser', 'login': user, 'password': data['password']})
+ res = json_loads(jsonResponse)
+
+ if res['response_code'] == "ok":
+ self.token = res['token']
+ return True
+ else:
+ return False
+
+
+ def handlePremium(self, pyfile):
+ """
+ Debrid a link
+ Return The debrided link if succeed or original link if fail
+ """
+ if not self.api_load():
+ self.error("Unable to connect to remote API")
+
+ jsonResponse = self.load(self.API_URL,
+ get={'action': 'getLink', 'token': self.token},
+ post={'link': pyfile.url})
+
+ res = json_loads(jsonResponse)
+ if res['response_code'] == "ok":
+ self.link = res['debridLink'][1:-1]