aboutsummaryrefslogtreecommitdiff
path: root/app/models/Entry.php
AgeCommit message (Collapse)Author
2013-12-15Delete Entry.phpGravatar Alexandre Alapetite
2013-12-15Grosse refactorisation pour permettre le chargement automatique des classesGravatar Alexandre Alapetite
C'est parti de changements pour https://github.com/marienfressinaud/FreshRSS/issues/255 et finalement j'ai continué la refactorisation... Ajout de préfixes FreshRSS_ et Minz_ sur le modèle de SimplePie_. Toutes les classes sont maintenant en chargement automatique (devrait améliorer les performances en évitant de charger plein de classes inutilisées, et faciliter la maintenance). Suppression de set_include_path(). Si souhaité, certaines classes de Minz pourraient être déplacées dans un sous-répertoire, par exemple les exceptions. Tests et relecture nécessaires.
2013-12-14Nettoyage des flux plus intelligentGravatar Alexandre Alapetite
Implémente https://github.com/marienfressinaud/FreshRSS/issues/323 Garde au moins n+10 articles, où n est le nombre d'articles toujours présent dans le flux RSS.
2013-12-12Microtime : récupération de toutes les microsecondesGravatar Alexandre Alapetite
Microtime(true) dépend de la précision de PHP définie dans php.ini, et par défaut, nous perdons les deux dernières décimales des microsecondes. Du coup, sur une machine très rapide, cela aurait pu poser des problèmes d'identifiants dupliqués. Patch utilisant gettimeofday() à la place. Au passage, reste en string tout le long et plus besoin de faire la conversion CAST(? * 1000000 AS SIGNED INTEGER) côté base de données. https://github.com/marienfressinaud/FreshRSS/issues/202
2013-12-03Corrige bug marquage favoris pour f.priority = 0Gravatar Alexandre Alapetite
https://github.com/marienfressinaud/FreshRSS/issues/270
2013-12-03Corrige bug marquer tous les favoris comme lusGravatar Alexandre Alapetite
Corrige https://github.com/marienfressinaud/FreshRSS/issues/270
2013-12-02PHP : suppression autres alertesGravatar Alexandre Alapetite
Voir https://github.com/marienfressinaud/FreshRSS/issues/310
2013-12-01PHP ctype_digitGravatar Alexandre Alapetite
Utilisation d'une fonction plus appropriée pour tester si une chaîne représente un nombre entier Corrige un bug de date
2013-11-30Optimisation recherche et paginationGravatar Alexandre Alapetite
* Optimisation recherche SQL avec utilisation de HAVING plutôt que WHERE * Simplification et amélioration des performances en supprimant de RSSPaginator qui n'aidait plus vraiment et nécessitait plus de code et des copies de données. * Correction d'un bug dans le titre de la page introduit récemment, et simplification
2013-11-30Recherche côté SQL avec LIKEGravatar Alexandre Alapetite
Premier essai de recherche côté base de données (à améliorer) https://github.com/marienfressinaud/FreshRSS/issues/204 Pour l'instant fait avec du LIKE et pas d'indexation texte complet. * Suppression de EntriesGetter car le code est devenu plus simple grâce au filtrage côté SQL * Uniformisation de get_c à une lettre ('all' devient 'a','favoris' devient 's' - pour "starred") pour simplifier le code * low_to_high par DESC, high_to_low par ASC * Réduction du nombre de créations de *DAO dans indexController * Refactorisation de checkAndProcessType() Pas encore trop testé...
2013-11-30SQL : compression côté base de données (attention, perte de compatibilité)Gravatar Alexandre Alapetite
Ça y est, j'ai tout cassé... Contribue à https://github.com/marienfressinaud/FreshRSS/issues/204 Compatible MySQL 5.0. Commentaires souhaités avant l'implémentation de la recherche côté base de données. Pour l'instant, je n'ai pas fait de script de mise à jour, car la manière précédente `base64_encode(gzdeflate(serialize($content)))` est difficile à traiter côté MySQL et nécessite une boucle en PHP. Avec la nouvelle approche de ce patch, nous pourrons plus facilement changer d'avis sans perte de compatibilité.
2013-11-28Protection des requêtes SQLGravatar Alexandre Alapetite
Corrige https://github.com/marienfressinaud/FreshRSS/issues/294
2013-11-28e.id utilise la date déclarée pour les nouveaux fluxGravatar Alexandre Alapetite
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/202
2013-11-28Classement par date d'ajout e.id (expérimentation)Gravatar Alexandre Alapetite
Expérimentation : classement par date d'ajout dans la base plutôt que selon la date déclarée par le flux (qui est parfois fausse dans le passé, dans le futur, ou absente). Quelques conséquences : * Les flux avec des dates erronées ne sont plus un problème * Lorsqu'on fait "marquer tout comme lu", les articles arrivés pendant la lecture ne sont plus indûment marqués comme lus * Les articles ont tendance à être plus regroupés par flux lorsqu'on les affiche par catégorie * Si un utilisateur n'utilise pas de cron et n'utilise pas FreshRSS pendant plusieurs jours, lors du rafraîchissement, les nouveaux articles seront dans "Aujourd'hui" (à interpréter donc comme les articles reçus aujourd'hui, et non comme déclarés comme étant publiés aujourd'hui) * La pagination est plus efficace Termine l'implémentation de https://github.com/marienfressinaud/FreshRSS/issues/202
2013-11-27Suite de e.id en bigintGravatar Alexandre Alapetite
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/202
2013-11-27SQL : Passe e.id en bigint plutôt que char(6)Gravatar Alexandre Alapetite
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/202 e.id est généré à l'insertion par microtime(true).
2013-11-26SQL : utilisation de (id_feed, guid) pour l'unicitéGravatar Alexandre Alapetite
Préparation avant https://github.com/marienfressinaud/FreshRSS/issues/202
2013-11-24OPML : corrections import/exportGravatar Alexandre Alapetite
À tester plus. En particulier, ne supporte pas bien les fichiers OPML qui sont à la fois avec des entités HTML et pas en UTF-8. Devrait corriger https://github.com/marienfressinaud/FreshRSS/issues/287
2013-11-19SQL : UNIQUE(e.id_feed, e.guid)Gravatar Alexandre Alapetite
Préparation de GUID en prévision de https://github.com/marienfressinaud/FreshRSS/issues/202
2013-11-18SQL : identifiant entier automatique pour les catégories et les fluxGravatar Alexandre Alapetite
Implémentation de https://github.com/marienfressinaud/FreshRSS/issues/262 La catégorie par défaut à le numéro 1. Les numéros de catégories et de flux sont automatiques (1, 2, 3...) L'installeur semble marcher.
2013-11-17Corrections install.phpGravatar Alexandre Alapetite
Première version fonctionnelle https://github.com/marienfressinaud/FreshRSS/issues/273
2013-11-17Début de multi-utilisateursGravatar Alexandre Alapetite
Préparation de https://github.com/marienfressinaud/FreshRSS/issues/126 Suite de https://github.com/marienfressinaud/FreshRSS/issues/248 Nécessite un script de mise à jour https://github.com/marienfressinaud/FreshRSS/issues/255 Install.php n'est pas encore testé https://github.com/marienfressinaud/FreshRSS/issues/273
2013-11-16SQL : grosse mise à jour avec mise en cache du nombre d'articles lus/non-lusGravatar Alexandre Alapetite
* 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é
2013-11-13Affichage du nombre total d'article sur la page de configurationGravatar Alexandre Alapetite
https://github.com/marienfressinaud/FreshRSS/issues/263 Style à améliorer éventuellement
2013-11-12Cohérence htmlspecialcharsGravatar Alexandre Alapetite
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 https://github.com/marienfressinaud/FreshRSS/commit/a4fc7becb8553198d132633d775989c89c8116cd Ce patch supprime les htmlspecialchars qui faisaient du double-encodage, et en modifie d'autres en entrée.
2013-11-12SQL : Optimisation vitesseGravatar Alexandre Alapetite
Optimisation de la vitesse de quelques requêtes, surtout après les essais d'INDEX. Suite de https://github.com/marienfressinaud/FreshRSS/issues/254 Note pour plus tard : il faudra supprimer les INDEX inutilisés.
2013-11-11MySQL : changements mineurs de typesGravatar Alexandre Alapetite
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
2013-11-11MySQL : Longueurs maximum des champs texteGravatar Alexandre Alapetite
Ajout de sécurités pour ne pas dépasser les longueurs de texte déclarées dans MySQL (varchar ou text selon les champs)
2013-11-09Affichage dynamique des favoris non lusGravatar Alexandre Alapetite
Corrige https://github.com/marienfressinaud/FreshRSS/issues/222 Il reste toujours une situation curieuse lorsqu'on a fini de lire tous les favoris non-lus, mais à voir une autre fois
2013-11-05Actualize : évite d'ajouter les articles déjà connusGravatar Alexandre Alapetite
Dans la plupart des cas, évite d'ajouter les articles déjà présents dans la base de données, en faisant une pré-requête (une par flux, pas une par article). Par exemple, si un flux RSS fournit 20 articles, alors la pré-requête charge une liste d'exclusion de 20+2 identifiants d'articles. Ce patch réduit considérablement le nombre de requêtes et la charge de la base de données durant les mises à jour, et en particulier le trafic réseau entre PHP et la base de données. Les mises à jour sont du coup aussi plus rapides.
2013-10-30Hack temporaire en attendant la recherche côté base-de-donnéesGravatar Alexandre Alapetite
Limite la recherche aux 20000 plus récents articles, en attendant https://github.com/marienfressinaud/FreshRSS/issues/204
2013-09-15Issue #155 : correction bug prefix table SQLGravatar Marien Fressinaud
Le préfixe freshrss_ était rentré en dur dans une des requêtes
2013-09-14Issue #155 : suppression fonctions commentéesGravatar Marien Fressinaud
2013-09-14Merge branch 'SqlOptimisation' of https://github.com/Alkarex/FreshRSS into ↵Gravatar Marien Fressinaud
Alkarex-SqlOptimisation Conflicts: app/controllers/feedController.php
2013-09-14Fix issue #151 : marquer lus les articles du futurGravatar Marien Fressinaud
On peut désormais marquer comme lu les articles parus dans le futur
2013-09-04Handle paging for entries with identical dateGravatar Alexandre Alapetite
Paging now works even when many entries have the same date. SQL speed could probably be improved by testing first on date, and then on CONCAT. Also, having an index on date would probably help too.
2013-09-04Work aroundGravatar Alexandre Alapetite
In the current SQL request with LIMIT, if many dates are identical, the pagination may not work properly. Added a little more tolerance, but will have to be solved better.
2013-09-03Disable SQL LIMIT optimisation during searchGravatar Alexandre Alapetite
This patch is to make search work again after the new SQL optimisations, by removing some of the optimisations when searching is used. Optimisation of search is left for some future work. The whole base is indeed transfered from MySQL to PHP, which is not good.
2013-09-02SQL and model optimisationGravatar Alexandre Alapetite
Big effect (on speed and memory), but few changes :-) Drastically reduced the number of SQL requests needed (from 233 down to 8 to load the home page with my own data set = 140 feeds in 15 categories). Drastically reduced the amount of data transferred from MySQL to PHP.
2013-08-26Change filter of expected SQL errorsGravatar Alexandre Alapetite
Filter out "SQLSTATE Class code 23: Constraint Violation" because of expected duplicate entries. Consider adding a Minz_Log::DEBUG level
2013-08-22Fix issue #118 : option pour garder historiqueGravatar Marien Fressinaud
*** ATTENTION, MODIFICATION DE LA BDD *** Cette option permet de garder les vieux articles d'un flux en même s'ils sont plus vieux que la limite des X mois d'historique (3 par défaut) Les modifications de la base de données : - ajout du champ "keep_history int(1) DEFAULT 0" à la table feed - suppression des champs "is_public" et "lastUpdate" de la table entry (n'étaient plus utilisés de toute façon)
2013-08-18Issue #100 : base pour utilisation SQLiteGravatar Marien Fressinaud
Ajout de la structure pour l'utilisation de SQLite. Tout n'est pas fonctionnel, loin de là, certaines requêtes SQL ne passent pas. Pour essayer tout de même, décommenter le bloc TODO dans le fichier public/install.php
2013-08-18Amélioration de l'installateur + préfixe BDDGravatar Marien Fressinaud
Fix issue #96 : on peut désormais choisir un préfixe aux tables de la BDD lors de l'installation Fix issue #115 : échappement des guillemets pendant la phase d'installation Fix issue #116 : le thème de l'installateur est désormais accessible FIx issue #117 : rajout du test de la présence DOMDocument lors de l'installation. Si non présent, on peut pas accéder aux flux RSS. Normalement fourni sur un système RedHat-like par le paquet php-xml
2013-07-27Fix issue #106 : modif nom classes Cache et LogGravatar Marien Fressinaud
Passage en Minz_Cache et Minz_Log Permet d'éviter les redondances quand ces classes sont déjà définies Je n'utilise pas d'espace de nom parce que beaucoup de boulot et nécessite obligatoirement php 5.3 Si d'autres classes nécessitent cette modification je le ferai au fur et à mesure qu'on me remontera les soucis La version de Minz pour FreshRSS n'est plus compatible avec la version distribuée à part
2013-07-26Fix issue #111 : index httpAuth ajouté (OPML)Gravatar Marien Fressinaud
Il manquait cet index lors de l'ajout d'un flux par import OPML, c'est ok maintenant
2013-06-15Fix issue #69 : ajout d'une option pour optimiser la BDD + correction bug ↵Gravatar Marien Fressinaud
script actualisation lorsque connexion paramétrée
2013-06-15Fix issue #85 : la récupération des flux tronqués vérifie d'abord si ↵Gravatar Marien Fressinaud
l'article n'est pas déjà en BDD pour éviter énormément de requêtes inutiles
2013-06-14Fix issue #79 : possibilité de changer le nom d'un fluxGravatar Marien Fressinaud
2013-05-02Correction bug lors de la recherche d'un article (EntryDAO->searchById())Gravatar Marien Fressinaud
2013-04-29Revue de code pour la récupération des articles : ATTENTION GROS ↵Gravatar Marien Fressinaud
CHANGEMENTS, aucune garantie de stabilité et possibles régressions. La recherche dans le contenu des articles fonctionnent et possibilité de rechercher des tags