* Mise en cache du nombre d'articles lus et non-lus par flux, via
`f.cache_nbEntries, f.cache_nbUnreads` pour de biens meilleures
performances
* Implémente https://github.com/marienfressinaud/FreshRSS/issues/268
* Révision de la plupart des requêtes de modification en conséquence
* En cas d'affichage `not_read`, évite de faire une requête si on sait
déjà qu'il n'y a pas d'article non lu et fait directement un affichage
`all`.
* Appelle `cleanOldEntries` seulement une fois de temps en temps
aléatoirement (1 fois sur 30 actuellement) pour économiser les
ressources, et avant les insertions pour plus de robustesse.
* Utilisation des transactions lors de mises à jour multiples et liées
* Lors de requêtes de modifications, retourne le nombre de lignes
impactées plutôt qu'un booléen en cas de succès
* Suppression de code oublié relatif à is_public qui n'est plus utilisé
Pour avoir la notification après une optimisation, on doit invalider le
cache. Un peu dommage puisque rien de visible n'est changé sinon
À voir pour améliorer le système de notification plus tard
Le texte dans la base de données est en htmlspecialchars(UTF-8)
(c'est-à-dire avec `<>&'"` encodés) mais maintenant sans autre entité
HTML depuis
a4fc7becb8
Ce patch supprime les htmlspecialchars qui faisaient du double-encodage,
et en modifie d'autres en entrée.
* Suppression de requêtes inutiles en utilisant mieux les données déjà
reçues.
* Change la signature de `CategoryDAO->listCategories ($prePopulateFeeds
= true, $details = false)` pour ne pas charger de détails inutiles pour
la vue principale (comme feed.description, feed.url...).
* C'est la requête la plus importante.
Suite de https://github.com/marienfressinaud/FreshRSS/pull/180
Suppression de plusieurs requêtes count inutiles (genre
`$entryDAO->countNotRead()` avant un UPDATE), et suppression de
l'affichage du nombre d'articles total.
Corrige https://github.com/marienfressinaud/FreshRSS/issues/246
D'autres changements de types, toujours sans modification de
comportement, mais plus efficace.
En particulier char(6) plutôt que varchar(6) pour les identifiants en
attendant un entier, et varchar plutôt que text dans des champs
généralement courts et souvent retournés par les requêtes les plus
importantes
Chasse aux entités ! Nous devrions maintenant avoir des pages sans
entités HTML (mais bien sûr des entités XML) ni depuis FreshRSS ni
depuis le contenu.
N'ayant pas trouvé comment régler SimplePie pour ne pas avoir d'entités
HTML comme `é`, voici un patch qui les décode en sortie de
SimplePie tout en conservant les entités XML comme `&`.
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/247
Réduction de la durée du cache SimplePie pour pouvoir plus facilement
choisir la fréquence de rafraîchissement par Cron.
Serait peut-être mieux ailleurs.
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/250
Dans une prochaine version, les données issues des formulaires devront
être sauvegardées de façon brutes en BDD. htmlspecialchars ne sera
utilisé que du côté de la vue (voir pour utiliser une fonction qui
facilite ça)
Voir commit ff37ae8d49