# Flux RSS - Commune de Silly Genere trois flux RSS/Atom pour la commune de Silly (Belgique) : actualites, agenda et page Facebook. Deux implementations equivalentes sont fournies : - **[php/](php/)** — a deployer sur un hebergement PHP mutualise classique. **Recommande** : aucun cron ni conf serveur a ecrire, chaque flux se regenere a la demande (avec cache 15 min) des qu'un lecteur RSS l'interroge. - **[silly_rss.py](silly_rss.py)** — script Python autonome a lancer via cron, pour un serveur ou vous controlez le cron/nginx (ex. Yunohost). Les deux utilisent la meme source : l'API JSON REST (Plone / `imio.smartweb`) que www.silly.be charge en JS via les balises `` / `` — pas besoin de navigateur headless. Le detail technique (empreinte Cloudflare, contrainte `b_size=20`) est commente dans [php/common.php](php/common.php) et [silly_rss.py](silly_rss.py). ## Option recommandee : PHP (hebergement perso) 1. Copier tout le dossier [php/](php/) sur l'hebergement (FTP/SFTP), par ex. dans `silly-rss/` a la racine du site. 2. Verifier que PHP a l'extension `curl` activee (quasi toujours le cas en mutualise standard). 3. Le dossier `php/cache/` doit etre inscriptible par PHP (permissions par defaut suffisent generalement sur du mutualise ; sinon `chmod 775`). 4. Les flux sont alors accessibles en : - `https://votre-site/silly-rss/actualites.php` - `https://votre-site/silly-rss/agenda.php` - `https://votre-site/silly-rss/facebook.php` (proxy/cache du flux [FetchRSS](https://fetchrss.com) de la page Facebook, pour avoir une URL stable sur votre propre domaine) 5. Ajouter ces 3 URLs comme sources dans FreshRSS (Administration > Flux RSS > Ajouter un flux). Teste avec PHP 8.3 CLI : les 3 scripts produisent du XML valide avec de vraies donnees (40 actualites, 12 evenements, flux Facebook proxifie). ## Option alternative : Python + cron (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/akbar.nohost.me.d/silly-rss.conf` puis : ```bash sudo nginx -t && sudo systemctl reload nginx ``` NB : `/rss` est deja pris par FreshRSS sur ce domaine, d'ou le choix de `/silly-rss/` comme chemin. 4. **Premiere generation** (avant le premier passage du cron) : ```bash python3 silly_rss.py /var/www/silly-rss ``` 5. **FreshRSS** — ajouter comme sources : - `https://akbar.nohost.me/silly-rss/actualites.xml` - `https://akbar.nohost.me/silly-rss/agenda.xml` Cette option ne gere pas Facebook (pas de proxy) : ajouter directement l'URL FetchRSS dans FreshRSS si vous utilisez cette variante. ## Facebook (page communedesilly) Pas de solution fiable trouvee en scraping direct : le HTML de facebook.com est vide de contenu exploitable sans authentification, et l'instance RSS-Bridge testee (`FacebookBridge`) renvoie une erreur 400. Solution retenue : [FetchRSS](https://fetchrss.com) (service tiers). La variante PHP le reproxifie sous votre propre domaine (`facebook.php`) pour avoir 3 URLs stables et partageables ; la variante Python s'appuie directement sur l'URL FetchRSS.