Add RSS feed generator for commune de Silly (actualites + agenda)
Scrapes the imio.smartweb JSON API used by www.silly.be (found via the smartweb-news/smartweb-events web components in the raw HTML) instead of needing a headless browser. Shells out to curl since Cloudflare silently blocks Python's urllib/requests TLS fingerprint. Includes Yunohost cron and nginx deployment snippets. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Flux RSS - Commune de Silly
|
||||
|
||||
Genere deux flux RSS 2.0 (actualites + agenda) pour la commune de Silly
|
||||
(Belgique), a partir de l'API JSON REST (Plone / `imio.smartweb`) utilisee
|
||||
par www.silly.be — sans navigateur headless.
|
||||
|
||||
Voir [silly_rss.py](silly_rss.py) pour le detail technique (empreinte
|
||||
Cloudflare, contrainte `b_size=20`, etc.).
|
||||
|
||||
## Utilisation manuelle
|
||||
|
||||
```bash
|
||||
python3 silly_rss.py /chemin/de/sortie
|
||||
```
|
||||
|
||||
Genere `actualites.xml` et `agenda.xml` dans le dossier indique (`.` par
|
||||
defaut). Aucune dependance externe : Python 3.10+ (stdlib) et `curl`
|
||||
(present par defaut sur Yunohost).
|
||||
|
||||
## Deploiement sur Yunohost
|
||||
|
||||
1. **Dossier de sortie**
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /var/www/silly-rss
|
||||
sudo chown $(whoami):www-data /var/www/silly-rss
|
||||
```
|
||||
|
||||
2. **Cron** — voir [deploy/silly-rss.cron](deploy/silly-rss.cron) pour la
|
||||
ligne a ajouter via `crontab -e` (execution toutes les heures).
|
||||
|
||||
3. **nginx** — voir [deploy/nginx-silly-rss.conf](deploy/nginx-silly-rss.conf),
|
||||
a copier dans `/etc/nginx/conf.d/<votre-domaine>.d/silly-rss.conf` puis :
|
||||
|
||||
```bash
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
4. **Premiere generation** (avant le premier passage du cron) :
|
||||
|
||||
```bash
|
||||
python3 silly_rss.py /var/www/silly-rss
|
||||
```
|
||||
|
||||
5. **FreshRSS** — ajouter comme sources :
|
||||
- `https://<votre-domaine>/silly-rss/actualites.xml`
|
||||
- `https://<votre-domaine>/silly-rss/agenda.xml`
|
||||
|
||||
## Facebook (page communedesilly)
|
||||
|
||||
Pas de solution fiable trouvee : le HTML de facebook.com est vide de
|
||||
contenu exploitable sans authentification, et l'instance RSS-Bridge testee
|
||||
(`FacebookBridge`) renvoie une erreur 400. Recommandation : un service
|
||||
tiers specialise (RSS.app, Fetch RSS) plutot qu'un scraper maison, qui
|
||||
sera cassé au premier changement de Facebook.
|
||||
Reference in New Issue
Block a user