mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-03-17 13:56:40 -04:00
Merge pull request #1638 from Alkarex/tmp_unique_guids
Fix SQL constraint insert into entrytmp table
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
* Fix month abbreviations [#1560](https://github.com/FreshRSS/FreshRSS/issues/1560)
|
||||
* Bug fixing
|
||||
* Fix API compatibility bug between PostgreSQL and EasyRSS [#1603](https://github.com/FreshRSS/FreshRSS/pull/1603)
|
||||
* Fix PostgreSQL error when adding entries with duplicated GUID [#1610](https://github.com/FreshRSS/FreshRSS/issues/1610)
|
||||
* Fix PostgreSQL error when adding entries with duplicated GUID [#1610](https://github.com/FreshRSS/FreshRSS/issues/1610), [#1614](https://github.com/FreshRSS/FreshRSS/issues/1614)
|
||||
* Fix for RSS feeds containing HTML in author field [#1590](https://github.com/FreshRSS/FreshRSS/issues/1590)
|
||||
* Fix logout issue in global view due to CSRF [#1591](https://github.com/FreshRSS/FreshRSS/issues/1591)
|
||||
* Misc.
|
||||
|
||||
@@ -320,11 +320,16 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
|
||||
}
|
||||
// For this feed, check existing GUIDs already in database.
|
||||
$existingHashForGuids = $entryDAO->listHashForFeedGuids($feed->id(), $newGuids);
|
||||
unset($newGuids);
|
||||
$newGuids = array();
|
||||
|
||||
$oldGuids = array();
|
||||
// Add entries in database if possible.
|
||||
foreach ($entries as $entry) {
|
||||
if (isset($newGuids[$entry->guid()])) {
|
||||
continue; //Skip subsequent articles with same GUID
|
||||
}
|
||||
$newGuids[$entry->guid()] = true;
|
||||
|
||||
$entry_date = $entry->date(true);
|
||||
if (isset($existingHashForGuids[$entry->guid()])) {
|
||||
$existingHash = $existingHashForGuids[$entry->guid()];
|
||||
|
||||
@@ -426,7 +426,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
|
||||
}
|
||||
// For this feed, check existing GUIDs already in database.
|
||||
$existingHashForGuids = $this->entryDAO->listHashForFeedGuids($feed->id(), $newGuids);
|
||||
unset($newGuids);
|
||||
$newGuids = array();
|
||||
|
||||
// Then, articles are imported.
|
||||
$this->entryDAO->beginTransaction();
|
||||
@@ -455,6 +455,11 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
|
||||
$entry->_id(min(time(), $entry->date(true)) . uSecString());
|
||||
$entry->_tags($tags);
|
||||
|
||||
if (isset($newGuids[$entry->guid()])) {
|
||||
continue; //Skip subsequent articles with same GUID
|
||||
}
|
||||
$newGuids[$entry->guid()] = true;
|
||||
|
||||
$entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry);
|
||||
if ($entry == null) {
|
||||
// An extension has returned a null value, there is nothing to insert.
|
||||
|
||||
Reference in New Issue
Block a user