add extractor viparis

This commit is contained in:
Tykayn 2025-10-10 15:11:05 +02:00 committed by tykayn
parent fd2d51b662
commit ee48a3c665
9 changed files with 2221 additions and 4443 deletions

2
.gitignore vendored
View file

@ -9,3 +9,5 @@ datasources
extractors/**/*.zip
extractors/**/*.7z
extractors/**/*.json
*.json
*.log

3
.gitmodules vendored
View file

@ -1,3 +1,6 @@
[submodule "datasources"]
path = datasources
url = https://github.com/openeventdatabase/datasources.git
[submodule "OEDb_Scrappers"]
path = OEDb_Scrappers
url = https://codeberg.org/K12230LF/OEDb_Scrappers.git

1
OEDb_Scrappers Submodule

@ -0,0 +1 @@
Subproject commit df0a6e21133d33e0af7e427f39c57c238afc67ac

View file

@ -101,247 +101,6 @@ X-ALT-DESC;FMTTYPE=text/html:<h3><a href="/events/"><img style="float: righ
43.60305/3.89786</p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250916T044029
UID:33331@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251009T190000
DTEND;TZID=Europe/Paris:20251009T220000
DESCRIPTION:[][1]\n\n**Gratuit Inscription recommandée**\n\nCe dernier
rendez-vous mensuel propose daccompagner les utilisateurs et utilisatr
ices de logiciels libres dans la résolution de leurs problèmes informati
ques.\n\nCest loccasion de voir comment ça marche\, de demander ou
de donner un coup de pouce\, de découvrir ou faire découvrir une astuce\
, d'en savoir plus sur l'installation et l'utilisation de GNU/Linux.\n\nRa
ppel: aucune installation de logiciel sous licence ne pourra être faite s
ans présentation de la licence et de sa preuve dachat.\nRemarque: Si v
ous souhaitez de l'aide sur Android ou Windows ou Mac\, notez que l'ALDIL
n'a pas vocation à intervenir sur ces systèmes en eux-mêmes\, seulement
sur les applications libres qui peuvent y être installées.\n\nLe formul
aire: [https://www.aldil.org/agenda-activites/nos-activites/bidouilles/][
2]\n\nLadhésion à la MPT nest pas obligatoire pour cette activité
.\n\n**Salle**: EPN\n\n [ ][3][][3]\n\n\n\n[1]: https://aldil.org\n[2]: h
ttps://www.aldil.org/agenda-activites/nos-activites/bidouilles/\n[3]: http
s://epn.salledesrancy.com\n
GEO:45.756;4.84773
LOCATION:Maison pour tous / salle des Rancy\, 249 rue Vendôme\, Lyon\, Auv
ergne-Rhône-Alpes\, France
ORGANIZER:mailto:contact@aldil.org
SEQUENCE:3
SUMMARY:Entraide et Bidouille
URL;VALUE=URI:https://aldil.org
CATEGORIES:entraide
CATEGORIES:aldil
CATEGORIES:epn-des-rancy
CATEGORIES:linux
CATEGORIES:logiciels-libres
CATEGORIES:bidouille
CATEGORIES:gnu-linux
CATEGORIES:fete-des-possibles-2025
CATEGORIES:adieu-windows
X-ALT-DESC;FMTTYPE=text/html:<section class="em-event-content">\n<p style="
text-align: center\;"><a href="https://aldil.org"><img class="hoverZoomLin
k alignnone wp-image-1167 lazy loaded" src="https://www.aldil.org/wp-conte
nt/uploads/2018/12/ALDIL_text-150x150.png" sizes="(max-width: 98px) 85vw\,
98px" srcset="https://www.aldil.org/wp-content/uploads/2018/12/ALDIL_text
-150x150.png 150w\, https://www.aldil.org/wp-content/uploads/2018/12/ALDIL
_text-300x300.png 300w\, https://www.aldil.org/wp-content/uploads/2018/12/
ALDIL_text-768x768.png 768w\, https://www.aldil.org/wp-content/uploads/201
8/12/ALDIL_text.png 800w" alt="Logo ALDIL" width="98" height="98" data-src
="https://www.aldil.org/wp-content/uploads/2018/12/ALDIL_text-150x150.png"
data-srcset="https://www.aldil.org/wp-content/uploads/2018/12/ALDIL_text-
150x150.png 150w\, https://www.aldil.org/wp-content/uploads/2018/12/ALDIL_
text-300x300.png 300w\, https://www.aldil.org/wp-content/uploads/2018/12/A
LDIL_text-768x768.png 768w\, https://www.aldil.org/wp-content/uploads/2018
/12/ALDIL_text.png 800w" data-sizes="(max-width: 98px) 85vw\, 98px" data-w
as-processed="true"></a></p>\n<p style="text-align: center\;"><strong>Grat
uit Inscription recommandée</strong></p>\n<p>Ce dernier rendez-vous m
ensuel propose daccompagner les utilisateurs et utilisatrices de logici
els libres dans la résolution de leurs problèmes informatiques.</p>\n<p>
Cest loccasion de voir comment ça marche\, de demander ou de donner
un coup de pouce\, de découvrir ou faire découvrir une astuce\, d'en sa
voir plus sur l'installation et l'utilisation de GNU/Linux.</p>\n<p>Rappel
: aucune installation de logiciel sous licence ne pourra être faite sans
présentation de la licence et de sa preuve dachat.<br>Remarque : Si v
ous souhaitez de l'aide sur Android ou Windows ou Mac\, notez que l'ALDIL
n'a pas vocation à intervenir sur ces systèmes en eux-mêmes\, seulement
sur les applications libres qui peuvent y être installées.</p>\n<p>Le f
ormulaire : <a href="https://www.aldil.org/agenda-activites/nos-activites
/bidouilles/">https://www.aldil.org/agenda-activites/nos-activites/bidouil
les/</a></p>\n<p>Ladhésion à la MPT nest pas obligatoire pour cett
e activité.</p>\n<p><strong>Salle</strong> : EPN</p>\n<p> <a href="https
://epn.salledesrancy.com"> </a><a href="https://epn.salledesrancy.com"><im
g class="hoverZoomLink alignnone wp-image-1227 size-medium lazy loaded" st
yle="display: block\; margin-left: auto\; margin-right: auto\;" src="https
://www.aldil.org/wp-content/uploads/2019/07/bannière_epn2-300x98.png" siz
es="(max-width: 300px) 85vw\, 300px" srcset="https://www.aldil.org/wp-cont
ent/uploads/2019/07/bannière_epn2-300x98.png 300w\, https://www.aldil.org
/wp-content/uploads/2019/07/bannière_epn2-768x251.png 768w\, https://www.
aldil.org/wp-content/uploads/2019/07/bannière_epn2.png 846w" alt="Logo EP
N" width="300" height="98" data-src="https://www.aldil.org/wp-content/uplo
ads/2019/07/bannière_epn2-300x98.png" data-srcset="https://www.aldil.org/
wp-content/uploads/2019/07/bannière_epn2-300x98.png 300w\, https://www.al
dil.org/wp-content/uploads/2019/07/bannière_epn2-768x251.png 768w\, https
://www.aldil.org/wp-content/uploads/2019/07/bannière_epn2.png 846w" data-
sizes="(max-width: 300px) 85vw\, 300px" data-was-processed="true"></a></p>
\n</section>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251006T120053
UID:33504@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251009T193000
DTEND;TZID=Europe/Paris:20251009T220000
DESCRIPTION:Le but des soirées de contribution au libre est de proposer un
espace de travail partagé aux personnes actives dans le libre en Île-de
-France le temps d'une soirée\, une fois par mois (le deuxième jeudi du
mois plus précisément).\n\n\n\n\n\nDit plus court: c'est un lieu avec de
l'électricité et une connexion internet. En avant les claviers !\n\n**L
es soirées de contribution au libre sont faites pour vous si:**\n\n* vous
travaillez sur un projet libre et vous recherchez une atmosphère à la f
ois conviviale et studieuse pour aller de l'avant et\, qui sait\, créer d
es connexions avec d'autres projets libres\,\n^\n\n* vous êtes un collect
if autour du libre et vous cherchez un lieu pour vous retrouvez physiqueme
nt et avancer avec efficacité sur vos chantiers.\n\n**Si vous n'avez pas
envie de contribuer à un projet libre\, les soirées de contribution au l
ibre ne sont sans doute pas faites pour vous.** Pas de panique\, Parinux o
rganise d'autres évènements:\n\n* si vous voulez discuter autour du libr
e: l'Apéro du Libre (APL) est là pour ça \; c'est un rendez-vous fixé
tous les 15 du mois \; venez-nous retrouver autour d'un verre pour papoter
et refaire le monde (libre)\,\n^\n\n* si vous avez un problème informati
que: c'est la vocation de Premiers Samedi du Libre (PSL) où vous pourrez
trouver des oreilles attentives et compétentes à l'écoute de toutes vos
questions.\n\nNous nous réservons le droit de refuser l'entrée aux soir
ées de contribution au libre à tout personne qui n'en respecterait pas l
'esprit. Et\, bien sûr\, les règles de bienséance habituelles s'appliqu
ent pour que chacune et chacun se sente à l'aise dans un cadre bienveilla
nt.\n\nSi les soirées de contribution vous intéresse\, le mieux est de c
ontacter d'abord le CA de Parinux ca@parinux.org. Vous devrez de toute fa
çon nous écrire pour obtenir le code de la porte cochère...\n\n
GEO:48.8578;2.36951
LOCATION:FPH\, 38 rue Saint-Sabin\, Paris\, Île-de-France\, France
ORGANIZER:mailto:ca@parinux.org
SEQUENCE:3
SUMMARY:Soirée de contribution au libre
URL;VALUE=URI:https://parinux.org/Soiree-de-Contribution-au-Libre-le-jeudi-
9-octobre-2025
CATEGORIES:parinux
CATEGORIES:scl
CATEGORIES:contribution
CATEGORIES:contribution-au-libre
X-ALT-DESC;FMTTYPE=text/html:<p>Le but des soirées de contribution au libr
e est de proposer un espace de travail partagé aux personnes actives dans
le libre en Île-de-France le temps d'une soirée\, une fois par mois (le
deuxième jeudi du mois plus précisément).</p>\n<p><img style="display:
block\; margin-left: auto\; margin-right: auto\;" src="https://parinux.or
g/squelettes/img/parinux.png" alt="" width="300" height="240"></p>\n<p> <
/p>\n<p>Dit plus court : c'est un lieu avec de l'électricité et une conn
exion internet. En avant les claviers !</p>\n<p><strong>Les soirées de co
ntribution au libre sont faites pour vous si :</strong></p>\n<ul class="sp
ip" role="list">\n<li>vous travaillez sur un projet libre et vous recherch
ez une atmosphère à la fois conviviale et studieuse pour aller de l'avan
t et\, qui sait\, créer des connexions avec d'autres projets libres\,</li
>\n</ul>\n<ul class="spip" role="list">\n<li>vous êtes un collectif autou
r du libre et vous cherchez un lieu pour vous retrouvez physiquement et av
ancer avec efficacité sur vos chantiers.</li>\n</ul>\n<p><strong>Si vous
n'avez pas envie de contribuer à un projet libre\, les soirées de contri
bution au libre ne sont sans doute pas faites pour vous.</strong> Pas de p
anique\, Parinux organise d'autres évènements :</p>\n<ul class="spip" ro
le="list">\n<li>si vous voulez discuter autour du libre : l'Apéro du Libr
e (APL) est là pour ça \; c'est un rendez-vous fixé tous les 15 du mois
\; venez-nous retrouver autour d'un verre pour papoter et refaire le mond
e (libre)\,</li>\n</ul>\n<ul class="spip" role="list">\n<li>si vous avez u
n problème informatique : c'est la vocation de Premiers Samedi du Libre (
PSL) où vous pourrez trouver des oreilles attentives et compétentes à l
'écoute de toutes vos questions.</li>\n</ul>\n<p>Nous nous réservons le
droit de refuser l'entrée aux soirées de contribution au libre à tout p
ersonne qui n'en respecterait pas l'esprit. Et\, bien sûr\, les règles d
e bienséance habituelles s'appliquent pour que chacune et chacun se sente
à l'aise dans un cadre bienveillant.</p>\n<p>Si les soirées de contribu
tion vous intéresse\, le mieux est de contacter d'abord le CA de Parinux
ca@parinux.org. Vous devrez de toute façon nous écrire pour obtenir le c
ode de la porte cochère...</p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251006T115840
UID:33502@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251009T200000
DTEND;TZID=Europe/Paris:20251009T210000
DESCRIPTION:L'[association GUTenberg][1]\, Groupe francophone des Utilisate
urs de TeX\, organise **jeudi prochain** 9 octobre 2025 à 20h son 22e exp
osé mensuel!\n\nLors de cette séance\, nous aurons le plaisir décout
er [ Vincent Goulet][2] nous donner un exposé intitulé [« Intégrer l
équipe (de\\|du)? (Cé\\|Si)Tan(ne)? »][3]:\n\n À lété 2024\, l
ors de la conférence du TeX User Group à Prague\, jai répondu à l
appel de volontaires dErik Braun pour me joindre à léquipe de C
TAN. Erik a semblé ravi: sans doute davoir si facilement déniché un
nouveau collaborateur\, et assurément parce que je me trouve dans un fuse
au horaire (UTC-5) différent des autres membres de léquipe\, tous pos
tés outre-Rhin. Pour différentes raisons\, je nai commencé à contri
buer activement quen mai 2025. Denis naura ensuite pas mis de temps
à me repérer. Pourquoi mimpliquer dans ce projet ? En quoi les tâche
s consistent-elles ? Est-ce payant ? Jessaierai de répondre à ces que
stions\, en plus de vous entretenir des bonnes et moins bonnes pratiques e
n matière de préparation de paquetage (oui\, je préfère ce terme à «
package »). Qui sait\, je pourrais même effectuer une démo !\nCet expo
sé est donné dans le cadre des [exposés mensuels GUTenberg][4]. **Si vo
us appréciez ces exposés**\, et plus généralement les actions qu'elle
mène ([la Lettre][5]\, [Journées][6]\, [FAQ][7]\, [TeXnique.fr][8]\, etc
.)\, **n'hésitez pas à [adhérer à l'association GUTenberg][9]**.\n\n[1
]: https://www.gutenberg-asso.fr/\n[2]: https://www.ctan.org/author/goulet
\n[3]: https://www.gutenberg-asso.fr/9-octobre-2025-Integrer-l-equipe-de-d
u-Ce-Si-Tan-ne\n[4]: https://podulco.univ-littoral.fr/meeting/0096-exposes
-gutenberg/f9f3d98879f1e84cf92ef51e3ce240f0ff20330249ec50ce7278adc8059c4d2
8\n[5]: https://publications.gutenberg-asso.fr/lettre\n[6]: https://www.gu
tenberg-asso.fr/-Journees-GUTenberg-\n[7]: https://faq.gutenberg-asso.fr/\
n[8]: https://texnique.fr/\n[9]: https://www.gutenberg-asso.fr/Adherer-a-l
-association\n
LOCATION:Internet
ORGANIZER:mailto:secretariat@gutenberg-asso.fr
SEQUENCE:3
SUMMARY:Intégrer léquipe (de|du)? (Cé|Si)Tan(ne)?
URL;VALUE=URI:https://www.gutenberg-asso.fr/9-octobre-2025-Integrer-l-equip
e-de-du-Ce-Si-Tan-ne
CATEGORIES:tex
CATEGORIES:latex
CATEGORIES:ctan
CATEGORIES:packages
CATEGORIES:gutenberg
CATEGORIES:présentation
CATEGORIES:visio-conférence
X-ALT-DESC;FMTTYPE=text/html:<p>L'<a href="https://www.gutenberg-asso.fr/">
association GUTenberg</a>\, Groupe francophone des Utilisateurs de TeX\, o
rganise <strong>jeudi prochain</strong> 9 octobre 2025 à 20h son 22<sup>e
</sup> exposé mensuel<span class="finePre">!</span><br><br>Lors de cette
séance\, nous aurons le plaisir découter <a href="https://www.ctan.or
g/author/goulet" target="_blank" rel="nofollow noopener"> Vincent Goulet</
a> nous donner un exposé intitulé <a href="https://www.gutenberg-asso.fr
/9-octobre-2025-Integrer-l-equipe-de-du-Ce-Si-Tan-ne" target="_blank" rel=
"nofollow noopener">« Intégrer léquipe (de|du)? (Cé|Si)Tan(ne)? »<
/a> :</p>\n<div class="bbcode_container">\n<div class="bbcode_quote">\n<bl
ockquote>\n<div class="quote_container">À lété 2024\, lors de la con
férence du TeX User Group à Prague\, jai répondu à lappel de vol
ontaires dErik Braun pour me joindre à léquipe de CTAN. Erik a sem
blé ravi : sans doute davoir si facilement déniché un nouveau collab
orateur\, et assurément parce que je me trouve dans un fuseau horaire (UT
C-5) différent des autres membres de léquipe\, tous postés outre-Rhi
n. Pour différentes raisons\, je nai commencé à contribuer activemen
t quen mai 2025. Denis naura ensuite pas mis de temps à me repérer
. Pourquoi mimpliquer dans ce projet ? En quoi les tâches consistent-e
lles ? Est-ce payant ? Jessaierai de répondre à ces questions\, en pl
us de vous entretenir des bonnes et moins bonnes pratiques en matière de
préparation de paquetage (oui\, je préfère ce terme à « package »).
Qui sait\, je pourrais même effectuer une démo !</div>\n</blockquote>\n<
div class="quote_container"> </div>\n<div class="quote_container"><br>Cet
exposé est donné dans le cadre des <a href="https://podulco.univ-littor
al.fr/meeting/0096-exposes-gutenberg/f9f3d98879f1e84cf92ef51e3ce240f0ff203
30249ec50ce7278adc8059c4d28">exposés mensuels GUTenberg</a>. <strong>Si v
ous appréciez ces exposés</strong>\, et plus généralement les actions
qu'elle mène (<a href="https://publications.gutenberg-asso.fr/lettre">la
Lettre</a>\, <a href="https://www.gutenberg-asso.fr/-Journees-GUTenberg-">
Journées</a>\, <a href="https://faq.gutenberg-asso.fr/">FAQ</a>\, <a href
="https://texnique.fr/">TeXnique.fr</a>\, etc.)\, <strong>n'hésitez pas
à <a href="https://www.gutenberg-asso.fr/Adherer-a-l-association">adhére
r à l'association GUTenberg</a></strong>.</div>\n</div>\n</div>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251004T082654
UID:33482@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251010T090000
@ -3148,6 +2907,39 @@ X-ALT-DESC;FMTTYPE=text/html:<p><img style="display: block\; margin-left: a
g.fr/eJ2lKkIrVEf06</a></p>\n<p> </p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060649
UID:33608@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251015T123000
DTEND;TZID=Europe/Paris:20251015T170000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nIl est préférable de réserver votre place à [contact (
at) linuxmaine (point) org ](mailto:contact@linuxmaine)\n\nPlanning des r
éservations consultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip
.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contact@linuxmaine.org
SEQUENCE:2
SUMMARY:Permanence du mercredi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Il est préf
érable de réserver votre place à <a href="mailto:contact@linuxmaine">co
ntact (at) linuxmaine (point) org </a></p>\n<p>Planning des réservations
consultable<a href="https://linuxmaine.org/spip.php?rubrique6"> ici.</a><
/p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250922T112308
UID:33353@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251015T140000
@ -35443,6 +35235,39 @@ X-ALT-DESC;FMTTYPE=text/html:<p style="text-align: center\;">La Guilde vous
de"></p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060649
UID:33610@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251022T123000
DTEND;TZID=Europe/Paris:20251022T170000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nIl est préférable de réserver votre place à [contact (
at) linuxmaine (point) org ](mailto:contact@linuxmaine)\n\nPlanning des r
éservations consultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip
.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contact@linuxmaine.org
SEQUENCE:1
SUMMARY:Permanence du mercredi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Il est préf
érable de réserver votre place à <a href="mailto:contact@linuxmaine">co
ntact (at) linuxmaine (point) org </a></p>\n<p>Planning des réservations
consultable<a href="https://linuxmaine.org/spip.php?rubrique6"> ici.</a><
/p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250922T112416
UID:33354@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251022T140000
@ -36975,6 +36800,39 @@ X-ALT-DESC;FMTTYPE=text/html:<p><img style="float: right\;" src="http://caf
s retrouver<span class="finePre">!</span></p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060651
UID:33611@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251029T123000
DTEND;TZID=Europe/Paris:20251029T170000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nIl est préférable de réserver votre place à [contact (
at) linuxmaine (point) org ](mailto:contact@linuxmaine)\n\nPlanning des r
éservations consultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip
.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contact@linuxmaine.org
SEQUENCE:1
SUMMARY:Permanence du mercredi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Il est préf
érable de réserver votre place à <a href="mailto:contact@linuxmaine">co
ntact (at) linuxmaine (point) org </a></p>\n<p>Planning des réservations
consultable<a href="https://linuxmaine.org/spip.php?rubrique6"> ici.</a><
/p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250922T112512
UID:33355@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251029T140000
@ -37864,6 +37722,39 @@ X-ALT-DESC;FMTTYPE=text/html:<p><a href="https://clx.asso.fr">L'Association
s Martyrs de la résistance\, Croix.</p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060651
UID:33612@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251105T123000
DTEND;TZID=Europe/Paris:20251105T170000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nIl est préférable de réserver votre place à [contact (
at) linuxmaine (point) org ](mailto:contact@linuxmaine)\n\nPlanning des r
éservations consultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip
.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contact@linuxmaine.org
SEQUENCE:1
SUMMARY:Permanence du mercredi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Il est préf
érable de réserver votre place à <a href="mailto:contact@linuxmaine">co
ntact (at) linuxmaine (point) org </a></p>\n<p>Planning des réservations
consultable<a href="https://linuxmaine.org/spip.php?rubrique6"> ici.</a><
/p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250922T112607
UID:33356@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251105T140000
@ -38732,6 +38623,37 @@ X-ALT-DESC;FMTTYPE=text/html:<p><img style="float: right\;" role="presentat
/inscription-wikipedia</a></p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060732
UID:33609@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251108T140000
DTEND;TZID=Europe/Paris:20251108T180000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nAttention\, réservez votre place par [contact (at) linux
maine.org ](mailto:contact@linuxmaine)\n\nPlanning des réservations cons
ultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contatct@linuxmaine.org
SEQUENCE:2
SUMMARY:Permanence mensuelle du samedi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Attention\, r
éservez votre place par <a href="mailto:contact@linuxmaine">contact (at)
linuxmaine.org </a></p>\n<p>Planning des réservations consultable<a hre
f="https://linuxmaine.org/spip.php?rubrique6"> ici.</a></p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250910T135434
UID:33233@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251108T150000
@ -39060,6 +38982,39 @@ X-ALT-DESC;FMTTYPE=text/html:<p><img style="display: block\; margin-left: a
otidienne 😄</p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060652
UID:33613@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251112T123000
DTEND;TZID=Europe/Paris:20251112T170000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nIl est préférable de réserver votre place à [contact (
at) linuxmaine (point) org ](mailto:contact@linuxmaine)\n\nPlanning des r
éservations consultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip
.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contact@linuxmaine.org
SEQUENCE:1
SUMMARY:Permanence du mercredi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Il est préf
érable de réserver votre place à <a href="mailto:contact@linuxmaine">co
ntact (at) linuxmaine (point) org </a></p>\n<p>Planning des réservations
consultable<a href="https://linuxmaine.org/spip.php?rubrique6"> ici.</a><
/p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250922T112704
UID:33357@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251112T140000
@ -40450,6 +40405,39 @@ X-ALT-DESC;FMTTYPE=text/html:<p style="text-align: center\;">La Guilde vous
de"></p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060653
UID:33614@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251119T123000
DTEND;TZID=Europe/Paris:20251119T170000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nIl est préférable de réserver votre place à [contact (
at) linuxmaine (point) org ](mailto:contact@linuxmaine)\n\nPlanning des r
éservations consultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip
.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contact@linuxmaine.org
SEQUENCE:1
SUMMARY:Permanence du mercredi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Il est préf
érable de réserver votre place à <a href="mailto:contact@linuxmaine">co
ntact (at) linuxmaine (point) org </a></p>\n<p>Planning des réservations
consultable<a href="https://linuxmaine.org/spip.php?rubrique6"> ici.</a><
/p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250922T112800
UID:33358@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251119T140000
@ -41618,6 +41606,39 @@ X-ALT-DESC;FMTTYPE=text/html:<p><img style="float: right\;" src="http://caf
s retrouver<span class="finePre">!</span></p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20251010T060654
UID:33615@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251126T123000
DTEND;TZID=Europe/Paris:20251126T170000
DESCRIPTION:Assistance technique et démonstration concernant les logiciels
libres.\n\n\n\nIl est préférable de réserver votre place à [contact (
at) linuxmaine (point) org ](mailto:contact@linuxmaine)\n\nPlanning des r
éservations consultable[ ici.][1]\n\n\n\n[1]: https://linuxmaine.org/spip
.php?rubrique6\n
GEO:47.9737;0.2095
LOCATION:Centre social\, salle 220\, 2ème étage\, pôle associatif Coluch
e\, 31 allée Claude Debussy\, Le Mans\, Pays de la Loire\, France
ORGANIZER:mailto:contact@linuxmaine.org
SEQUENCE:1
SUMMARY:Permanence du mercredi
URL;VALUE=URI:https://linuxmaine.org
CATEGORIES:linuxmaine
CATEGORIES:gnu-linux
CATEGORIES:demonstration
CATEGORIES:assistance
CATEGORIES:permanence
CATEGORIES:logiciels-libres
CATEGORIES:linux
X-ALT-DESC;FMTTYPE=text/html:<p>Assistance technique et démonstration conc
ernant les logiciels libres.</p>\n<p><img style="display: block\; margin-l
eft: auto\; margin-right: auto\;" src="https://linuxmaine.org/IMG/logo/202
3-4.jpg?1690907586" alt="" width="651" height="231"></p>\n<p>Il est préf
érable de réserver votre place à <a href="mailto:contact@linuxmaine">co
ntact (at) linuxmaine (point) org </a></p>\n<p>Planning des réservations
consultable<a href="https://linuxmaine.org/spip.php?rubrique6"> ici.</a><
/p>
END:VEVENT
BEGIN:VEVENT
DTSTAMP;TZID=Europe/Paris:20250922T112848
UID:33359@agendadulibre.org
DTSTART;TZID=Europe/Paris:20251126T140000

