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() | 
