From f871040ec1d4fdd2e921f202c6e72d212526c2df Mon Sep 17 00:00:00 2001 From: igel-kun Date: Mon, 31 Mar 2014 14:36:43 +0200 Subject: New hoster: PromptfileCom Merges #570 (cherry picked from commit e06897ae1df960fe98ecc78c999a6ebbb019020e) --- module/plugins/hoster/PromptfileCom.py | 56 ++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 module/plugins/hoster/PromptfileCom.py diff --git a/module/plugins/hoster/PromptfileCom.py b/module/plugins/hoster/PromptfileCom.py new file mode 100644 index 000000000..3580a9509 --- /dev/null +++ b/module/plugins/hoster/PromptfileCom.py @@ -0,0 +1,56 @@ +# -*- 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 . # +############################################################################ + +import re + +from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo + + +class PromptfileCom(SimpleHoster): + __name__ = "PromptfileCom" + __type__ = "hoster" + __pattern__ = r"https?://(?:www\.)?promptfile\.com/" + __version__ = "0.1" + __description__ = """Promptfile.Com File Download Hoster""" + __author_name__ = ("igel") + + FILE_INFO_PATTERN = r'(?P.*?) \((?P[\d.]+) (?P\w+)\)' + FILE_OFFLINE_PATTERN = r'File Not Found' + + CHASH_PATTERN = r'' + DIRECT_LINK_PATTERN = r"clip: {\s*url: '(https?://(?:www\.)promptfile[^']*)'," + + def handleFree(self): + # STAGE 1: get link to continue + m = re.search(self.CHASH_PATTERN, self.html) + if not m: + self.parseError("Unable to detect chash") + chash = m.group(1) + self.logDebug("read chash %s" % chash) + # continue to stage2 + self.html = self.load(self.pyfile.url, decode=True, post={'chash': chash}) + + # STAGE 2: get the direct link + m = re.search(self.DIRECT_LINK_PATTERN, self.html, re.MULTILINE | re.DOTALL) + if not m: + self.parseError("Unable to detect direct link") + direct = m.group(1) + self.logDebug('found direct link: ' + direct) + self.download(direct, disposition=True) + + +getInfo = create_getInfo(PromptfileCom) -- cgit v1.2.3