mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 00:39:13 +00:00
feat(filters): add support for multiple external filters (#1030)
* feat(filters): add support for multiple ext filters * refactor(filters): crud and check * feat(filters): add postgres migrations * fix(filters): field array types * fix(filters): formatting * fix(filters): formatting * feat(filters): external webhook improve logs
This commit is contained in:
parent
db209319da
commit
dde0d0ed61
15 changed files with 1514 additions and 478 deletions
|
@ -127,18 +127,29 @@ CREATE TABLE filter
|
|||
except_tags_match_logic TEXT,
|
||||
origins TEXT [] DEFAULT '{}',
|
||||
except_origins TEXT [] DEFAULT '{}',
|
||||
external_script_enabled BOOLEAN DEFAULT FALSE,
|
||||
external_script_cmd TEXT,
|
||||
external_script_args TEXT,
|
||||
external_script_expect_status INTEGER,
|
||||
external_webhook_enabled BOOLEAN DEFAULT FALSE,
|
||||
external_webhook_host TEXT,
|
||||
external_webhook_data TEXT,
|
||||
external_webhook_expect_status INTEGER,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE filter_external
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
idx INTEGER,
|
||||
type TEXT,
|
||||
enabled BOOLEAN,
|
||||
exec_cmd TEXT,
|
||||
exec_args TEXT,
|
||||
exec_expect_status INTEGER,
|
||||
webhook_host TEXT,
|
||||
webhook_method TEXT,
|
||||
webhook_data TEXT,
|
||||
webhook_headers TEXT,
|
||||
webhook_expect_status INTEGER,
|
||||
filter_id INTEGER NOT NULL,
|
||||
FOREIGN KEY (filter_id) REFERENCES filter(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE filter_indexer
|
||||
(
|
||||
filter_id INTEGER,
|
||||
|
@ -716,4 +727,53 @@ ALTER TABLE release_action_status
|
|||
ADD FOREIGN KEY (action_id) REFERENCES action
|
||||
ON DELETE SET NULL;
|
||||
`,
|
||||
`CREATE TABLE filter_external
|
||||
(
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
idx INTEGER,
|
||||
type TEXT,
|
||||
enabled BOOLEAN,
|
||||
exec_cmd TEXT,
|
||||
exec_args TEXT,
|
||||
exec_expect_status INTEGER,
|
||||
webhook_host TEXT,
|
||||
webhook_method TEXT,
|
||||
webhook_data TEXT,
|
||||
webhook_headers TEXT,
|
||||
webhook_expect_status INTEGER,
|
||||
filter_id INTEGER NOT NULL,
|
||||
FOREIGN KEY (filter_id) REFERENCES filter(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
INSERT INTO "filter_external" (name, type, enabled, exec_cmd, exec_args, exec_expect_status, filter_id)
|
||||
SELECT 'exec', 'EXEC', external_script_enabled, external_script_cmd, external_script_args, external_script_expect_status, id FROM "filter" WHERE external_script_enabled = true;
|
||||
|
||||
INSERT INTO "filter_external" (name, type, enabled, webhook_host, webhook_data, webhook_method, webhook_expect_status, filter_id)
|
||||
SELECT 'webhook', 'WEBHOOK', external_webhook_enabled, external_webhook_host, external_webhook_data, 'POST', external_webhook_expect_status, id FROM "filter" WHERE external_webhook_enabled = true;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_script_enabled;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_script_cmd;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_script_args;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_script_expect_status;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_webhook_enabled;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_webhook_host;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_webhook_data;
|
||||
|
||||
ALTER TABLE filter
|
||||
DROP COLUMN IF EXISTS external_webhook_expect_status;
|
||||
`,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue