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:
luckyboy 2024-01-13 00:08:18 +08:00 committed by GitHub
parent 256fbb49ba
commit a86258aaa7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 192 additions and 3 deletions

View file

@ -437,6 +437,10 @@ export const FilterDetails = () => {
albums: filter.albums,
origins: filter.origins || [],
except_origins: filter.except_origins || [],
min_seeders: filter.min_seeders,
max_seeders: filter.max_seeders,
min_leechers: filter.min_leechers,
max_leechers: filter.max_leechers,
indexers: filter.indexers || [],
actions: filter.actions || [],
external: filter.external || []

View file

@ -48,7 +48,11 @@ export const FILTER_FIELDS: Record<string, string> = {
"except_tags_any": "boolean",
"formats": "[]string",
"quality": "[]string",
"media": "[]string"
"media": "[]string",
"min_seeders": "number",
"max_seeders": "number",
"min_leechers": "number",
"max_leechers": "number",
} as const;
export const IRC_FIELDS: Record<string, string> = {

View file

@ -397,6 +397,50 @@ const FeedSpecific = ({ values }: ValueConsumer) => (
</div>
}
/>
<Input.NumberField
name="min_seeders"
label="Min Seeders"
placeholder="Takes any number (0 is infinite)"
tooltip={
<div>
<p>Number of min seeders as specified by the respective unit. Only for Torznab</p>
<DocsLink href="https://autobrr.com/filters#rules" />
</div>
}
/>
<Input.NumberField
name="max_seeders"
label="Max Seeders"
placeholder="Takes any number (0 is infinite)"
tooltip={
<div>
<p>Number of max seeders as specified by the respective unit. Only for Torznab</p>
<DocsLink href="https://autobrr.com/filters#rules" />
</div>
}
/>
<Input.NumberField
name="min_leechers"
label="Min Leechers"
placeholder="Takes any number (0 is infinite)"
tooltip={
<div>
<p>Number of min leechers as specified by the respective unit. Only for Torznab</p>
<DocsLink href="https://autobrr.com/filters#rules" />
</div>
}
/>
<Input.NumberField
name="max_leechers"
label="Max Leechers"
placeholder="Takes any number (0 is infinite)"
tooltip={
<div>
<p>Number of max leechers as specified by the respective unit. Only for Torznab</p>
<DocsLink href="https://autobrr.com/filters#rules" />
</div>
}
/>
</CollapsibleSection>
);

View file

@ -67,6 +67,10 @@ interface Filter {
except_tags_any: string;
tags_match_logic: string;
except_tags_match_logic: string;
min_seeders: number;
max_seeders: number;
min_leechers: number;
max_leechers: number;
actions_count: number;
actions_enabled_count: number;
actions: Action[];