Imports automatiques
Trognoncal importe chaque jour (ou chaque semaine, suivant le réglage) un ensemble de sources définies par les modérateurices. L'interface d'administration permet de manipuler de manière simple ces différents automatismes.
Code source des extracteurs
Les sources se séparent en deux répertoires:
src/agenda_culturel/import_tasks/generic_extractors: les sources partagées par toutes les instances, celles qui ne sont donc pas spécifiques à un territoiresrc/agenda_culturel/import_tasks/custom_extractors: les sources spécifiques à un territoire
Les sources custom peuvent être placées dans des sous-répertoires, qui seront automatiquement explorées.
- le dépôt pdl-extractors propose des imports spécifiques à https://pommesdelune.fr/
Ajout d'une nouvelle source
- ajouter un fichier dans
src/agenda_culturel/import_tasks/custom_extractors(ousrc/agenda_culturel/import_tasks/generic_extractorss'il s'agit d'un format de source qui est réutilisable) en s'inspirant des autres fichiers présents. - vérifier que la classe est bien enregistrée avec le décorateur
@Extrator.register, en utilisant les paramètres suivants: slugetlabelpour que l'extracteur soit proposé aux utilisateurs dans les imports récurrents,is_default=Truepour que l'extracteur soit utilisé si aucun extracteur n'est défini en import récurrentis_single_default=Truepour que extracteur soit utilisé quand un internaute propose une adresse à importerpriority=xx(avecxxentier positif inférieur à 999) pour positionner l'extracteur dans la liste des extracteurs par défaut- on peut ensuite utiliser l'import en test grâce au script
test_extractor, domme décrit ci-dessous:
docker exec -it agenda_culturel-backend python manage.py runscript test_extractor --script-args <slug> <url> [headless] [nocache]
Avec les paramètres:
: slug donné au script, ou chemin python complet du type agenda_culturel.import_tasks.custom_extractors.pdl_extractors.amisdutempsdescerises.CExtractor: url à utiliser pendant l'import - headless: pour utiliser un navigateur complet (type chromium) headless au lieu d'un simple téléchargeur
- nocache: pour ignorer le cache utilisé par le script lors du téléchargement de la première url