tontof / kriss_feed

A simple and smart (or stupid) feed reader
279 stars 52 forks source link

Update does not retrieve all articles #426

Closed doc75 closed 3 years ago

doc75 commented 3 years ago

J'ai remarqué récemment que certains flux n'étaient plus mis à jour en mode d'update normal et qu'il fallait que je force la mise à jour. Je soupçonne que ce changement de comportement récent est lié au dernier commit qui modifie le code de gestion des headers curl (je me demande si avec cette modif les headers ne sont pas envoyés dans tous les cas, même s'ils sont vide alors qu'avant ils n'étaient envoyé que dans un cas précis).

Voici les tests que j'ai fait:

Version 8.11:

Version 8.12:

La différence de nombre d'article après le force update entre les tests 8.11 et 8.12 est lié au fait qu'il y a de nouveau articles dans certains feeds.

je soupçonne que le code suivant dans la fonction loadUrl envoie toujours le header en 8.12 alors qu'en 8.11 elle ne l'envoyait que si on était passé avant dans initFeedCache:

    if (!empty($opts['http']['headers'])) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['http']['headers']);

Est-il possible de revenir en arrière ou de s'assurer que les headers ne sont pas envoyés s'ils ne sont pas settés ?

Désolé si mon analyse est erronée ou incomplète, je ne suis pas un spécialiste PHP.

tontof commented 3 years ago

Je pense que c'était lié à ce test : https://github.com/tontof/kriss_feed/blob/0b4cb3869492bb679b05d50669763263d806af3a/src/class/MyTool.php#L48 Comme l'initialisation de l'option http était faite dans la classe MyTool le test était toujours vrai (d'ailleurs j'aurais peut-être dû l'enlever) mais ça modifiait donc les valeurs pour timeout et useragent. Est-que la version 8.13 corrige le problème ? Est-ce que les 4 tests ont bien été réalisés à partir d'une même copie originale ?

doc75 commented 3 years ago

@tontof je fais le test ce soir ou demain pour voir si la 8.13 corrige le souci. Pour les tests, j'ai fait l'update puis l'update en mode force sans revenir sur le même jeu de donnée. Par contre entre le test avec la 8.11 et la 8.12, j'ai démarrer sur un restore du même backup.

doc75 commented 3 years ago

@tontof malheureusement la version 8.13 ne corrige pas le problème..

Voici le résultat pour une mise à jour normale (pas en mode force), en démarrant à chaque fois d'une restauration de la même sauvegarde (seul le fichier index.php diffère entre les tests)

version 8.11:

version 8.12:

version 8.13:

tontof commented 3 years ago

Wow, je n'ai aucune idée mais j'arrive à reproduire le problème je vais donc pouvoir étudier pour trouver une solution.

tontof commented 3 years ago

C'est normalement corrigé avec la version 8.14 : https://github.com/tontof/kriss_feed/commit/7f526db44ff8470a22e7007d0ccf8643c080618b

doc75 commented 3 years ago

@tontof Merci beaucoup pour le fix rapide. Je confirme que le dernier commit permet de retrouver la situation que l'on avait avec la versoin 8.11.

Fixed with https://github.com/tontof/kriss_feed/commit/7f526db44ff8470a22e7007d0ccf8643c080618b (v 8.14)