#!/usr/bin/env python # -*- coding: utf-8 -*- import re from module.plugins.Hoster import Hoster class DlFreeFr(Hoster): __name__ = "DlFreeFr" __type__ = "hoster" __pattern__ = r"http://dl\.free\.fr/([a-zA-Z0-9]+|getfile\.pl\?file=/[a-zA-Z0-9]+)$" __version__ = "0.1" __description__ = """dl.free.fr download hoster""" __author_name__ = ("the-razer") __author_mail__ = ("daniel_ AT gmx DOT net") def setup(self): self.html = None self.multiDL = False def process(self, pyfile): self.download_html() if not self.file_exists(): self.log.debug(self.__name__+": File not yet available.") self.offline() pyfile.name = self.get_file_name() url = self.get_file_url() if url: self.download(url) else: self.offline() def download_html(self): self.html = self.load(self.pyfile.url, cookies=False) def file_exists(self): warnings = (r"Erreur 404 - Document non trouv", r"Fichier inexistant.", r"Le fichier demandé n'a pas été trouvé") expr = '(' + '|'.join(warnings) + ')' if re.search(expr, self.html) is not None: return False return True def get_file_url(self): self.log.debug(self.__name__+": Getting file URL") file_url_pattern = r'href="(?Phttp://.*?)">Télécharger ce fichier' m = re.search(file_url_pattern, self.html) if m is not None: url = m.group('url') self.log.debug(self.__name__+": File URL [%s]" % url) return url else: self.log.debug(self.__name__+": Error getting URL") return False def get_file_name(self): self.log.debug(self.__name__+": Getting file name") file_name_pattern = r"Fichier:\s*(?P.*?)" m = re.search(file_name_pattern, self.html) if m is not None: name = m.group('name').strip() self.log.debug(self.__name__+": File name [%s]" % name) return name else: self.log.debug(self.__name__+": Could not find filename")