summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/MegacrypterCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/MegacrypterCom.py')
-rw-r--r--module/plugins/hoster/MegacrypterCom.py37
1 files changed, 22 insertions, 15 deletions
diff --git a/module/plugins/hoster/MegacrypterCom.py b/module/plugins/hoster/MegacrypterCom.py
index aa167ba30..10a2eb025 100644
--- a/module/plugins/hoster/MegacrypterCom.py
+++ b/module/plugins/hoster/MegacrypterCom.py
@@ -3,37 +3,43 @@
import re
from module.common.json_layer import json_loads, json_dumps
-from module.plugins.hoster.MegaNz import MegaNz
+from module.plugins.hoster.MegaCoNz import MegaCoNz
+
+
+class MegacrypterCom(MegaCoNz):
+ __name__ = "MegacrypterCom"
+ __type__ = "hoster"
+ __version__ = "0.22"
+
+ __pattern__ = r'https?://\w{0,10}\.?megacrypter\.com/[\w!-]+'
-class MegacrypterCom(MegaNz):
- __name__ = "MegacrypterCom"
- __type__ = "hoster"
- __pattern__ = r'(https?://[a-z0-9]{0,10}\.?megacrypter\.com/[a-zA-Z0-9!_\-]+)'
- __version__ = "0.2"
__description__ = """Megacrypter.com decrypter plugin"""
- __author_name__ = "GonzaloSR"
- __author_mail__ = "gonzalo@gonzalosr.com"
+ __license__ = "GPLv3"
+ __authors__ = [("GonzaloSR", "gonzalo@gonzalosr.com")]
+
API_URL = "http://megacrypter.com/api"
FILE_SUFFIX = ".crypted"
- def callApi(self, **kwargs):
+
+ def api_response(self, **kwargs):
""" Dispatch a call to the api, see megacrypter.com/api_doc """
self.logDebug("JSON request: " + json_dumps(kwargs))
- resp = self.load(self.API_URL, post=json_dumps(kwargs))
- self.logDebug("API Response: " + resp)
- return json_loads(resp)
+ res = self.load(self.API_URL, post=json_dumps(kwargs))
+ self.logDebug("API Response: " + res)
+ return json_loads(res)
+
def process(self, pyfile):
# match is guaranteed because plugin was chosen to handle url
- node = re.match(self.__pattern__, pyfile.url).group(1)
+ node = re.match(self.__pattern__, pyfile.url).group(0)
# get Mega.co.nz link info
- info = self.callApi(link=node, m="info")
+ info = self.api_response(link=node, m="info")
# get crypted file URL
- dl = self.callApi(link=node, m="dl")
+ dl = self.api_response(link=node, m="dl")
# TODO: map error codes, implement password protection
# if info['pass'] is True:
@@ -44,6 +50,7 @@ class MegacrypterCom(MegaNz):
pyfile.name = info['name'] + self.FILE_SUFFIX
self.download(dl['url'])
+
self.decryptFile(key)
# Everything is finished and final name can be set