summaryrefslogtreecommitdiffstats
path: root/module/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins')
-rw-r--r--module/plugins/container/TXT.py (renamed from module/plugins/container/LinkList.py)14
-rw-r--r--module/plugins/hooks/ClickAndLoad.py82
-rw-r--r--module/plugins/hooks/XFileSharingPro.py4
-rw-r--r--module/plugins/hoster/HundredEightyUploadCom.py4
-rw-r--r--module/plugins/hoster/ZippyshareCom.py8
5 files changed, 41 insertions, 71 deletions
diff --git a/module/plugins/container/LinkList.py b/module/plugins/container/TXT.py
index ccb9b2fa3..585da8ac6 100644
--- a/module/plugins/container/LinkList.py
+++ b/module/plugins/container/TXT.py
@@ -6,16 +6,16 @@ from module.plugins.Container import Container
from module.utils import fs_encode
-class LinkList(Container):
- __name__ = "LinkList"
+class TXT(Container):
+ __name__ = "TXT"
__type__ = "container"
- __version__ = "0.14"
+ __version__ = "0.15"
- __pattern__ = r'.+\.txt$'
- __config__ = [("flush" , "bool" , "Flush list after adding", False ),
- ("encoding", "string", "File encoding" , "utf-8")]
+ __pattern__ = r'.+\.(txt|text)$'
+ __config__ = [("flush" , "bool" , "Flush list after adding", False ),
+ ("encoding", "string", "File encoding" , "utf-8")]
- __description__ = """Read link lists in txt format"""
+ __description__ = """Read link lists in plain text formats"""
__license__ = "GPLv3"
__authors__ = [("spoob", "spoob@pyload.org"),
("jeix", "jeix@hasnomail.com")]
diff --git a/module/plugins/hooks/ClickAndLoad.py b/module/plugins/hooks/ClickAndLoad.py
index 8b53872e4..6691bb1fe 100644
--- a/module/plugins/hooks/ClickAndLoad.py
+++ b/module/plugins/hooks/ClickAndLoad.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import socket
+import time
from threading import Lock
@@ -18,44 +19,11 @@ def forward(source, destination):
destination.shutdown(socket.SHUT_WR)
-#: create_connection wrapper for python 2.5 socket module
-def create_connection(address, timeout=object(), source_address=None):
- if hasattr(socket, 'create_connection'):
- if type(timeout) == object:
- timeout = socket._GLOBAL_DEFAULT_TIMEOUT
-
- return socket.create_connection(address, timeout, source_address)
-
- else:
- host, port = address
- err = None
- for res in getaddrinfo(host, port, 0, SOCK_STREAM):
- af, socktype, proto, canonname, sa = res
- sock = None
- try:
- sock = socket(af, socktype, proto)
- if type(timeout) != object:
- sock.settimeout(timeout)
- if source_address:
- sock.bind(source_address)
- sock.connect(sa)
- return sock
-
- except socket.error, _:
- err = _
- if sock is not None:
- sock.close()
-
- if err is not None:
- raise err
- else:
- raise socket.error("getaddrinfo returns an empty list")
-
-
+#@TODO: IPv6 support
class ClickAndLoad(Hook):
__name__ = "ClickAndLoad"
__type__ = "hook"
- __version__ = "0.35"
+ __version__ = "0.37"
__config__ = [("activated", "bool", "Activated" , True),
("port" , "int" , "Port" , 9666),
@@ -76,7 +44,7 @@ class ClickAndLoad(Hook):
if not self.config['webinterface']['activated']:
return
- ip = socket.gethostbyname(socket.gethostname()) if self.getConfig("extern") else "127.0.0.1"
+ ip = "" if self.getConfig("extern") else "127.0.0.1"
webport = int(self.config['webinterface']['port'])
cnlport = self.getConfig('port')
@@ -85,6 +53,7 @@ class ClickAndLoad(Hook):
@threaded
def proxy(self, ip, webport, cnlport):
+ self.logInfo(_("Proxy listening on %s:%s") % (ip, cnlport))
self.manager.startThread(self._server, ip, webport, cnlport)
lock = Lock()
lock.acquire()
@@ -93,32 +62,31 @@ class ClickAndLoad(Hook):
def _server(self, ip, webport, cnlport, thread):
try:
- server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- server_socket.bind((ip, cnlport))
- server_socket.listen(5)
+ try:
+ server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- while True:
- client_socket = server_socket.accept()[0]
- dock_socket = create_connection(("127.0.0.1", webport))
+ server_socket.bind((ip, cnlport))
+ server_socket.listen(5)
- self.manager.startThread(forward, dock_socket, client_socket)
- self.manager.startThread(forward, client_socket, dock_socket)
+ while True:
+ client_socket = server_socket.accept()[0]
+ dock_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- except socket.error, e:
- self.logDebug(e)
- self._server(ip, webport, cnlport, thread)
+ dock_socket.connect(("127.0.0.1", webport))
- except Exception, e:
- self.logError(e)
+ self.manager.startThread(forward, dock_socket, client_socket)
+ self.manager.startThread(forward, client_socket, dock_socket)
- try:
+ except socket.timeout:
+ self.logDebug("Connection timed out, retrying...")
+ return self._server(ip, webport, cnlport, thread)
+
+ finally:
+ server_socket.close()
client_socket.close()
dock_socket.close()
- except Exception:
- pass
- try:
- server_socket.close()
- except Exception:
- pass
+ except socket.error, e:
+ self.logError(e)
+ time.sleep(120)
+ self._server(ip, webport, cnlport, thread)
diff --git a/module/plugins/hooks/XFileSharingPro.py b/module/plugins/hooks/XFileSharingPro.py
index a1ee7f5ef..495140652 100644
--- a/module/plugins/hooks/XFileSharingPro.py
+++ b/module/plugins/hooks/XFileSharingPro.py
@@ -8,7 +8,7 @@ from module.plugins.Hook import Hook
class XFileSharingPro(Hook):
__name__ = "XFileSharingPro"
__type__ = "hook"
- __version__ = "0.31"
+ __version__ = "0.32"
__config__ = [("activated" , "bool", "Activated" , True ),
("use_hoster_list" , "bool", "Load listed hosters only" , False),
@@ -29,7 +29,7 @@ class XFileSharingPro(Hook):
r'https?://(?:[^/]+\.)?(?P<DOMAIN>%s)/(?:user|folder)s?/\w+')}
HOSTER_BUILTIN = [#WORKING HOSTERS:
- "180upload.com", "backin.net", "eyesfile.ca", "file4safe.com", "fileband.com", "filedwon.com",
+ "backin.net", "eyesfile.ca", "file4safe.com", "fileband.com", "filedwon.com",
"fileparadox.in", "filevice.com", "hostingbulk.com", "junkyvideo.com", "linestorage.com", "ravishare.com",
"ryushare.com", "salefiles.com", "sendmyway.com", "sharesix.com", "thefile.me", "verzend.be", "xvidstage.com",
#NOT TESTED:
diff --git a/module/plugins/hoster/HundredEightyUploadCom.py b/module/plugins/hoster/HundredEightyUploadCom.py
index 32d36ddb9..2a35a008f 100644
--- a/module/plugins/hoster/HundredEightyUploadCom.py
+++ b/module/plugins/hoster/HundredEightyUploadCom.py
@@ -6,7 +6,7 @@ from module.plugins.internal.XFSHoster import XFSHoster, create_getInfo
class HundredEightyUploadCom(XFSHoster):
__name__ = "HundredEightyUploadCom"
__type__ = "hoster"
- __version__ = "0.04"
+ __version__ = "0.05"
__pattern__ = r'http://(?:www\.)?180upload\.com/\w{12}'
@@ -15,5 +15,7 @@ class HundredEightyUploadCom(XFSHoster):
__authors__ = [("stickell", "l.stickell@yahoo.it")]
+ OFFLINE_PATTERN = r'>File Not Found'
+
getInfo = create_getInfo(HundredEightyUploadCom)
diff --git a/module/plugins/hoster/ZippyshareCom.py b/module/plugins/hoster/ZippyshareCom.py
index a43f70cbd..615559989 100644
--- a/module/plugins/hoster/ZippyshareCom.py
+++ b/module/plugins/hoster/ZippyshareCom.py
@@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
class ZippyshareCom(SimpleHoster):
__name__ = "ZippyshareCom"
__type__ = "hoster"
- __version__ = "0.72"
+ __version__ = "0.73"
__pattern__ = r'http://www\d{0,2}\.zippyshare\.com/v(/|iew\.jsp.*key=)(?P<KEY>[\w^_]+)'
@@ -51,9 +51,9 @@ class ZippyshareCom(SimpleHoster):
def get_checksum(self):
try:
- n = 2
- b = int(re.search(r'var b = (\d+)', self.html).group(1))
- checksum = int("%d3" % (n + n * 2 + b))
+ b1 = eval(re.search(r'\.omg = (.+?);', self.html).group(1))
+ b2 = eval(re.search(r'\* \((.+?)\)', self.html).group(1))
+ checksum = b1 * b2 + 18
except Exception:
self.error(_("Unable to calculate checksum"))