# -*- coding: utf-8 -*- import pycurl import re import time from module.plugins.internal.Account import Account class OneFichierCom(Account): __name__ = "OneFichierCom" __type__ = "account" __version__ = "0.14" __status__ = "testing" __description__ = """1fichier.com account plugin""" __license__ = "GPLv3" __authors__ = [("Elrick69", "elrick69[AT]rocketmail[DOT]com"), ("Walter Purcaro", "vuolter@gmail.com")] VALID_UNTIL_PATTERN = r'Your Premium Status will end the (\d+/\d+/\d+)' def parse_info(self, user, password, data, req): validuntil = None trafficleft = -1 premium = None html = self.load("https://1fichier.com/console/abo.pl") m = re.search(self.VALID_UNTIL_PATTERN, html) if m: expiredate = m.group(1) self.log_debug("Expire date: " + expiredate) try: validuntil = time.mktime(time.strptime(expiredate, "%d/%m/%Y")) except Exception, e: self.log_error(e) else: premium = True return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium or False} def login(self, user, password, data, req): req.http.c.setopt(pycurl.REFERER, "https://1fichier.com/login.pl?lg=en") html = self.load("https://1fichier.com/login.pl?lg=en", post={'mail' : user, 'pass' : password, 'It' : "on", 'purge' : "off", 'valider': "Send"}) if '>Invalid email address' in html or '>Invalid password' in html: self.fail()