From 4f186b1f10e748eacd636bfd8ff5bb6b585ddaaa Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 7 Jan 2016 21:49:31 +0300 Subject: [PATCH] fix broken article processing if ALLOW_DUPLICATE_POSTS is enabled --- include/rssfuncs.php | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/include/rssfuncs.php b/include/rssfuncs.php index f13ac36d..cd82481b 100755 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -751,10 +751,24 @@ WHERE id = '$base_entry_id'"); // if we allow duplicate posts, we have to continue to - // create the user entries for this feed - if (!get_pref("ALLOW_DUPLICATE_POSTS", $owner_uid, false)) { - continue; - } + // create the user entries for this feed (if needed) + if (get_pref("ALLOW_DUPLICATE_POSTS", $owner_uid, false)) { + + $query = "SELECT int_id FROM ttrss_user_entries WHERE + ref_id = '$base_entry_id' AND owner_uid = '$owner_uid' + AND (feed_id = '$feed' OR feed_id IS NULL) LIMIT 1"; + + $result = db_query($query); + + if (db_num_rows($result) == 0) { + _debug("allow duplicate posts is enabled and user record is not found, continuing."); + } else { + continue; + } + + } else { + continue; + } } _debug("hash differs, applying plugin filters:", $debug_enabled); @@ -919,15 +933,6 @@ id = '$ref_id'"); } */ - // check for user post link to main table - - // do we allow duplicate posts with same GUID in different feeds? - if (get_pref("ALLOW_DUPLICATE_POSTS", $owner_uid, false)) { - $dupcheck_qpart = "AND (feed_id = '$feed' OR feed_id IS NULL)"; - } else { - $dupcheck_qpart = ""; - } - if (find_article_filter($article_filters, "filter")) { //db_query("COMMIT"); // close transaction in progress continue; @@ -937,6 +942,15 @@ _debug("initial score: $score [including plugin modifier: $entry_score_modifier]", $debug_enabled); + // check for user post link to main table + + // do we allow duplicate posts with same GUID in different feeds? + if (get_pref("ALLOW_DUPLICATE_POSTS", $owner_uid, false)) { + $dupcheck_qpart = "AND (feed_id = '$feed' OR feed_id IS NULL)"; + } else { + $dupcheck_qpart = ""; + } + $query = "SELECT ref_id, int_id FROM ttrss_user_entries WHERE ref_id = '$ref_id' AND owner_uid = '$owner_uid' $dupcheck_qpart"; -- 2.39.2