diff options
author | Andrew Dolgov <[email protected]> | 2012-09-15 19:44:33 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-09-15 19:44:33 +0400 |
commit | 71b6a2360e8513237c840920a8017b9e3def987f (patch) | |
tree | 7e2f087b28d08b658a385480f833d0e322580a90 /include | |
parent | c6c010d98a7c67d00c55351b226bfaffb5dcd40d (diff) |
create_published_article: check for duplicate URLs
Diffstat (limited to 'include')
-rw-r--r-- | include/functions.php | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/include/functions.php b/include/functions.php index 3af4af350..b49e0b729 100644 --- a/include/functions.php +++ b/include/functions.php @@ -5617,26 +5617,48 @@ if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) return false; - $result = db_query($link, "INSERT INTO ttrss_entries - (title, guid, link, updated, content, content_hash, date_entered, date_updated) - VALUES - ('$title', '$guid', '$url', NOW(), '$content', '$content_hash', NOW(), NOW())"); - - $result = db_query($link, "SELECT id FROM ttrss_entries WHERE guid = '$guid'"); + $result = db_query($link, "SELECT id FROM ttrss_entries WHERE + link = '$url' LIMIT 1"); if (db_num_rows($result) != 0) { $ref_id = db_fetch_result($result, 0, "id"); - db_query($link, "INSERT INTO ttrss_user_entries - (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread) - VALUES - ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)"); + $result = db_query($link, "SELECT int_id FROM ttrss_user_entries WHERE + ref_id = '$ref_id' AND owner_uid = '$owner_uid'"); + + if (db_num_rows($result) != 0) { + db_query($link, "UPDATE ttrss_user_entries SET published = true WHERE + ref_id = '$ref_id' AND owner_uid = '$owner_uid'"); + } else { + + db_query($link, "INSERT INTO ttrss_user_entries + (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread) + VALUES + ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)"); + } return true; - } + } else { + $result = db_query($link, "INSERT INTO ttrss_entries + (title, guid, link, updated, content, content_hash, date_entered, date_updated) + VALUES + ('$title', '$guid', '$url', NOW(), '$content', '$content_hash', NOW(), NOW())"); - return false; + $result = db_query($link, "SELECT id FROM ttrss_entries WHERE guid = '$guid'"); + + if (db_num_rows($result) != 0) { + $ref_id = db_fetch_result($result, 0, "id"); + + db_query($link, "INSERT INTO ttrss_user_entries + (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread) + VALUES + ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)"); + + return true; + } + return false; + } } ?> |