import os import argparse import logging from RAAspotter import RAAspotter from RAAspotter_ppparis import RAAspotter_ppparis # Config __RAA_PAGE = 'https://www.prefecturedepolice.interieur.gouv.fr/actualites-et-presse/arretes/accueil-arretes' __USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36' __KEYWORDS = os.getenv('KEYWORDS') or 'vidéoprotection,caméras,captation,aéronef' __DATA_DIR = os.path.dirname(os.path.abspath(__file__))+'/data/ppparis/' __SMTP_HOSTNAME = os.getenv('SMTP_HOSTNAME') or 'localhost' __SMTP_USERNAME = os.getenv('SMTP_USERNAME') or '' __SMTP_PASSWORD = os.getenv('SMTP_PASSWORD') or '' __EMAIL_FROM = os.getenv('EMAIL_FROM') __EMAIL_TO = os.getenv('EMAIL_TO') if os.getenv('SMTP_PORT'): __SMTP_PORT = int(os.getenv('SMTP_PORT')) else: __SMTP_PORT = 587 if os.getenv('SMTP_STARTTLS'): __SMTP_STARTTLS = True else: __SMTP_STARTTLS = False if os.getenv('SMTP_SSL'): __SMTP_SSL = True else: __SMTP_SSL = False # Début du script parser = argparse.ArgumentParser(prog='ppparis.py', description='Télécharge les RAA de la Préfecture de police de Paris et recherche des mots-clés') parser.add_argument('-k', '--keywords', action='store', help='liste des termes recherchés, séparés par une virgule (par défaut : vidéoprotection,caméras,captation,aéronef)') parser.add_argument('--smtp-hostname', action='store', help='nom d\'hôte SMTP (par défaut : localhost)') parser.add_argument('--smtp-username', action='store', help='nom d\'utilisateur SMTP (par défaut : vide)') parser.add_argument('--smtp-password', action='store', help='mot de passe SMTP (par défaut : vide)') parser.add_argument('--smtp-port', action='store', help='port SMTP (par défaut : 587)') parser.add_argument('--smtp-starttls', action='store_true', help='connexion SMTP avec STARTTLS') parser.add_argument('--smtp-ssl', action='store_true', help='connexion SMTP avec SSL') parser.add_argument('-f', '--email-from', action='store', help='adresse de courrier électronique expéditrice des notifications') parser.add_argument('-t', '--email-to', action='store', help='adresses de courrier électronique destinataires des notifications (séparées par une virgule)') parser.add_argument('-v', action='store_true', help='relève le niveau de verbosité à INFO') parser.add_argument('-vv', action='store_true', help='relève le niveau de verbosité à DEBUG') args = parser.parse_args() if args.v or os.getenv('VERBOSE'): logging.basicConfig(level=logging.INFO) if args.vv or os.getenv('VVERBOSE'): logging.basicConfig(level=logging.DEBUG) if args.keywords: __KEYWORDS = args.keywords if args.smtp_hostname: __SMTP_HOSTNAME = args.smtp_hostname if args.smtp_username: __SMTP_USERNAME = args.smtp_username if args.smtp_password: __SMTP_PASSWORD = args.smtp_password if args.smtp_port: __SMTP_PORT = int(args.smtp_port) if args.smtp_starttls: __SMTP_STARTTLS = True if args.smtp_ssl: __SMTP_SSL = True if args.email_from: __EMAIL_FROM = args.email_from if args.email_to: __EMAIL_TO = args.email_to # On crée le dossier de téléchargement os.makedirs(__DATA_DIR, exist_ok=True) raa_spotter = RAAspotter_ppparis(__DATA_DIR, __USER_AGENT) raa_spotter.print_output('RAAspotter_ppparis') raa_spotter.print_output(f'Termes recherchés: {__KEYWORDS}') page_content = raa_spotter.get_session(__RAA_PAGE, "block-decree-list-block") raa_elements = raa_spotter.get_raa(page_content) raa_spotter.parse_raa(raa_elements, __KEYWORDS.split(',')) if raa_spotter.found == True and __SMTP_HOSTNAME and __SMTP_USERNAME and __SMTP_PASSWORD and __SMTP_PORT and __EMAIL_TO and __EMAIL_FROM: output = open(raa_spotter.output_file_path) RAAspotter.mailer(__SMTP_HOSTNAME, __SMTP_USERNAME, __SMTP_PASSWORD, __SMTP_PORT, __SMTP_STARTTLS, __SMTP_SSL, __EMAIL_FROM, __EMAIL_TO, '[RAAspotter] [ppparis] Nouveaux éléments trouvés', output.read())