keotl / ohdieux

A podcast feed converted for Radio-Canada Ohdio / Un convertisseur de flux de balados pour Radio-Canada Ohdio
https://ohdieux.ligature.ca
GNU Affero General Public License v3.0
31 stars 5 forks source link

Permettre de forcer la mise à jours de la cache d'un lien RSS #8

Closed smsisko closed 1 year ago

smsisko commented 1 year ago

Je comprends l'utilité de DELAI_RAFRAICHISSEMENT_CACHE / CACHE_REFRESH_DELAY mais la plupart des balados que j'écoute sont mis à jour dans le même moment de la journée, par exemple "À la Une" est mis à jour vers environ 10:30 - 11:30 UTC, avec le fonctionnement courant, la première demande du lien après un redémarrage du serveur va établir l'horaire de rafraichissement du flux.

Ma première idée était d'essayer de forcer le délai initial pour se rapprocher du pubDate, mais je me suis rendu compte que même ohdio ne respectais pas vraiment ces heures-là.

Donc mon idée était de potentiellement ajouté un paramètre de plus qui pourrait force une mise à jour tout en contournant le DELAI_RAFRAICHISSEMENT_CACHE. Évidemment, je crois que ce serait une bonne idée de quand même limité l'utilisation de ce paramètre pour ne pas ajouter un moyen "facile" de faire une attaque de type déni de service sur le serveur. Je pensais à une augmentation de délais où c'est permis qui allonge à chaque appel, même si ce n'est pas fait.

keotl commented 1 year ago

Salut, j'ai essayé quelque chose en synchronisant le broadcastedFirstTimeAt du dernier épisode d'un programme (voir #9 ). Cela ferait l'hypothèse que les épisodes sont mis en ligne à la même heure, chaque jour où il y a un nouvel épisode. Ce n'est évidemment pas parfait, mais cela semble fonctionner pour quelques programmes que j'ai regardés, par exemple 9887. Le fix est présentement déployé sur ohdieux.ligature.ca pour tester.

smsisko commented 1 year ago

J'ai regardé ce matin, et j'ai probablement été le premier rafraichissement du programme 302, il était environ 10:25 UTC et la lecture a été plus longue (et malheureusement n'avait pas l'épisode du jour)... J'ai rafraichi plus tard et le lastBuildDate s'est mis à jour, mais pas le contenu.

keotl commented 1 year ago

Salut @smsisko , j'ai retravaillé la logique de caching pour vérifier au maximum à chaque 5 minutes s'il y a des changements à relire. Ça devrait permettre de rafraîchir correctement les émissions qui ne mettent pas à jour leur broadcastedFirstTimeAt correctement. Le fix est dans #13 et est déjà accessible sur ohdieux.ligature.ca.

smsisko commented 1 year ago

En théorie, ça semble parfait, mais en pratique, ça ne semble pas marcher. Si je prends exemple avec https://ohdieux.ligature.ca/rss?programme_id=302 hier, j'ai eu la mise à jour du matin en après-midi (et j'ai observé la même chose avec une autre émission). J'ai commencé à regarder le PR, mais il y a beaucoup de changement, et je ne crois pas pouvoir trouver le problème de cette façon.

keotl commented 1 year ago

Je crois avoir trouvé le problème. Cela devrait fonctionner correctement maintenant :crossed_fingers:

smsisko commented 1 year ago

Ça effectivement marcher très bien ce matin, un gros merci pour ça

smsisko commented 1 year ago

Le site semble avoir crashé