Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • e2c2a56274233c3f5393a10da3c926743982bcce
  • main par défaut protégée
2 résultats

README.md

Blame
  • 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.

    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 relatif 1 week ou 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é

    Vous pouvez également activer le safe mode en spécifiant la variable d'environnement SAFE_MODE. Cela désactive Tor et limite les requêtes à une toutes les 30 secondes. Cette option ne doit être utilisée qu'en cas de blocage généralisé de Tor. Attention : avec le safe mode, la CI se connecte directement au serveur, et son IP risque d'être bloquée si trop de requêtes sont lancées. Pensez donc à limiter le nombre de jobs qui s'exécutent en parallèle si vous devez activer ce mode. Les requêtes via Selenium ne sont pas impactées par le safe mode.

    Administrations supportées

    • Préfecture de police de Paris (identifiant : ppparis)
    • Préfecture de l'Ain (identifiant : pref01)
    • Préfecture de l'Aisne (identifiant : pref02)
    • Préfecture de Haute-Corse (identifiant : pref2b)
    • Préfecture de l'Allier (identifiant : pref03)
    • 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 de l'Aube (identifiant : pref10)
    • Préfecture de l'Aude (identifiant : pref11)
    • Préfecture des Bouches-du-Rhône (identifiant : pref13)
    • Préfecture du Doubs (identifiant : pref25)
    • Préfecture du Finistère (identifiant : pref29)
    • 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 du Jura (identifiant : pref39)
    • Préfecture de la Loire (identifiant : pref42)
    • Préfecture de la Loire-Atlantique (identifiant : pref44)
    • Préfecture de Maine-et-Loire (identifiant : pref49)
    • Préfecture de la Manche (identifiant : pref50)
    • Préfecture du Nord (identifiant : pref59)
    • Préfecture du Pas-de-Calais (identifiant : pref62)
    • Préfecture du Puy-de-Dôme (identifiant : pref63)
    • 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 Paris (identifiant : pref75)
    • 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 l'Essonne (identifiant : pref91)
    • Préfecture des Hauts-de-Seine (identifiant : pref92)
    • Préfecture de Seine-Saint-Denis (identifiant : pref93)
    • Préfecture du Val-de-Marne (identifiant : pref94)
    • Préfecture de Mayotte (identifiant : pref976)
    • Préfecture d'Île-de-France (identifiant : prefidf)
    • Préfecture de Provence-Alpes-Côte-d'Azur (identifiant : prefpaca)

    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)