# -*- coding: utf-8 -*- from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, parseFileInfo from module.plugins.ReCaptcha import ReCaptcha import re def to_seconds(m): minutes = int(m['m']) if m['m'] else 0 seconds = int(m['s']) if m['s'] else 0 return minutes * 60 + seconds class EgoFilesCom(SimpleHoster): __name__ = "EgoFilesCom" __type__ = "hoster" __pattern__ = r"https?://(www\.)?egofiles.com/(\w+)" __version__ = "0.01" __description__ = """Egofiles.com Download Hoster""" __author_name__ = ("stickell") __author_mail__ = ("l.stickell@yahoo.it") FILE_INFO_PATTERN = r'
\s+(?P\S+)\s+
\s+File size: (?P[\w.]+) (?P\w+) \|' WAIT_TIME_PATTERN = r'For next free download you have to wait ((?P\d*)m)? ?((?P\d+)s)?' RECAPTCHA_KEY = '6LeXatQSAAAAAHezcjXyWAni-4t302TeYe7_gfvX' def init(self): self.file_info = {} # Set English language self.load("https://egofiles.com/ajax/lang.php?lang=en", just_header=True) def handleFree(self): self.html = self.load(self.pyfile.url, decode=True) # Wait time between free downloads if 'For next free download you have to wait' in self.html: m = re.search(self.WAIT_TIME_PATTERN, self.html) self.setWait(to_seconds(m.groupdict()), True) self.wait() downloadURL = '' recaptcha = ReCaptcha(self) for i in xrange(5): challenge, response = recaptcha.challenge(self.RECAPTCHA_KEY) post_data = {'recaptcha_challenge_field': challenge, 'recaptcha_response_field': response} self.html = self.load(self.pyfile.url, post=post_data, decode=True) m = re.search(r'Download >', self.html) if not m: self.logError('Wrong captcha') self.invalidCaptcha() elif hasattr(m, 'group'): downloadURL = m.group('link') self.correctCaptcha() break else: self.fail('Unknown error - Plugin may be out of date') if not downloadURL: self.fail("No Download url retrieved/all captcha attempts failed") self.download(downloadURL) getInfo = create_getInfo(EgoFilesCom)