Initial commit: event-creator userscript
Auto-generate ICS calendar events from selected text using chrono-node. Bundles chrono-node inline (no external CDN dependency) and includes @updateURL/@downloadURL for Violentmonkey auto-update. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
commit
1f4bce1e95
2 changed files with 471 additions and 0 deletions
431
event-creator.user.js
Normal file
431
event-creator.user.js
Normal file
File diff suppressed because one or more lines are too long
40
specs.md
Normal file
40
specs.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# event-creator
|
||||
|
||||
Userscript Violentmonkey universel : sélectionner du texte sur n'importe quelle page pour créer un fichier ICS téléchargeable.
|
||||
|
||||
## Cas d'usage
|
||||
Sites de calendrier grenoblois (La Bobine, Summum, MC2, Le Tamis, agenda.grenoble.fr…) où les infos d'événement sont éparpillées sur la page.
|
||||
|
||||
## Flow utilisateur
|
||||
1. Sélectionner le texte contenant les infos de l'événement
|
||||
2. Cliquer sur la bulle qui apparaît au-dessus de la sélection
|
||||
3. Vérifier/corriger les champs dans le formulaire de confirmation
|
||||
4. Cliquer "Télécharger .ics"
|
||||
|
||||
## Champs du formulaire
|
||||
- Titre (extrait du texte)
|
||||
- Date (input `type="date"`)
|
||||
- Heure début / Heure fin (input `type="time"`)
|
||||
- Lieu
|
||||
- Description (texte sélectionné en entier)
|
||||
- URL source (URL de la page, en lecture seule)
|
||||
|
||||
## Extraction heuristique
|
||||
- **Titre** : première ligne sans date
|
||||
- **Date** : regex sur formats français ("15 mars 2025", "samedi 20 juin", "15/03/2025")
|
||||
- **Heures** : "20h30", "20h", "20:30", "à 20h"
|
||||
- **Lieu** : ligne contenant un mot-clé de lieu (salle, théâtre, cinéma, café…) ou commençant par "à / au / chez"
|
||||
- **Description** : texte sélectionné complet
|
||||
|
||||
## Règles de durée
|
||||
- Heure de fin détectée → utilisée
|
||||
- Heure de début seulement → fin = début + 1h
|
||||
- Aucune heure → événement journée entière
|
||||
|
||||
## Sortie ICS
|
||||
Champs : SUMMARY, DTSTART, DTEND, LOCATION, DESCRIPTION, URL
|
||||
|
||||
## Tech
|
||||
- Un seul fichier `.user.js`
|
||||
- JS pur, aucune dépendance externe
|
||||
- `@match *://*/*`
|
||||
Loading…
Add table
Add a link
Reference in a new issue