From 4cb0beaccdd33940a7d640acb688e0673d356f36 Mon Sep 17 00:00:00 2001 From: zoidberg10 Date: Tue, 22 Nov 2011 15:51:43 +0100 Subject: add 2shared.com --- module/plugins/hoster/TwoSharedCom.py | 30 ++++++++++++++++++++++++++++++ module/plugins/internal/SimpleHoster.py | 11 +++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 module/plugins/hoster/TwoSharedCom.py (limited to 'module/plugins') 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'File size:\s*(?P[0-9,.]+) (?P[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 -- cgit v1.2.3