From 61b81558a54837b7ed32ec22f2cf21a8f6b665d7 Mon Sep 17 00:00:00 2001
From: Stefano <l.stickell@yahoo.it>
Date: Thu, 5 Dec 2013 16:26:04 +0100
Subject: HotfileCom: marked as dead

---
 module/plugins/hoster/HotfileCom.py | 130 ++----------------------------------
 1 file changed, 4 insertions(+), 126 deletions(-)

(limited to 'module/plugins/hoster')

diff --git a/module/plugins/hoster/HotfileCom.py b/module/plugins/hoster/HotfileCom.py
index 6c51ef03d..c7dd1d1a1 100644
--- a/module/plugins/hoster/HotfileCom.py
+++ b/module/plugins/hoster/HotfileCom.py
@@ -1,138 +1,16 @@
-#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import re
-from module.plugins.Hoster import Hoster
-from module.plugins.internal.CaptchaService import ReCaptcha
+from module.plugins.internal.DeadHoster import DeadHoster, create_getInfo
 
-from module.network.RequestFactory import getURL
-from module.plugins.Plugin import chunks
 
-
-def getInfo(urls):
-    api_url_base = "http://api.hotfile.com/"
-
-    for chunk in chunks(urls, 90):
-        api_param_file = {"action": "checklinks", "links": ",".join(chunk),
-                          "fields": "id,status,name,size"}  #api only supports old style links
-        src = getURL(api_url_base, post=api_param_file, decode=True)
-        result = []
-        for i, res in enumerate(src.split("\n")):
-            if not res:
-                continue
-            fields = res.split(",")
-
-            if fields[1] in ("1", "2"):
-                status = 2
-            else:
-                status = 1
-
-            result.append((fields[2], int(fields[3]), status, chunk[i]))
-        yield result
-
-
-class HotfileCom(Hoster):
+class HotfileCom(DeadHoster):
     __name__ = "HotfileCom"
     __type__ = "hoster"
     __pattern__ = r"https?://(www.)?hotfile\.com/dl/\d+/[0-9a-zA-Z]+/"
-    __version__ = "0.36"
+    __version__ = "0.37"
     __description__ = """Hotfile.com Download Hoster"""
     __author_name__ = ("sitacuisses", "spoob", "mkaay", "JoKoT3")
     __author_mail__ = ("sitacuisses@yhoo.de", "spoob@pyload.org", "mkaay@mkaay.de", "jokot3@gmail.com")
 
-    FILE_OFFLINE_PATTERN = r'File is removed'
-
-    def setup(self):
-        self.html = [None, None]
-        self.htmlwithlink = None
-        self.url = None
-
-        if self.premium:
-            self.multiDL = self.resumeDownload = True
-            self.chunkLimit = -1
-        else:
-            self.multiDL = False
-            self.chunkLimit = 1
-
-    def apiCall(self, method, post, login=False):
-        if not self.account and login:
-            return
-        elif self.account and login:
-            return self.account.apiCall(method, post, self.user)
-        post.update({"action": method})
-        return self.load("http://api.hotfile.com/", post=post, decode=True)
-
-    def process(self, pyfile):
-        self.wantReconnect = False
-
-        args = {"links": self.pyfile.url, "fields": "id,status,name,size,sha1"}
-        resp = self.apiCall("checklinks", args)
-        self.api_data = {}
-        for k, v in zip(args["fields"].split(","), resp.strip().split(",")):
-            self.api_data[k] = v
-
-        if self.api_data["status"] == "0":
-            self.offline()
-
-        pyfile.name = self.api_data["name"]
-
-        if not self.premium:
-            self.downloadHTML()
-
-            if self.FILE_OFFLINE_PATTERN in self.html[0]:
-                self.offline()
-
-            self.setWait(self.getWaitTime())
-            self.wait()
-
-            self.freeDownload()
-        else:
-            dl = self.account.apiCall("getdirectdownloadlink", {"link": self.pyfile.url}, self.user)
-            #dl = unquote(dl).strip()  <- Made problems
-            dl = dl.strip()
-            self.download(dl)
-
-    def downloadHTML(self):
-        self.html[0] = self.load(self.pyfile.url, get={"lang": "en"})
-
-    def freeDownload(self):
-
-        form_content = re.search(r"<form style=.*(\n<.*>\s*)*?[\n\t]?<tr>", self.html[0])
-        if form_content is None:
-            print self.html[0]
-            self.fail("Form not found in HTML. Can not proceed.")
-
-        form_content = form_content.group(0)
-        form_posts = dict(re.findall(r"<input\stype=hidden\sname=(\S*)\svalue=(\S*)>", form_content))
-
-        self.html[1] = self.load(self.pyfile.url, post=form_posts)
-
-        challenge = re.search(r"http://api\.recaptcha\.net/challenge\?k=([0-9A-Za-z]+)", self.html[1])
-
-        if challenge:
-            re_captcha = ReCaptcha(self)
-            challenge, result = re_captcha.challenge(challenge.group(1))
-
-            url = re.search(r'<form action="(/dl/[^"]+)', self.html[1])
-
-            self.html[1] = self.load("http://hotfile.com" + url.group(1), post={"action": "checkcaptcha",
-                                                                                "recaptcha_challenge_field": challenge,
-                                                                                "recaptcha_response_field": result})
-
-            if "Wrong Code. Please try again." in self.html[1]:
-                self.freeDownload()
-                return
-
-        file_url = re.search(r'a href="(http://hotfile\.com/get/\S*)"', self.html[1]).group(1)
-        self.download(file_url)
 
-    def getWaitTime(self):
-        free_limit_pattern = re.compile(r"timerend=d\.getTime\(\)\+(\d+);")
-        matches = free_limit_pattern.findall(self.html[0])
-        if matches:
-            wait_time = (sum([int(match) for match in matches]) / 1000) or 60
-            if wait_time > 300:
-                self.wantReconnect = True
-            return wait_time + 1
-        else:
-            self.fail("Don't know how long to wait. Cannot proceed.")
+getInfo = create_getInfo(HotfileCom)
-- 
cgit v1.2.3