View file

@ -106,7 +106,7 @@ class CCPLAgendaScraper:
cached_hash = self.cache_data.get("content_hash")
return cached_hash != new_hash
def fetch_agenda_data(self) -> Optional[str]:
def fetch_agenda_data(self, force_refresh: bool = False) -> Optional[str]:
"""Récupère les données de l'agenda CCPL"""
try:
logger.info(f"🌐 Récupération de l'agenda CCPL: {self.agenda_url}")
@ -121,9 +121,12 @@ class CCPLAgendaScraper:
content = response.text
content_hash = self.get_content_hash(content)
# Vérifier si le contenu a changé
if self.is_content_changed(content_hash):
logger.info("🔄 Nouveau contenu détecté, mise à jour du cache")
# Vérifier si le contenu a changé ou si on force le rafraîchissement
if self.is_content_changed(content_hash) or force_refresh:
if force_refresh:
logger.info("🔄 Rafraîchissement forcé, mise à jour du cache")
else:
logger.info("🔄 Nouveau contenu détecté, mise à jour du cache")
self.cache_data["content_hash"] = content_hash
self.cache_data["last_fetch"] = datetime.now().isoformat()
self.save_cache_data()
@ -282,7 +285,7 @@ class CCPLAgendaScraper:
"label": title,
"description": description,
"type": "scheduled",
"what": "culture.community",
"what": "culture.community.ccpl",
"where": location,
"start": self.parse_date(date_text),
"stop": self.parse_date(date_text, end=True),
@ -894,7 +897,7 @@ class CCPLAgendaScraper:
try:
# Récupérer les données de l'agenda
html_content = self.fetch_agenda_data()
html_content = self.fetch_agenda_data(force_refresh)
if html_content is None and not force_refresh:
logger.info(" Utilisation du cache (pas de nouveau contenu)")

