Skip to content
Extraits de code Groupes Projets
ppparis.py 4,38 Kio
import os
import argparse
import logging
import datetime

from RAAspotter import RAAspotter
from RAAspotter_ppparis import RAAspotter_ppparis

# Config
__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
if os.getenv('NOT_BEFORE'):
  __NOT_BEFORE = datetime.datetime.strptime(os.getenv('NOT_BEFORE'), '%Y-%m-%d')
else:
  __NOT_BEFORE = datetime.datetime(1970, 1, 1)
__MASTODON_ACCESS_TOKEN = os.getenv('MASTODON_ACCESS_TOKEN')
__MASTODON_INSTANCE = os.getenv('MASTODON_INSTANCE')

# 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('--not-before', action='store', help='n\'analyse pas les RAA datant d\'avant la date indiquée, au format YYYY-MM-DD (par défaut : 2024-01-01)')
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('--mastodon-access-token', action='store', help='jeton d\'accès pour publier sur Mastodon (par défaut : vide)')
parser.add_argument('--mastodon-instance', action='store', help='URL de l\'instance (doit inclure "http://" ou "https://" ; par défaut : vide)')
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.not_before:
  __NOT_BEFORE = datetime.datetime.strptime(args.not_before, '%Y-%m-%d')

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

if args.mastodon_access_token:
  __MASTODON_ACCESS_TOKEN = args.mastodon_access_token

if args.mastodon_instance:
  __MASTODON_INSTANCE = args.mastodon_instance

# On crée le dossier de téléchargement
os.makedirs(__DATA_DIR, exist_ok=True)

raa_spotter = RAAspotter_ppparis(__DATA_DIR)
raa_spotter.not_before = __NOT_BEFORE
raa_spotter.configure_mailer(__SMTP_HOSTNAME, __SMTP_USERNAME, __SMTP_PASSWORD, __SMTP_PORT,
                             __SMTP_STARTTLS, __SMTP_SSL, __EMAIL_FROM, __EMAIL_TO,
                             '[RAAspotter] [Préfecture de police de Paris] Nouveaux éléments trouvés')
raa_spotter.configure_mastodon(__MASTODON_ACCESS_TOKEN, __MASTODON_INSTANCE, '[Préfecture de police de Paris]', '#ppparis')
raa_spotter.get_raa(__KEYWORDS)