Skip to content
Extraits de code Groupes Projets
Bifurcation depuis La Quadrature du Net / Attrap
Le projet source a une visibilité limitée.

Attrap

Un logiciel qui récupère les derniers recueils des actes administratifs (RAA) pour y rechercher certains mots-clés prédéfinis.

Conçu pour être utilisé dans une CI.

Peut envoyer par email et sur Mastodon les résultats, par exemple avec @AttrapSurveillance@mamot.fr.

Installation

Il est recommandé d'utiliser virtualenv :

virtualenv --python=/usr/bin/python3 .
source bin/activate
pip3 install -r requirements.txt

Vous devez avoir installé les données eng et fra de Tesseract et le démon Tor.

Configuration du démon Tor

Il faut que le port de contrôle 9051 du démon Tor soit ouvert pour permettre à Attrap de s'y connecter. Vous pouvez exécuter la ligne suivante pour faire cela :

sed -i '/^#ControlPort 9051/s/^#//' /etc/tor/torrc

Utilisation

Pour lancer la récupération de toutes les administrations supportées :

make

Attention, le premier lancement prendra plusieurs jours ! Si vous utilisez une CI, vous devez mettre en cache le dossier data/ afin que les fichiers déjà analysés ne soient pas téléchargés à chaque lancement.

Il est possible de ne lancer l'analyse que pour une seule administration, avec la commande : ./cli.py identifiant

Options

Les options suivantes peuvent être précisées, par un paramètre si l'utilitaire cli.py est utilisé, ou par une variable d'environnement :

CLI Variable d'environnement Signification Valeur par défaut
--keywords, -k KEYWORDS Liste des mots-clés recherchés, séparés par une virgule. Aucune
--not-before NOT_BEFORE Date (format YYYY-MM-DD) avant laquelle les RAA ne sont pas analysés. 2024-01-01
--smtp-hostname SMTP_HOSTNAME Nom d'hôte SMTP. localhost
--smtp-username SMTP_USERNAME Nom d'utilisateur SMTP. Aucun
--smtp-password SMTP_PASSWORD Mot de passe SMTP. Aucun
--smtp-port SMTP_PORT Port SMTP. 587
--smtp-starttls SMTP_STARTTLS Si spécifié, la connexion SMTP se fait avec STARTTLS. Non-spécifié
--smtp-ssl SMTP_SSL Si spécifié, la connexion SMTP se fait avec SSL. Non-spécifié
--email-from, -f EMAIL_FROM Adresse de courrier électronique expéditrice des notifications. Aucune (désactive l'envoi)
--email-to, -t EMAIL_TO Adresses de courriers électroniques destinataires des notifications, séparées par une virgule. Aucune (désactive l'envoi)
--**-email-to --**-EMAIL-TO Pour chaque administration dont l'identifiant est **, adresses de courriers électroniques destinataires des notifications, séparées par une virgule, uniquement si l'analyse concerne cette administration en particulier. La liste s'ajoute à celle précisée dans --email-to. Aucune
--mastodon-access-token MASTODON_ACCESS_TOKEN Jeton d'accès pour publier sur Mastodon. Aucun (désactive la publication sur Mastodon)
--mastodon-instance MASTODON_INSTANCE URL de l'instance Mastodon de publication (doit inclure "http://" ou "https://"). Aucune (désactive la publication sur Mastodon)
-v VERBOSE Si spécifié, relève le niveau de verbosité à INFO. Non-spécifié
-vv VVERBOSE Si spécifié, relève le niveau de verbosité à DEBUG. Non-spécifié

Administrations supportées

  • Préfecture de police de Paris (identifiant : ppparis)
  • Préfecture des Alpes-de-Haute-Provence (identifiant : pref04)
  • Préfecture des Hautes-Alpes (identifiant : pref05)
  • Préfecture des Alpes-Maritimes (identifiant : pref06)
  • Préfecture de l'Ariège (identifiant : pref09)
  • Préfecture des Bouches-du-Rhône (identifiant : pref13)
  • Préfecture du Doubs (identifiant : pref25)
  • Préfecture de la Haute-Garonne (identifiant : pref31)
  • Préfecture de la Gironde (identifiant : pref33)
  • Préfecture de l'Hérault (identifiant : pref34)
  • Préfecture d'Ille-et-Vilaine (identifiant : pref35)
  • Préfecture de l'Isère (identifiant : pref38)
  • Préfecture de la Loire (identifiant : pref42)
  • Préfecture de la Loire-Atlantique (identifiant : pref44)
  • Préfecture du Nord (identifiant : pref59)
  • Préfecture du Pas-de-Calais (identifiant : pref62)
  • Préfecture des Pyrénées-Atlantiques (identifiant : pref64)
  • Préfecture des Hautes-Pyrénées (identifiant : pref65)
  • Préfecture des Pyrénées-Orientales (identifiant : pref66)
  • Préfecture du Rhône (identifiant : pref69)
  • Préfecture de la Savoie (identifiant : pref73)
  • Préfecture de la Somme (identifiant : pref80)
  • Préfecture du Tarn (identifiant : pref81)
  • Préfecture du Var (identifiant : pref83)
  • Préfecture de la Haute-Vienne (identifiant : pref87)
  • Préfecture de Seine-Saint-Denis (identifiant : pref93)
  • Préfecture du Val-de-Marne (identifiant : pref94)
  • Préfecture de Mayotte (identifiant : pref976)

Contributions

Les contributions à ce projet sont les bienvenues !

Chaque administration est gérée par un fichier dont le nom correspond à son identifiant (Attrap_XXX.py). Commencez par copier un de ces fichiers puis adaptez son code à l'administration que vous voulez ajouter. Il est impératif de lancer le moins de requêtes possibles vers le site de l'administration : lorsqu'une administration a une page par année ou par mois, ne lancez une requête que vers les pages qui correspondent à la plage temporelle demandée dans la valeur de configuration NOT_BEFORE.

Vous pouvez lancer la commande suivante pour connaître fonctions disponibles pour récupérer les RAA sur le site d'une administration :

bin/python -m pydoc Attrap

Avant d'ouvrir une merge request, assurez-vous que :

  • l'administration est activée dans cli.py et dans Makefile ;
  • il existe un job dans la CI (.gitlab-ci.yml) pour l'administration ;
  • le fichier de README indique que la nouvelle administration est supportée ;
  • vous n'avez qu'un seul commit par nouvelle préfecture (sinon, il faut faire un squash), de la forme identifiant_de_l'administration: ajout de nom_complet_de_l'administration ;
  • make lint ne renvoie pas d'erreur.

Vous pouvez rejoindre le salon de discussion Matrix du projet : #Attrap:laquadrature.net.

Licence

CeCILL_V2.1-fr (voir le fichier LICENSE)