View file

@ -0,0 +1,79 @@
#!/usr/bin/env python3
"""
Script de debug pour analyser la structure HTML de la page Viparis
"""
import requests
from bs4 import BeautifulSoup
import re
def analyze_viparis_structure():
"""Analyse la structure HTML de la page Viparis"""
url = "https://www.viparis.com/actualites-evenements/evenements"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
try:
print(f"🔍 Analyse de la structure HTML de: {url}")
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
# Chercher les éléments contenant des événements
print("\n📋 Recherche d'éléments d'événements...")
# Chercher des patterns communs pour les événements
event_patterns = [
'event', 'evenement', 'agenda', 'salon', 'exposition', 'congres'
]
for pattern in event_patterns:
elements = soup.find_all(string=re.compile(pattern, re.I))
if elements:
print(f"✅ Trouvé '{pattern}': {len(elements)} éléments")
for i, elem in enumerate(elements[:3]): # Afficher les 3 premiers
print(f" {i+1}: {elem.strip()[:100]}...")
# Chercher des divs avec des classes qui pourraient contenir des événements
print("\n🔍 Recherche de divs avec classes d'événements...")
div_classes = soup.find_all('div', class_=re.compile(r'event|evenement|agenda|salon|expo', re.I))
print(f"Divs avec classes d'événements: {len(div_classes)}")
# Chercher des liens qui pourraient être des événements
print("\n🔗 Recherche de liens d'événements...")
event_links = soup.find_all('a', href=re.compile(r'event|evenement|salon|expo', re.I))
print(f"Liens d'événements: {len(event_links)}")
# Chercher des images d'événements
print("\n🖼️ Recherche d'images d'événements...")
event_images = soup.find_all('img', src=re.compile(r'event|evenement|salon|expo', re.I))
print(f"Images d'événements: {len(event_images)}")
# Chercher des éléments avec des dates
print("\n📅 Recherche d'éléments avec des dates...")
date_elements = soup.find_all(string=re.compile(r'\d{1,2}/\d{1,2}/\d{4}|\d{1,2}\s+\w+\s+\d{4}', re.I))
print(f"Éléments avec dates: {len(date_elements)}")
for i, elem in enumerate(date_elements[:5]):
print(f" {i+1}: {elem.strip()}")
# Chercher des éléments avec des titres d'événements
print("\n📝 Recherche de titres d'événements...")
title_elements = soup.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'], string=re.compile(r'BattleKart|Virtual Room|PRODURABLE|RÉÉDUCA|SALON', re.I))
print(f"Titres d'événements: {len(title_elements)}")
for i, elem in enumerate(title_elements[:5]):
print(f" {i+1}: {elem.get_text().strip()}")
# Sauvegarder le HTML pour analyse
with open('viparis_debug.html', 'w', encoding='utf-8') as f:
f.write(response.text)
print(f"\n💾 HTML sauvegardé dans viparis_debug.html")
except Exception as e:
print(f"❌ Erreur: {e}")
if __name__ == "__main__":
analyze_viparis_structure()

