Modification des entrées du site. Il est passé sur wordpress. Problème pour l'agenda, c'est que ics -> tranformé en rss
This commit is contained in:
@@ -1,26 +1,32 @@
|
||||
# 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 :
|
||||
agenda et page Facebook, a deployer sur un hebergement PHP mutualise
|
||||
(extensions `curl` et `dom` uniquement, aucun cron ni conf serveur : chaque
|
||||
flux se regenere a la demande et est mis en cache).
|
||||
|
||||
- **[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).
|
||||
Depuis le 14/10/2026, www.silly.be est passe de Plone (`imio.smartweb`) a
|
||||
WordPress. L'ancienne API JSON n'existe plus ; la variante Python
|
||||
(`silly_rss.py`) et ses fichiers de deploiement (nginx/cron) qui en
|
||||
dependaient ont ete supprimes (historique git). Nouvelles sources :
|
||||
|
||||
Les deux utilisent la meme source : l'API JSON REST (Plone / `imio.smartweb`)
|
||||
que www.silly.be charge en JS via les balises `<smartweb-news>` /
|
||||
`<smartweb-events>` — 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).
|
||||
| Flux | Source | Cache |
|
||||
| --- | --- | --- |
|
||||
| `actualites.php` | flux RSS WordPress `https://www.silly.be/actualites/feed/` (50 derniers articles via `?paged=1..5`, texte complet), re-servi tel quel avec `atom:link rel="self"` corrige | 15 min |
|
||||
| `agenda.php` | iCal officiel `https://www.silly.be/agenda/?ics=1`, converti en RSS (guid = UID, link = URL, description = dates + lieu + texte) | 12 h |
|
||||
| `facebook.php` | proxy du flux [FetchRSS](https://fetchrss.com) | 15 min |
|
||||
|
||||
## Option recommandee : PHP (hebergement perso — sillycone-village.be)
|
||||
Limites de l'agenda : l'iCal ne liste que les evenements a venir, et les
|
||||
regles de recurrence (`RRULE`) ne sont pas developpees. L'API REST
|
||||
`/wp-json/wp/v2/evenement` expose davantage d'evenements (passes inclus) mais
|
||||
sans aucune date (champ `acf` vide), donc inutilisable pour un agenda.
|
||||
|
||||
## Deploiement (hebergement perso — sillycone-village.be)
|
||||
|
||||
1. Copier tout le dossier [php/](php/) sur l'hebergement (FTP/SFTP), dans
|
||||
`silly-rss/` a la racine du site (Apache, confirme actif sur
|
||||
`sillycone-village.be`).
|
||||
2. Verifier que PHP a l'extension `curl` activee (quasi toujours le cas en
|
||||
2. Verifier que PHP a les extensions `curl` et `dom` activees (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`).
|
||||
@@ -38,50 +44,14 @@ Note CSP : `sillycone-village.be` sert ses pages HTML avec un
|
||||
concerne que le JS execute dans le navigateur sur ce site — sans impact ici
|
||||
puisque FreshRSS recupere les flux XML cote serveur.
|
||||
|
||||
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.
|
||||
Teste avec PHP 8.3 CLI (16/10/2026) : les 3 scripts produisent du XML bien forme
|
||||
avec de vraies donnees (10 actualites, 4 evenements).
|
||||
|
||||
## 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.
|
||||
Solution retenue : [FetchRSS](https://fetchrss.com) (service tiers),
|
||||
reproxifie sous votre propre domaine (`facebook.php`) pour avoir 3 URLs
|
||||
stables et partageables.
|
||||
|
||||
Reference in New Issue
Block a user