[WIP] New source: AcoLab #165

Draft
siriusnottin wants to merge 8 commits from feat-parser-acolab into main
Collaborator

Draft PR pour ajouter une nouvelle source pour l'association Clermontoise AcoLab.

Description

Les membres de l'association publient mettent à jour régulièrement les dates d'ouvertures pour un mois donné, sur leur forum accessible publiquement.

Étapes types

  • Ajouter la source dans experimentations/
  • Tester le bon fonctionnement du parser

Informations structure

Name Website Structure type Location
AcoLab  acolab.fr Association Clermont-Ferrand

Liens utiles

Categories

Category name ID Category URL  RSS Feed
Ouvertures 15  URL RSS Feed URL

Publication des ouvertures

On sait que les membres de l'association sont rigoureux quand à la planification et la publication des différentes dates et horaires de leurs permanences. Pour chaque mois d'ouverture, un nouveau sujet est ouvert et catégorisé "Ouvertures".

Celui-ci sera édité régulièrement, selon les disponibilités de chaque bénévole.

Méthode utilisée pour parser

Tous les événements

Le logiciel utilisé pour faire fonctionner le forum du fablab est Discourse.

Celui-ci génère automatiquement un flux RSS, ce qui nous permet de venir parser de façon plus efficace les sujets dont on a besoin, ainsi que leur contenu.

Ici en l'occurence, on vient récupérer le RSS regroupant tous les sujets publiés dans la catégorie citée plus haut. On y ajoute un premier filtre, pour ne garder que les ouvertures. En effet, la majorité des sujets semble ne concerner que les ouvertures. Le parser a donc été construit autours de cette idée.

Évènement type

Pour chaque sujet, on garde son nom, url, et le message qui contient les différentes dates et horaires d'ouvertures pour un mois donné.

Dans le premier message de chaque sujet, on va appliquer une série de filtres afin de ne garder que les dates les plus pertinentes pour les utilisateurs de Pommes de lune :

  1. Au moins 1 adhérent est identifié à côté de sa tranche horaire
  2. Il y a une date et un horaire de début. Le nom du jour correspond à la date. (ex. Samedi 12/10/24, est bien une date valide)
  3. Pas d'annotation ANNULE

Pour chaque événement, nous y attribuons par défaut l'adresse publique des locaux de l'association.

Ouverture => Permanence

Dans une idée de simplification, le choix a été fait de nommer chaque événement d'ouverture des locaux en permanence.

Le format d'affichage d'une permanence type sera donc : Permanence AcoLab

Todo

  • Créer nouveau parser
  • Editer fonction utilitaires pour parser les dates
  • Créer une nouvelle classe Timeslots
    Pour gérer de façon efficace les différents créneaux d'ouverture
Draft PR pour ajouter une nouvelle source pour l'association Clermontoise AcoLab. ## Description Les membres de l'association publient mettent à jour régulièrement les dates d'ouvertures pour un mois donné, sur leur forum accessible publiquement. ## Étapes types - [ ] Ajouter la source dans `experimentations/` - [ ] Tester le bon fonctionnement du parser ## Informations structure | Name | Website | Structure type | Location | -- | -- | -- | -- | AcoLab | [acolab.fr](https://acolab.fr/) | Association | Clermont-Ferrand **Liens utiles** - [Forum public de l'association](https://forum.acolab.fr/) - [Catégorie `Ouvertures`](https://forum.acolab.fr/c/genericactivity/ouverture/15) **Categories** | Category name | ID | Category URL | RSS Feed | | --- | --- | --- | --- | | Ouvertures | 15 | [URL](https://forum.acolab.fr/c/genericactivity/ouverture/15) | [RSS Feed URL](https://forum.acolab.fr/c/genericactivity/ouverture/15.rss) ## Publication des ouvertures On sait que les membres de l'association sont rigoureux quand à la planification et la publication des différentes dates et horaires de leurs permanences. Pour chaque mois d'ouverture, un nouveau sujet est ouvert et catégorisé "**Ouvertures**". Celui-ci sera édité régulièrement, selon les disponibilités de chaque bénévole. ## Méthode utilisée pour parser ### Tous les événements Le logiciel utilisé pour faire fonctionner le forum du fablab est [Discourse](https://www.discourse.org/). Celui-ci [génère automatiquement un flux RSS](https://meta.discourse.org/t/finding-discourse-rss-feeds/264134#p-1285521-categories-2), ce qui nous permet de venir parser de façon plus efficace les sujets dont on a besoin, ainsi que leur contenu. Ici en l'occurence, on vient récupérer le _RSS_ regroupant tous les sujets publiés dans la catégorie citée plus haut. On y ajoute un premier filtre, pour ne garder que les ouvertures. En effet, la majorité des sujets semble ne concerner que les ouvertures. Le parser a donc été construit autours de cette idée. ### Évènement type Pour chaque sujet, on garde son `nom`, `url`, et le `message` qui contient les différentes dates et horaires d'ouvertures pour un mois donné. Dans le premier message de chaque sujet, on va appliquer une série de filtres afin de ne garder que les dates les plus pertinentes pour les utilisateurs de Pommes de lune : 1. Au moins 1 adhérent est identifié à côté de sa tranche horaire 2. Il y a une date et un horaire de début. Le nom du jour correspond à la date. (ex. Samedi 12/10/24, est bien une date valide) 3. Pas d'annotation `ANNULE` Pour chaque événement, nous y attribuons par défaut l'adresse publique des locaux de l'association. ### Ouverture => Permanence Dans une idée de simplification, le choix a été fait de nommer chaque événement d'ouverture des locaux en permanence. Le format d'affichage d'une permanence type sera donc : `Permanence AcoLab` ## Todo - [x] Créer nouveau parser - [x] Editer fonction utilitaires pour parser les dates - [x] Créer une nouvelle classe `Timeslots` Pour gérer de façon efficace les différents créneaux d'ouverture
siriusnottin added the
source
label 2024-10-13 13:16:38 +02:00
siriusnottin added 8 commits 2024-10-13 13:16:38 +02:00
This pull request has changes conflicting with the target branch.
  • src/agenda_culturel/import_tasks/extractor.py

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat-parser-acolab:feat-parser-acolab
git checkout feat-parser-acolab
Sign in to join this conversation.
No description provided.