import re import urllib from module.plugins.Crypter import Crypter from module.lib.BeautifulSoup import BeautifulSoup class ILoadTo(Crypter): __name__ = "ILoadTo" __type__ = "crypter" __pattern__ = r"http://iload\.to/go/\d+-[\w\.-]+/" __config__ = [] __version__ = "0.1" __description__ = """iload.to Crypter Plugin""" __author_name__ = ("hzpz") __author_mail__ = ("none") def decrypt(self, pyfile): url = pyfile.url src = self.req.load(str(url)) soup = BeautifulSoup(src) # find captcha URL and decrypt captchaTag = soup.find("img", attrs={"id": "Captcha"}) if not captchaTag: self.fail("Cannot find Captcha") captchaUrl = "http://iload.to" + captchaTag["src"] self.logDebug("Captcha URL: %s" % captchaUrl) result = self.decryptCaptcha(str(captchaUrl)) # find captcha form URL formTag = soup.find("form", attrs={"id": "CaptchaForm"}) formUrl = "http://iload.to" + formTag["action"] self.logDebug("Form URL: %s" % formUrl) # submit decrypted captcha self.req.lastURL = url src = self.req.load(str(formUrl), post={'captcha': result}) # find decrypted links links = re.findall(r"", src) if not len(links) > 0: self.retry() self.correctCaptcha() cleanedLinks = [] for link in links: if link.startswith("http://dontknow.me/at/?"): cleanedLink = urllib.unquote(link[23:]) else: cleanedLink = link self.logDebug("Link: %s" % cleanedLink) cleanedLinks.append(cleanedLink) self.logDebug("Decrypted %d links" % len(links)) self.pyfile.package().password = "iload.to" self.packages.append((self.pyfile.package().name, cleanedLinks, self.pyfile.package().folder))