From 6130ba6157fc214579a0466ec122a8f085224415 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 26 Nov 2013 23:52:53 +0100 Subject: SQL : utilisation de (id_feed, guid) pour l'unicité MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Préparation avant https://github.com/marienfressinaud/FreshRSS/issues/202 --- app/controllers/feedController.php | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'app/controllers/feedController.php') diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index 9ce38a03f..174cd9519 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -174,17 +174,14 @@ class feedController extends ActionController { $feed->load (); $entries = $feed->entries (); - //For this feed, check last n entry IDs already in database - $existingIds = array_fill_keys ($entryDAO->listLastIdsByFeed ($feed->id (), count($entries) + 10), 1); - - // ajout des articles en masse sans se soucier des erreurs - // On ne vérifie pas que l'article n'est pas déjà en BDD - // car demanderait plus de ressources - // La BDD refusera l'ajout de son côté car l'id doit être - // unique + //For this feed, check last n entry GUIDs already in database + $existingGuids = array_fill_keys ($entryDAO->listLastGuidsByFeed ($feed->id (), count($entries) + 10), 1); + + // On ne vérifie strictement que l'article n'est pas déjà en BDD + // La BDD refusera l'ajout car (id_feed, guid) doit être unique $feedDAO->beginTransaction (); foreach ($entries as $entry) { - if ((!isset ($existingIds[$entry->id ()])) && + if ((!isset ($existingGuids[$entry->guid ()])) && ($entry->date (true) >= $date_min || $feed->keepHistory ())) { $values = $entry->toArray (); -- cgit v1.2.3