Browse Source

Fix bug JSON import duplicates

https://github.com/FreshRSS/FreshRSS/issues/1312
Alexandre Alapetite 9 năm trước cách đây
mục cha
commit
a0127d980c

+ 13 - 1
app/Controllers/importExportController.php

@@ -360,6 +360,14 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
 			}
 			}
 		}
 		}
 
 
+		$newGuids = array();
+		foreach ($article_object['items'] as $item) {
+			$newGuids[] = $item['id'];
+		}
+		// For this feed, check existing GUIDs already in database.
+		$existingHashForGuids = $entryDAO->listHashForFeedGuids($feed->id(), $newGuids);
+		unset($newGuids);
+
 		// Then, articles are imported.
 		// Then, articles are imported.
 		$this->entryDAO->beginTransaction();
 		$this->entryDAO->beginTransaction();
 		foreach ($article_object['items'] as $item) {
 		foreach ($article_object['items'] as $item) {
@@ -395,7 +403,11 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
 			}
 			}
 
 
 			$values = $entry->toArray();
 			$values = $entry->toArray();
-			$id = $this->entryDAO->addEntry($values);
+			if (isset($existingHashForGuids[$entry->guid()])) {
+				$id = $this->entryDAO->updateEntry($values);
+			} else {
+				$id = $this->entryDAO->addEntry($values);
+			}
 
 
 			if (!$error && ($id === false)) {
 			if (!$error && ($id === false)) {
 				$error = true;
 				$error = true;