summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar zoidberg10 <zoidberg@mujmail.cz> 2011-11-22 15:51:43 +0100
committerGravatar zoidberg10 <zoidberg@mujmail.cz> 2011-11-22 15:51:43 +0100
commit4cb0beaccdd33940a7d640acb688e0673d356f36 (patch)
treecf5e3a24609c91a3a58496b6c0b8965563fcc734
parentfix filepost (#431), hellspy, ifolder, letitbit, change SimpleHoster patterns (diff)
downloadpyload-4cb0beaccdd33940a7d640acb688e0673d356f36.tar.xz
add 2shared.com
-rw-r--r--module/plugins/hoster/TwoSharedCom.py30
-rw-r--r--module/plugins/internal/SimpleHoster.py11
2 files changed, 39 insertions, 2 deletions
diff --git a/module/plugins/hoster/TwoSharedCom.py b/module/plugins/hoster/TwoSharedCom.py
new file mode 100644
index 000000000..89c4b7781
--- /dev/null
+++ b/module/plugins/hoster/TwoSharedCom.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
+import re
+
+class TwoSharedCom(SimpleHoster):
+ __name__ = "TwoSharedCom"
+ __type__ = "hoster"
+ __pattern__ = r"http://[\w\.]*?2shared.com/(account/)?(download|get|file|document|photo|video|audio)/.*"
+ __version__ = "0.10"
+ __description__ = """2Shared Download Hoster"""
+ __author_name__ = ("zoidberg")
+ __author_mail__ = ("zoidberg@mujmail.cz")
+
+ FILE_NAME_PATTERN = r'<meta name="Description" content="(?P<N>.*) download free at 2shared'
+ FILE_SIZE_PATTERN = r'<span class="dtitle">File size:</span>\s*(?P<S>[0-9,.]+) (?P<U>[kKMG])i?B'
+ FILE_OFFLINE_PATTERN = r'The file link that you requested is not valid\.|This file was deleted\.'
+ DOWNLOAD_URL_PATTERN = r"window.location ='([^']+)';"
+
+ def handleFree(self):
+ found = re.search(self.DOWNLOAD_URL_PATTERN, self.html)
+ if not found: self.parseError('Download link')
+ link = found.group(1)
+ self.logDebug("Download URL %s" % link)
+
+ self.download(link)
+
+getInfo = create_getInfo(TwoSharedCom)
+ \ No newline at end of file
diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py
index 9eb9fd407..96824ffce 100644
--- a/module/plugins/internal/SimpleHoster.py
+++ b/module/plugins/internal/SimpleHoster.py
@@ -17,7 +17,7 @@
@author: zoidberg
"""
from urlparse import urlparse
-from re import search
+from re import search, sub
from module.plugins.Hoster import Hoster
from module.utils import html_unescape
@@ -52,7 +52,12 @@ def parseFileInfo(self, url = '', html = ''):
size = float(size) * 1024 ** self.SIZE_UNITS[units]
status = 2
- if not name: name = url
+ if name:
+ for r in self.NAME_REPLACEMENTS:
+ rf, rt = r
+ name = sub(rf, rt, name)
+ else:
+ name = url
return name, size, status, url
@@ -81,8 +86,10 @@ class SimpleHoster(Hoster):
__author_mail__ = ("zoidberg@mujmail.cz")
#TODO: could be replaced when using utils.parseFileSize ?
+ #some plugins need to override these
SIZE_UNITS = {'k': 1, 'K': 1, 'M': 2, 'G': 3}
SIZE_REPLACEMENTS = {',': '', ' ': ''}
+ NAME_REPLACEMENTS = []
def setup(self):
self.resumeDownload = self.multiDL = True if self.account else False