diff options
Diffstat (limited to 'module/plugins/hoster/ShareRapidCom.py')
-rw-r--r-- | module/plugins/hoster/ShareRapidCom.py | 55 |
1 files changed, 32 insertions, 23 deletions
diff --git a/module/plugins/hoster/ShareRapidCom.py b/module/plugins/hoster/ShareRapidCom.py index 96962cffe..ce1912d38 100644 --- a/module/plugins/hoster/ShareRapidCom.py +++ b/module/plugins/hoster/ShareRapidCom.py @@ -2,44 +2,53 @@ # -*- coding: utf-8 -*- import re +from pycurl import HTTPHEADER +from module.network.RequestFactory import getRequest from module.plugins.Hoster import Hoster -from module.network.RequestFactory import getURL def getInfo(urls): result = [] - for url in urls: - html = getURL(url, decode=True) - if re.search(ShareRapidCom.FILE_OFFLINE_PATTERN, html): - # File offline - result.append((url, 0, 1, url)) - else: - # Get file info - name, size = url, 0 - - found = re.search(ShareRapidCom.FILE_SIZE_PATTERN, html) - if found is not None: - size, units = found.groups() - size = float(size) * 1024 ** {'kB': 1, 'MB': 2, 'GB': 3}[units] + for url in urls: + h = getRequest() + try: + h.c.setopt(HTTPHEADER, ["Accept: text/html"]) + html = h.load(url, cookies = True, decode = True) - found = re.search(ShareRapidCom.FILE_NAME_PATTERN, html) - if found is not None: - name = found.group(1) - - if found or size > 0: - result.append((name, size, 2, url)) + if re.search(ShareRapidCom.FILE_OFFLINE_PATTERN, html): + # File offline + result.append((url, 0, 1, url)) + else: + # Get file info + name, size = url, 0 + + found = re.search(ShareRapidCom.FILE_SIZE_PATTERN, html) + if found is not None: + size, units = found.groups() + size = float(size) * 1024 ** {'kB': 1, 'MB': 2, 'GB': 3}[units] + + found = re.search(ShareRapidCom.FILE_NAME_INFO_PATTERN, html) + if found is not None: + name = found.group(1) + + if found or size > 0: + result.append((name, size, 2, url)) + finally: + h.close() + yield result class ShareRapidCom(Hoster): __name__ = "ShareRapidCom" __type__ = "hoster" - __pattern__ = r"http://(?:www\.)?share-rapid\.(com|cz)/" - __version__ = "0.3" - __description__ = """share-rapid Plugin""" + __pattern__ = r"http://(?:www\.)?((share(-?rapid\.(biz|com|cz|info|eu|net|org|pl|sk)|-(central|credit|free|net)\.cz|-ms\.net)|(s-?rapid|rapids)\.(cz|sk))|(e-stahuj|mediatack|premium-rapidshare|rapidshare-premium|qiuck)\.cz|kadzet\.com|stahuj-zdarma\.eu|strelci\.net|universal-share\.com)/.*" + __version__ = "0.4" + __description__ = """Share-rapid.com plugin - premium only""" __author_name__ = ("MikyWoW", "zoidberg") __author_mail__ = ("MikyWoW@seznam.cz", "zoidberg@mujmail.cz") FILE_NAME_PATTERN = r'<h3>([^<]+)</h3>' + FILE_NAME_INFO_PATTERN = r'<h1[^>]*><span[^>]*>([^<]+)</ br> </h1>' FILE_SIZE_PATTERN = r'<td class="i">Velikost:</td>\s*<td class="h"><strong>\s*([0-9.]+) (kB|MB|GB)</strong></td>' DOWNLOAD_URL_PATTERN = r'<a href="([^"]+)" title="Stahnout">([^<]+)</a>' ERR_LOGIN_PATTERN = ur'<div class="error_div"><strong>Stahování je přístupné pouze přihlášeným uživatelům' |