View file

@ -0,0 +1,105 @@
#!/usr/bin/env python3
"""
Script de test pour analyser la structure des données Viparis
"""
import requests
import json
import re
from bs4 import BeautifulSoup
def analyze_viparis_data():
"""Analyse la structure des données Viparis"""
url = "https://www.viparis.com/actualites-evenements/evenements"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
try:
print(f"🔍 Analyse de la structure des données Viparis: {url}")
response = requests.get(url, headers=headers, timeout=30)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
# Chercher les scripts avec des données JSON
script_tags = soup.find_all('script')
for i, script in enumerate(script_tags):
if script.string and 'window.__NUXT__' in script.string:
print(f"\n📜 Script {i+1} trouvé avec window.__NUXT__")
script_content = script.string
# Extraire le JSON
match = re.search(r'window\.__NUXT__\s*=\s*({.*?});', script_content, re.DOTALL)
if match:
try:
nuxt_data = json.loads(match.group(1))
print("✅ JSON parsé avec succès")
# Analyser la structure
print(f"\n🔍 Structure de niveau 1:")
for key in nuxt_data.keys():
print(f" - {key}: {type(nuxt_data[key])}")
# Chercher les événements
if 'state' in nuxt_data:
state = nuxt_data['state']
print(f"\n🔍 Structure de state:")
for key in state.keys():
print(f" - {key}: {type(state[key])}")
# Chercher les événements dans différentes clés possibles
possible_event_keys = ['events', 'event', 'data', 'items', 'results']
for key in possible_event_keys:
if key in state:
events_data = state[key]
print(f"\n📅 Données d'événements trouvées dans '{key}':")
print(f" Type: {type(events_data)}")
if isinstance(events_data, list):
print(f" Nombre d'éléments: {len(events_data)}")
if events_data:
print(f" Premier élément: {json.dumps(events_data[0], indent=2)[:500]}...")
elif isinstance(events_data, dict):
print(f" Clés: {list(events_data.keys())}")
if 'data' in events_data:
data = events_data['data']
if isinstance(data, list):
print(f" Nombre d'événements dans data: {len(data)}")
if data:
print(f" Premier événement: {json.dumps(data[0], indent=2)[:500]}...")
# Chercher des patterns d'événements dans tout le JSON
print(f"\n🔍 Recherche de patterns d'événements...")
json_str = json.dumps(nuxt_data)
# Chercher des noms d'événements connus
event_names = ['BattleKart', 'Virtual Room', 'PRODURABLE', 'RÉÉDUCA', 'SALON']
for name in event_names:
if name in json_str:
print(f" ✅ Trouvé '{name}' dans les données")
# Chercher des dates
date_patterns = [r'\d{4}-\d{2}-\d{2}', r'\d{1,2}/\d{1,2}/\d{4}']
for pattern in date_patterns:
matches = re.findall(pattern, json_str)
if matches:
print(f" 📅 Dates trouvées ({pattern}): {matches[:5]}")
break
except json.JSONDecodeError as e:
print(f"❌ Erreur JSON: {e}")
continue
else:
print("❌ Pattern window.__NUXT__ non trouvé")
print("\n✅ Analyse terminée")
except Exception as e:
print(f"❌ Erreur: {e}")
if __name__ == "__main__":
analyze_viparis_data()

1760
extractors/viparis_events.py Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long