summaryrefslogtreecommitdiffstats
path: root/module/plugins
diff options
context:
space:
mode:
authorGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-06-08 05:49:47 +0200
committerGravatar Walter Purcaro <vuolter@users.noreply.github.com> 2015-06-08 05:49:47 +0200
commit45b6242579ac65444fd278e5ecde96be29136bbe (patch)
treefb3fb8e65977b2f5c6d889bce4271e5322055a2c /module/plugins
parent[FreeWayMe] Fixup (diff)
downloadpyload-45b6242579ac65444fd278e5ecde96be29136bbe.tar.xz
New plugins: FiledropperCom & FileuploadNet
Diffstat (limited to 'module/plugins')
-rw-r--r--module/plugins/accounts/SharebeastCom.py16
-rw-r--r--module/plugins/hooks/XFileSharingPro.py15
-rw-r--r--module/plugins/hoster/FiledropperCom.py46
-rw-r--r--module/plugins/hoster/FileuploadNet.py32
-rw-r--r--module/plugins/hoster/PromptfileCom.py12
5 files changed, 108 insertions, 13 deletions
diff --git a/module/plugins/accounts/SharebeastCom.py b/module/plugins/accounts/SharebeastCom.py
new file mode 100644
index 000000000..d233ffd37
--- /dev/null
+++ b/module/plugins/accounts/SharebeastCom.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+
+from module.plugins.internal.XFSAccount import XFSAccount
+
+
+class SharebeastCom(XFSAccount):
+ __name__ = "SharebeastCom"
+ __type__ = "account"
+ __version__ = "0.01"
+
+ __description__ = """Sharebeast.com account plugin"""
+ __license__ = "GPLv3"
+ __authors__ = [("Walter Purcaro", "vuolter@gmail.com")]
+
+
+ HOSTER_DOMAIN = "sharebeast.com"
diff --git a/module/plugins/hooks/XFileSharingPro.py b/module/plugins/hooks/XFileSharingPro.py
index 62872992c..485d4ce78 100644
--- a/module/plugins/hooks/XFileSharingPro.py
+++ b/module/plugins/hooks/XFileSharingPro.py
@@ -29,13 +29,16 @@ class XFileSharingPro(Hook):
r'https?://(?:[^/]+\.)?(?P<DOMAIN>%s)/(?:user|folder)s?/\w+')}
HOSTER_BUILTIN = [#WORKING HOSTERS:
- "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", "worldbytez.com", "xvidstage.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", "sharebeast.com", "sharesix.com",
+ "thefile.me", "verzend.be", "worldbytez.com", "xvidstage.com",
#NOT TESTED:
- "101shared.com", "4upfiles.com", "filemaze.ws", "filenuke.com", "linkzhost.com", "mightyupload.com",
- "rockdizfile.com", "sharebeast.com", "sharerepo.com", "shareswift.com", "uploadbaz.com", "uploadc.com",
- "vidbull.com", "zalaa.com", "zomgupload.com",
+ "101shared.com", "4upfiles.com", "filemaze.ws", "filenuke.com",
+ "linkzhost.com", "mightyupload.com", "rockdizfile.com", "sharerepo.com",
+ "shareswift.com", "uploadbaz.com", "uploadc.com", "vidbull.com",
+ "zalaa.com", "zomgupload.com",
#NOT WORKING:
"amonshare.com", "banicrazy.info", "boosterking.com", "host4desi.com", "laoupload.com", "rd-fs.com"]
CRYPTER_BUILTIN = ["junocloud.me", "rapidfileshare.net"]
diff --git a/module/plugins/hoster/FiledropperCom.py b/module/plugins/hoster/FiledropperCom.py
new file mode 100644
index 000000000..73bab2d64
--- /dev/null
+++ b/module/plugins/hoster/FiledropperCom.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+
+import re
+import urlparse
+
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
+
+
+class FiledropperCom(SimpleHoster):
+ __name__ = "FiledropperCom"
+ __type__ = "hoster"
+ __version__ = "0.01"
+
+ __pattern__ = r'https?://(?:www\.)?filedropper\.com/\w+'
+
+ __description__ = """Filedropper.com hoster plugin"""
+ __license__ = "GPLv3"
+ __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")]
+
+
+ NAME_PATTERN = r'Filename: (?P<N>.+?) <'
+ SIZE_PATTERN = r'Size: (?P<S>[\d.,]+) (?P<U>[\w^_]+),' #@NOTE: Website says always 0 KB
+ OFFLINE_PATTERN = r'value="a\.swf"'
+
+
+ def setup(self):
+ self.multiDL = False
+ self.chunkLimit = 1
+
+
+ def handleFree(self, pyfile):
+ m = re.search(r'img id="img" src="(.+?)"', self.html)
+ if m is None:
+ self.fail("Captcha not found")
+
+ captcha_code = self.decryptCaptcha("http://www.filedropper.com/%s" % m.group(1))
+
+ m = re.search(r'method="post" action="(.+?)"', self.html)
+ if m is None:
+ self.fail("Download link not found")
+
+ self.download(urlparse.urljoin("http://www.filedropper.com/", m.group(1)),
+ post={'code': captcha_code})
+
+
+getInfo = create_getInfo(FiledropperCom)
diff --git a/module/plugins/hoster/FileuploadNet.py b/module/plugins/hoster/FileuploadNet.py
new file mode 100644
index 000000000..0f2875318
--- /dev/null
+++ b/module/plugins/hoster/FileuploadNet.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+
+import re
+
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
+
+
+class FileuploadNet(SimpleHoster):
+ __name__ = "FileuploadNet"
+ __type__ = "hoster"
+ __version__ = "0.02"
+
+ __pattern__ = r'https?://(?:www\.)?(en\.)?file-upload\.net/download-\d+/.+'
+
+ __description__ = """File-upload.net hoster plugin"""
+ __license__ = "GPLv3"
+ __authors__ = [("zapp-brannigan", "fuerst.reinje@web.de")]
+
+
+ NAME_PATTERN = r'<title>File-Upload.net - (?P<N>.+?)<'
+ SIZE_PATTERN = r'</label><span>(?P<S>[\d.,]+) (?P<U>[\w^_]+)'
+ OFFLINE_PATTERN = r'Datei existiert nicht'
+
+ LINK_FREE_PATTERN = r"<a href='(.+?)' title='download' onclick"
+
+
+ def setup(self):
+ self.multiDL = True
+ self.chunkLimit = 1
+
+
+getInfo = create_getInfo(FileuploadNet)
diff --git a/module/plugins/hoster/PromptfileCom.py b/module/plugins/hoster/PromptfileCom.py
index 3815a1a24..3578ff7fb 100644
--- a/module/plugins/hoster/PromptfileCom.py
+++ b/module/plugins/hoster/PromptfileCom.py
@@ -18,10 +18,10 @@ class PromptfileCom(SimpleHoster):
__authors__ = [("igel", "igelkun@myopera.com")]
- INFO_PATTERN = r'<span style=".+?" title=".+?">(?P<N>.*?) \((?P<S>[\d.,]+) (?P<U>[\w^_]+)\)</span>'
+ INFO_PATTERN = r'<span style=".+?" title=".+?">(?P<N>.*?) \((?P<S>[\d.,]+) (?P<U>[\w^_]+)\)</span>'
OFFLINE_PATTERN = r'<span style=".+?" title="File Not Found">File Not Found</span>'
- CHASH_PATTERN = r'<input type="hidden" name="chash" value="(.+?)" />'
+ CHASH_PATTERN = r'<input type="hidden" name="chash" value="(.+?)" />'
LINK_FREE_PATTERN = r'<a href=\"(.+)\" target=\"_blank\" class=\"view_dl_link\">Download File</a>'
@@ -30,17 +30,15 @@ class PromptfileCom(SimpleHoster):
m = re.search(self.CHASH_PATTERN, self.html)
if m is None:
self.error(_("CHASH_PATTERN not found"))
+
chash = m.group(1)
self.logDebug("Read chash %s" % chash)
+
# continue to stage2
self.html = self.load(pyfile.url, decode=True, post={'chash': chash})
# STAGE 2: get the direct link
- m = re.search(self.LINK_FREE_PATTERN, self.html)
- if m is None:
- self.error(_("LINK_FREE_PATTERN not found"))
-
- self.link = m.group(1)
+ return super(PromptfileCom, self).handleFree(pyfile)
getInfo = create_getInfo(PromptfileCom)