}
}
+ // 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) {
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) {
// 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,
"SELECT ref_id FROM ttrss_user_entries WHERE
- ref_id = '$ref_id' AND owner_uid = '$owner_uid' AND
- feed_id = '$feed'");
+ ref_id = '$ref_id' AND owner_uid = '$owner_uid'
+ $dupcheck_qpart");
// okay it doesn't exist - create user entry
-
if (db_num_rows($result) == 0) {
-
$result = db_query($link,
"INSERT INTO ttrss_user_entries
(ref_id, owner_uid, feed_id)
VALUES ('$ref_id', '$owner_uid', '$feed')");
-
}
}
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 (
owner_uid integer not null,
pref_name varchar(250),
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 (
owner_uid integer not null references ttrss_users(id) on delete cascade,
pref_name varchar(250) not null references ttrss_prefs(pref_name),