mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-22 21:22:40 +00:00
Add provision for soft deletion of subscriptions
This commit is contained in:
parent
b24a76b744
commit
2c9daedb14
5 changed files with 11 additions and 6 deletions
|
@ -149,6 +149,7 @@ alter table arsse_subscriptions add column err_count bigint unsigned not null de
|
|||
alter table arsse_subscriptions add column err_msg longtext;
|
||||
alter table arsse_subscriptions add column size bigint unsigned not null default 0;
|
||||
alter table arsse_subscriptions add column icon bigint unsigned;
|
||||
alter table arsse_subscriptions add column deleted boolean not null default 0;
|
||||
|
||||
-- Populate the new columns
|
||||
update arsse_subscriptions as s, arsse_feeds as f set
|
||||
|
|
|
@ -143,6 +143,7 @@ alter table arsse_subscriptions add column err_count bigint not null default 0;
|
|||
alter table arsse_subscriptions add column err_msg text collate "und-x-icu";
|
||||
alter table arsse_subscriptions add column size bigint not null default 0;
|
||||
alter table arsse_subscriptions add column icon bigint references arsse_icons(id) on delete set null;
|
||||
alter table arsse_subscriptions add column deleted smallint not null default 0;
|
||||
|
||||
-- Populate the new columns
|
||||
update arsse_subscriptions as s set
|
||||
|
|
|
@ -136,9 +136,11 @@ create table arsse_subscriptions_new(
|
|||
id integer primary key, -- sequence number
|
||||
owner text not null references arsse_users(id) on delete cascade on update cascade, -- owner of subscription
|
||||
url text not null, -- URL of feed
|
||||
deleted int not null default 0, -- soft-delete flag
|
||||
feed_title text collate nocase, -- feed title
|
||||
title text collate nocase, -- user-supplied title, which overrides the feed title when set
|
||||
folder integer references arsse_folders(id) on delete cascade, -- TT-RSS category (nestable); the first-level category (which acts as Nextcloud folder) is joined in when needed
|
||||
modified text not null default CURRENT_TIMESTAMP, -- time at which subscription properties were last modified by the user
|
||||
last_mod text, -- time at which the feed last actually changed at the foreign host
|
||||
etag text not null default '', -- HTTP ETag hash used for cache validation, changes each time the content changes
|
||||
next_fetch text, -- time at which the feed should next be fetched
|
||||
|
@ -149,7 +151,6 @@ create table arsse_subscriptions_new(
|
|||
err_msg text, -- last error message
|
||||
size integer not null default 0, -- number of articles in the feed at last fetch
|
||||
icon integer references arsse_icons(id) on delete set null, -- numeric identifier of any associated icon
|
||||
modified text not null default CURRENT_TIMESTAMP, -- time at which subscription properties were last modified by the user
|
||||
order_type int not null default 0, -- Nextcloud sort order
|
||||
pinned int not null default 0, -- whether feed is pinned (always sorts at top)
|
||||
scrape int not null default 0, -- whether the user has requested scraping content from source articles
|
||||
|
@ -162,9 +163,11 @@ insert into arsse_subscriptions_new
|
|||
s.id,
|
||||
s.owner,
|
||||
f.url,
|
||||
0,
|
||||
f.title,
|
||||
s.title,
|
||||
s.folder,
|
||||
s.modified,
|
||||
f.modified,
|
||||
f.etag,
|
||||
f.next_fetch,
|
||||
|
@ -175,7 +178,6 @@ insert into arsse_subscriptions_new
|
|||
f.err_msg,
|
||||
f.size,
|
||||
f.icon,
|
||||
s.modified,
|
||||
s.order_type,
|
||||
s.pinned,
|
||||
s.scrape,
|
||||
|
|
|
@ -287,11 +287,11 @@ QUERY_TEXT
|
|||
]
|
||||
],
|
||||
'arsse_subscriptions' => [
|
||||
'columns' => ["id", "owner", "url", "feed_title", "title", "folder", "last_mod", "etag", "next_fetch", "added", "source", "updated", "err_count", "err_msg", "size", "icon", "modified", "order_type", "pinned", "scrape", "keep_rule", "block_rule"],
|
||||
'columns' => ["id", "owner", "url", "feed_title", "title", "folder", "last_mod", "etag", "next_fetch", "added", "source", "updated", "err_count", "err_msg", "size", "icon", "modified", "order_type", "pinned", "scrape", "keep_rule", "block_rule", "deleted"],
|
||||
'rows' => [
|
||||
[1, "a", "https://example.com/rss", "Title 1", "User Title", null, "2001-06-13 06:56:23", '"ook"', "2001-06-13 06:57:23", "2002-02-02 00:02:03", "https://example.com/", "2001-06-13 06:55:23", 42, "Some error", 47, null, "2002-02-02 00:05:03", 2, 1, 0, "keep", "block"],
|
||||
[4, "a", "https://example.net/rss", "Title 3", "Rosy Title", 1337, "2001-06-15 06:56:23", '"ack"', "2001-06-15 06:57:23", "2002-02-03 00:02:03", "https://example.net/", "2001-06-15 06:55:23", 44, "This error", 3, 12, "2002-02-03 00:05:03", 1, 0, 0, "meep", "bloop"],
|
||||
[6, "c", "https://example.net/rss", "Title 3", null, 4400, "2001-06-15 06:56:23", '"ack"', "2001-06-15 06:57:23", "2002-02-04 00:02:03", "https://example.net/", "2001-06-15 06:55:23", 44, "This error", 3, 12, "2002-02-04 00:05:03", 2, 0, 1, null, null],
|
||||
[1, "a", "https://example.com/rss", "Title 1", "User Title", null, "2001-06-13 06:56:23", '"ook"', "2001-06-13 06:57:23", "2002-02-02 00:02:03", "https://example.com/", "2001-06-13 06:55:23", 42, "Some error", 47, null, "2002-02-02 00:05:03", 2, 1, 0, "keep", "block", 0],
|
||||
[4, "a", "https://example.net/rss", "Title 3", "Rosy Title", 1337, "2001-06-15 06:56:23", '"ack"', "2001-06-15 06:57:23", "2002-02-03 00:02:03", "https://example.net/", "2001-06-15 06:55:23", 44, "This error", 3, 12, "2002-02-03 00:05:03", 1, 0, 0, "meep", "bloop", 0],
|
||||
[6, "c", "https://example.net/rss", "Title 3", null, 4400, "2001-06-15 06:56:23", '"ack"', "2001-06-15 06:57:23", "2002-02-04 00:02:03", "https://example.net/", "2001-06-15 06:55:23", 44, "This error", 3, 12, "2002-02-04 00:05:03", 2, 0, 1, null, null, 0],
|
||||
]
|
||||
],
|
||||
'arsse_articles' => [
|
||||
|
|
|
@ -130,6 +130,7 @@ abstract class AbstractTest extends \PHPUnit\Framework\TestCase {
|
|||
'scrape' => "bool",
|
||||
'keep_rule' => "str",
|
||||
'block_rule' => "str",
|
||||
'deleted' => "bool",
|
||||
],
|
||||
'arsse_folders' => [
|
||||
'id' => "int",
|
||||
|
|
Loading…
Reference in a new issue