diff options
Diffstat (limited to 'module/plugins/hoster/IfolderRu.py')
-rw-r--r-- | module/plugins/hoster/IfolderRu.py | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/module/plugins/hoster/IfolderRu.py b/module/plugins/hoster/IfolderRu.py index b84f77c5c..a21cc748b 100644 --- a/module/plugins/hoster/IfolderRu.py +++ b/module/plugins/hoster/IfolderRu.py @@ -24,9 +24,9 @@ from module.network.RequestFactory import getURL class IfolderRu(SimpleHoster): __name__ = "IfolderRu" __type__ = "hoster" - __pattern__ = r"http://(?:[^.]*\.)?ifolder.ru/(\d+).*" - __version__ = "0.35" - __description__ = """ifolder.ru""" + __pattern__ = r"http://(?:[^.]*\.)?(?:ifolder.ru|rusfolder.com)/(?P<ID>\d+).*" + __version__ = "0.36" + __description__ = """rusfolder.com / ifolder.ru""" __author_name__ = ("zoidberg") __author_mail__ = ("zoidberg@mujmail.cz") @@ -35,9 +35,7 @@ class IfolderRu(SimpleHoster): FILE_SIZE_PATTERN = ur'(?:<div><span>)?Размер:(?:</span>)? <b>(?P<S>[^<]+)</b><(?:/div|br)>' FILE_OFFLINE_PATTERN = ur'<p>Файл номер <b>[^<]*</b> (не найден|удален) !!!</p>' - SESSION_ID_PATTERN = r'<a href=(http://ints.ifolder.ru/ints/sponsor/\?bi=\d*&session=([^&]+)&u=[^>]+)>' - FORM1_PATTERN = r'<form method=post name="form1" ID="Form1" style="margin-bottom:200px">(.*?)</form>' - FORM_INPUT_PATTERN = r'<input[^>]* name="?([^" ]+)"? value="?([^" ]+)"?[^>]*>' + SESSION_ID_PATTERN = r'<a href=(http://ints.(?:rusfolder.com|ifolder.ru)/ints/sponsor/\?bi=\d*&session=([^&]+)&u=[^>]+)>' INTS_SESSION_PATTERN = r'\(\'ints_session\'\);\s*if\(tag\)\{tag.value = "([^"]+)";\}' HIDDEN_INPUT_PATTERN = r"var v = .*?name='([^']+)' value='1'" DOWNLOAD_LINK_PATTERN = r'<a id="download_file_href" href="([^"]+)"' @@ -48,33 +46,30 @@ class IfolderRu(SimpleHoster): self.chunkLimit = 1 def process(self, pyfile): - file_id = re.search(self.__pattern__, pyfile.url).group(1) - self.html = self.load("http://ifolder.ru/%s" % file_id, cookies=True, decode=True) + file_id = re.search(self.__pattern__, pyfile.url).group('ID') + self.html = self.load("http://rusfolder.com/%s" % file_id, cookies=True, decode=True) self.getFileInfo() - url = "http://ints.ifolder.ru/ints/?ifolder.ru/%s?ints_code=" % file_id + url = "http://ints.rusfolder.com/ints/?rusfolder.com/%s?ints_code=" % file_id self.html = self.load(url, cookies=True, decode=True) url, session_id = re.search(self.SESSION_ID_PATTERN, self.html).groups() self.html = self.load(url, cookies=True, decode=True) - url = "http://ints.ifolder.ru/ints/frame/?session=%s" % session_id + url = "http://ints.rusfolder.com/ints/frame/?session=%s" % session_id self.html = self.load(url, cookies=True) self.setWait(31, False) self.wait() - captcha_url = "http://ints.ifolder.ru/random/images/?session=%s" % session_id + captcha_url = "http://ints.rusfolder.com/random/images/?session=%s" % session_id for i in range(5): - self.html = self.load(url, cookies=True) - - inputs = {} - form = re.search(self.FORM1_PATTERN, self.html, re.DOTALL).group(1) - inputs = dict(re.findall(self.FORM_INPUT_PATTERN, form)) - inputs['ints_session'] = re.search(self.INTS_SESSION_PATTERN, form).group(1) - inputs['Submit1'] = u"Подтвердить".encode("utf-8") + self.html = self.load(url, cookies=True) + action, inputs = self.parseHtmlForm('ID="Form1"') + inputs['ints_session'] = re.search(self.INTS_SESSION_PATTERN, self.html).group(1) inputs[re.search(self.HIDDEN_INPUT_PATTERN, self.html).group(1)] = '1' inputs['confirmed_number'] = self.decryptCaptcha(captcha_url, cookies = True) + inputs['action'] = '1' self.logDebug(inputs) self.html = self.load(url, decode = True, cookies = True, post = inputs) @@ -85,7 +80,7 @@ class IfolderRu(SimpleHoster): else: self.fail("Invalid captcha") - self.html = self.load("http://ifolder.ru/%s?ints_code=%s" % (file_id, session_id), decode=True, cookies = True) + self.html = self.load("http://rusfolder.com/%s?ints_code=%s" % (file_id, session_id), decode=True, cookies = True) download_url = re.search(self.DOWNLOAD_LINK_PATTERN, self.html).group(1) self.correctCaptcha() |