From acc46fc3497a66a427b795b4a22c6e71d69185a1 Mon Sep 17 00:00:00 2001
From: Walter Purcaro <vuolter@gmail.com>
Date: Sat, 13 Dec 2014 15:56:57 +0100
Subject: Update

---
 pyload/plugin/hoster/LoadTo.py | 75 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 pyload/plugin/hoster/LoadTo.py

(limited to 'pyload/plugin/hoster/LoadTo.py')

diff --git a/pyload/plugin/hoster/LoadTo.py b/pyload/plugin/hoster/LoadTo.py
new file mode 100644
index 000000000..14341ac6a
--- /dev/null
+++ b/pyload/plugin/hoster/LoadTo.py
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+#
+# Test links:
+# http://www.load.to/JWydcofUY6/random.bin
+# http://www.load.to/oeSmrfkXE/random100.bin
+
+import re
+
+from pyload.plugin.internal.captcha import SolveMedia
+from pyload.plugin.internal.SimpleHoster import SimpleHoster, create_getInfo
+
+
+class LoadTo(SimpleHoster):
+    __name    = "LoadTo"
+    __type    = "hoster"
+    __version = "0.18"
+
+    __pattern = r'http://(?:www\.)?load\.to/\w+'
+
+    __description = """Load.to hoster plugin"""
+    __license     = "GPLv3"
+    __authors     = [("halfman", "Pulpan3@gmail.com"),
+                       ("stickell", "l.stickell@yahoo.it")]
+
+
+    NAME_PATTERN = r'<h1>(?P<N>.+)</h1>'
+    SIZE_PATTERN = r'Size: (?P<S>[\d.,]+) (?P<U>[\w^_]+)'
+    OFFLINE_PATTERN = r'>Can\'t find file'
+
+    LINK_PATTERN = r'<form method="post" action="(.+?)"'
+    WAIT_PATTERN = r'type="submit" value="Download \((\d+)\)"'
+
+    URL_REPLACEMENTS = [(r'(\w)$', r'\1/')]
+
+
+    def setup(self):
+        self.multiDL = True
+        self.chunkLimit = 1
+
+
+    def handleFree(self):
+        # Search for Download URL
+        m = re.search(self.LINK_PATTERN, self.html)
+        if m is None:
+            self.error(_("LINK_PATTERN not found"))
+
+        download_url = m.group(1)
+
+        # Set Timer - may be obsolete
+        m = re.search(self.WAIT_PATTERN, self.html)
+        if m:
+            self.wait(int(m.group(1)))
+
+        # Load.to is using solvemedia captchas since ~july 2014:
+        solvemedia = SolveMedia(self)
+        captcha_key = solvemedia.detect_key()
+
+        if captcha_key is None:
+            self.download(download_url)
+        else:
+            challenge, response = solvemedia.challenge(captcha_key)
+
+            self.download(download_url, post={"adcopy_challenge": challenge, "adcopy_response": response})
+
+            check = self.checkDownload({'404': re.compile("\A<h1>404 Not Found</h1>"), 'html': re.compile("html")})
+
+            if check == "404":
+                self.invalidCaptcha()
+                self.retry()
+            elif check == "html":
+                self.logWarning(_("Downloaded file is an html page, will retry"))
+                self.retry()
+
+
+getInfo = create_getInfo(LoadTo)
-- 
cgit v1.2.3