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>
1.7 KiB
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 pour le detail technique (empreinte
Cloudflare, contrainte b_size=20, etc.).
Utilisation manuelle
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
-
Dossier de sortie
sudo mkdir -p /var/www/silly-rss sudo chown $(whoami):www-data /var/www/silly-rss -
Cron — voir deploy/silly-rss.cron pour la ligne a ajouter via
crontab -e(execution toutes les heures). -
nginx — voir deploy/nginx-silly-rss.conf, a copier dans
/etc/nginx/conf.d/<votre-domaine>.d/silly-rss.confpuis :sudo nginx -t && sudo systemctl reload nginx -
Premiere generation (avant le premier passage du cron) :
python3 silly_rss.py /var/www/silly-rss -
FreshRSS — ajouter comme sources :
https://<votre-domaine>/silly-rss/actualites.xmlhttps://<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.