mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 16:59:12 +00:00
feat(filters): implement min and max seeders/leechers filtering for Torznab feeds (#1342)
* feat(filter):implement min and max seeders/leechers filtering * chore: go fmt and reorder fields --------- Co-authored-by: ze0s <ze0s@riseup.net>
This commit is contained in:
parent
256fbb49ba
commit
a86258aaa7
10 changed files with 192 additions and 3 deletions
|
@ -239,6 +239,10 @@ func (r *FilterRepo) FindByID(ctx context.Context, filterID int) (*domain.Filter
|
|||
"f.except_tags_match_logic",
|
||||
"f.origins",
|
||||
"f.except_origins",
|
||||
"f.min_seeders",
|
||||
"f.max_seeders",
|
||||
"f.min_leechers",
|
||||
"f.max_leechers",
|
||||
"f.created_at",
|
||||
"f.updated_at",
|
||||
"fe.id as external_id",
|
||||
|
@ -349,6 +353,10 @@ func (r *FilterRepo) FindByID(ctx context.Context, filterID int) (*domain.Filter
|
|||
&exceptTagsMatchLogic,
|
||||
pq.Array(&f.Origins),
|
||||
pq.Array(&f.ExceptOrigins),
|
||||
&f.MinSeeders,
|
||||
&f.MaxSeeders,
|
||||
&f.MinLeechers,
|
||||
&f.MaxLeechers,
|
||||
&f.CreatedAt,
|
||||
&f.UpdatedAt,
|
||||
&extId,
|
||||
|
@ -503,6 +511,10 @@ func (r *FilterRepo) findByIndexerIdentifier(ctx context.Context, indexer string
|
|||
"f.except_tags_match_logic",
|
||||
"f.origins",
|
||||
"f.except_origins",
|
||||
"f.min_seeders",
|
||||
"f.max_seeders",
|
||||
"f.min_leechers",
|
||||
"f.max_leechers",
|
||||
"f.created_at",
|
||||
"f.updated_at",
|
||||
"fe.id as external_id",
|
||||
|
@ -617,6 +629,10 @@ func (r *FilterRepo) findByIndexerIdentifier(ctx context.Context, indexer string
|
|||
&exceptTagsMatchLogic,
|
||||
pq.Array(&f.Origins),
|
||||
pq.Array(&f.ExceptOrigins),
|
||||
&f.MinSeeders,
|
||||
&f.MaxSeeders,
|
||||
&f.MinLeechers,
|
||||
&f.MaxLeechers,
|
||||
&f.CreatedAt,
|
||||
&f.UpdatedAt,
|
||||
&extId,
|
||||
|
@ -870,6 +886,10 @@ func (r *FilterRepo) Store(ctx context.Context, filter *domain.Filter) error {
|
|||
"perfect_flac",
|
||||
"origins",
|
||||
"except_origins",
|
||||
"min_seeders",
|
||||
"max_seeders",
|
||||
"min_leechers",
|
||||
"max_leechers",
|
||||
).
|
||||
Values(
|
||||
filter.Name,
|
||||
|
@ -929,6 +949,10 @@ func (r *FilterRepo) Store(ctx context.Context, filter *domain.Filter) error {
|
|||
filter.PerfectFlac,
|
||||
pq.Array(filter.Origins),
|
||||
pq.Array(filter.ExceptOrigins),
|
||||
filter.MinSeeders,
|
||||
filter.MaxSeeders,
|
||||
filter.MinLeechers,
|
||||
filter.MaxLeechers,
|
||||
).
|
||||
Suffix("RETURNING id").RunWith(r.db.handler)
|
||||
|
||||
|
@ -1006,6 +1030,10 @@ func (r *FilterRepo) Update(ctx context.Context, filter *domain.Filter) error {
|
|||
Set("perfect_flac", filter.PerfectFlac).
|
||||
Set("origins", pq.Array(filter.Origins)).
|
||||
Set("except_origins", pq.Array(filter.ExceptOrigins)).
|
||||
Set("min_seeders", filter.MinSeeders).
|
||||
Set("max_seeders", filter.MaxSeeders).
|
||||
Set("min_leechers", filter.MinLeechers).
|
||||
Set("max_leechers", filter.MaxLeechers).
|
||||
Set("updated_at", time.Now().Format(time.RFC3339)).
|
||||
Where(sq.Eq{"id": filter.ID})
|
||||
|
||||
|
@ -1237,6 +1265,18 @@ func (r *FilterRepo) UpdatePartial(ctx context.Context, filter domain.FilterUpda
|
|||
if filter.ExternalWebhookRetryDelaySeconds != nil {
|
||||
q = q.Set("external_webhook_retry_delay_seconds", filter.ExternalWebhookRetryDelaySeconds)
|
||||
}
|
||||
if filter.MinSeeders != nil {
|
||||
q = q.Set("min_seeders", filter.MinSeeders)
|
||||
}
|
||||
if filter.MaxSeeders != nil {
|
||||
q = q.Set("max_seeders", filter.MaxSeeders)
|
||||
}
|
||||
if filter.MinLeechers != nil {
|
||||
q = q.Set("min_leechers", filter.MinLeechers)
|
||||
}
|
||||
if filter.MaxLeechers != nil {
|
||||
q = q.Set("max_leechers", filter.MaxLeechers)
|
||||
}
|
||||
|
||||
q = q.Where(sq.Eq{"id": filter.ID})
|
||||
|
||||
|
|
|
@ -129,7 +129,11 @@ CREATE TABLE filter
|
|||
origins TEXT [] DEFAULT '{}',
|
||||
except_origins TEXT [] DEFAULT '{}',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
min_seeders INTEGER DEFAULT 0,
|
||||
max_seeders INTEGER DEFAULT 0,
|
||||
min_leechers INTEGER DEFAULT 0,
|
||||
max_leechers INTEGER DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE filter_external
|
||||
|
@ -842,5 +846,17 @@ ALTER TABLE filter_external
|
|||
`,
|
||||
`ALTER TABLE action
|
||||
ADD COLUMN external_client TEXT;
|
||||
`,`
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN min_seeders INTEGER DEFAULT 0;
|
||||
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN max_seeders INTEGER DEFAULT 0;
|
||||
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN min_leechers INTEGER DEFAULT 0;
|
||||
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN max_leechers INTEGER DEFAULT 0;
|
||||
`,
|
||||
}
|
||||
|
|
|
@ -129,7 +129,11 @@ CREATE TABLE filter
|
|||
origins TEXT [] DEFAULT '{}',
|
||||
except_origins TEXT [] DEFAULT '{}',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
min_seeders INTEGER DEFAULT 0,
|
||||
max_seeders INTEGER DEFAULT 0,
|
||||
min_leechers INTEGER DEFAULT 0,
|
||||
max_leechers INTEGER DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE filter_external
|
||||
|
@ -1483,5 +1487,17 @@ ALTER TABLE feed_dg_tmp
|
|||
`,
|
||||
`ALTER TABLE action
|
||||
ADD COLUMN external_client TEXT;
|
||||
`,`
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN min_seeders INTEGER DEFAULT 0;
|
||||
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN max_seeders INTEGER DEFAULT 0;
|
||||
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN min_leechers INTEGER DEFAULT 0;
|
||||
|
||||
ALTER TABLE filter
|
||||
ADD COLUMN max_leechers INTEGER DEFAULT 0;
|
||||
`,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue