new option - ALLOW_DUPLICATE_POSTS

This commit is contained in:
Andrew Dolgov 2005-11-19 11:32:59 +01:00
parent 35d8cf43bc
commit 71604ca4e9
3 changed files with 25 additions and 5 deletions

View File

@ -52,6 +52,10 @@
} }
} }
// purge orphaned posts in main content table
db_query($link, "DELETE FROM ttrss_entries WHERE
(SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0");
} }
function purge_old_posts($link) { function purge_old_posts($link) {
@ -72,6 +76,10 @@
purge_feed($link, $feed_id, $purge_interval); purge_feed($link, $feed_id, $purge_interval);
} }
} }
// purge orphaned posts in main content table
db_query($link, "DELETE FROM ttrss_entries WHERE
(SELECT COUNT(int_id) FROM ttrss_user_entries WHERE ref_id = id) = 0");
} }
function update_all_feeds($link, $fetch) { function update_all_feeds($link, $fetch) {
@ -315,20 +323,24 @@
// check for user post link to main table // check for user post link to main table
// do we allow duplicate posts with same GUID in different feeds?
if (get_pref($link, "ALLOW_DUPLICATE_POSTS")) {
$dupcheck_qpart = "AND feed_id = '$feed'";
} else {
$dupcheck_qpart = "";
}
$result = db_query($link, $result = db_query($link,
"SELECT ref_id FROM ttrss_user_entries WHERE "SELECT ref_id FROM ttrss_user_entries WHERE
ref_id = '$ref_id' AND owner_uid = '$owner_uid' AND ref_id = '$ref_id' AND owner_uid = '$owner_uid'
feed_id = '$feed'"); $dupcheck_qpart");
// okay it doesn't exist - create user entry // okay it doesn't exist - create user entry
if (db_num_rows($result) == 0) { if (db_num_rows($result) == 0) {
$result = db_query($link, $result = db_query($link,
"INSERT INTO ttrss_user_entries "INSERT INTO ttrss_user_entries
(ref_id, owner_uid, feed_id) (ref_id, owner_uid, feed_id)
VALUES ('$ref_id', '$owner_uid', '$feed')"); VALUES ('$ref_id', '$owner_uid', '$feed')");
} }
} }

View File

@ -169,6 +169,10 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_SPLASH', 1, 'false', 'Enable loading splashscreen',2); insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_SPLASH', 1, 'false', 'Enable loading splashscreen',2);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('ALLOW_DUPLICATE_POSTS', 1, 'true', 'Allow duplicate posts',1,
'This option is useful when you are reading several planet-type aggregators with partially colliding userbase.
When disabled, it forces same posts from different sources to appear only once');
create table ttrss_user_prefs ( create table ttrss_user_prefs (
owner_uid integer not null, owner_uid integer not null,
pref_name varchar(250), pref_name varchar(250),

View File

@ -160,6 +160,10 @@ insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_SPLASH', 1, 'false', 'Enable loading splashscreen',2); insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id) values('ENABLE_SPLASH', 1, 'false', 'Enable loading splashscreen',2);
insert into ttrss_prefs (pref_name,type_id,def_value,short_desc,section_id,help_text) values('ALLOW_DUPLICATE_POSTS', 1, 'true', 'Allow duplicate posts',1,
'This option is useful when you are reading several planet-type aggregators with partially colliding userbase.
When disabled, it forces same posts from different sources to appear only once');
create table ttrss_user_prefs ( create table ttrss_user_prefs (
owner_uid integer not null references ttrss_users(id) on delete cascade, owner_uid integer not null references ttrss_users(id) on delete cascade,
pref_name varchar(250) not null references ttrss_prefs(pref_name), pref_name varchar(250) not null references ttrss_prefs(pref_name),