Skip to content

Restructure MatchAny seeding limit evaluation logic - #24672

Open
V0latyle wants to merge 2 commits into
qbittorrent:masterfrom
V0latyle:matchany-restruct
Open

Restructure MatchAny seeding limit evaluation logic#24672
V0latyle wants to merge 2 commits into
qbittorrent:masterfrom
V0latyle:matchany-restruct

Conversation

@V0latyle

Copy link
Copy Markdown

Closes #24500

Current MatchAny behavior is to match any limit that is met first - even if Seeding Time is set for a longer time (i.e., 7 days) than Inactive Time (24 hours).

This restructures Match Any to require that either Ratio or Seeding Time (if set) be satisfied before Inactive Time takes over.

ETA will also correctly reflect time to target.

If set, Ratio and Seeding Time always take priority over inactive seeding time in MatchAny mode;
once those "primary" limits are met, Inactive Seed Time will be allowed to take over.
This prevents inactively seeding torrents from "timing out" too early until the desired limits have been met.
@glassez

glassez commented Jul 11, 2026

Copy link
Copy Markdown
Member

Current MatchAny behavior is to match any limit that is met first

...which exactly corresponds to its name.

@glassez

glassez commented Jul 11, 2026

Copy link
Copy Markdown
Member

This restructures Match Any to require that either Ratio or Seeding Time (if set) be satisfied before Inactive Time takes over.

In that case, it is no longer "match any" and you should choose a more appropriate name for it.
Moreover, I believe that the current "match any" behavior may still be suitable for someone else, so I would not replace it with another one, but add yet another option instead.

@glassez
glassez requested a review from a team July 11, 2026 17:35
@glassez glassez added the Core label Jul 11, 2026
@V0latyle

V0latyle commented Jul 11, 2026

Copy link
Copy Markdown
Author

This restructures Match Any to require that either Ratio or Seeding Time (if set) be satisfied before Inactive Time takes over.

In that case, it is no longer "match any" and you should choose a more appropriate name for it. Moreover, I believe that the current "match any" behavior may still be suitable for someone else, so I would not replace it with another one, but add yet another option instead.

That's fair, but my logic was this: Most users use "inactive time" as a gatekeeper to time out torrents that are no longer active, after meeting primary seeding targets, not as a primary target itself. Should a user want the torrent to only seed for a given inactive time, they can set Ratio and Seed Time to "Unlimited" or zero.

On the latest CI, I had been using "MatchAll" mode with ratio set to unlimited, then seeding time and inactive time set as desired. But, I wanted the option to still use a ratio target without requiring that the torrent meet the seeding time target.

Also, I wanted to keep the UI fairly clean. So it made more sense, at least to me, for it to be an "under the hood" change.

But yes, in the interest of not changing core behavior without giving users the option to use it in the original manner, it would probably be a good idea. I'll see what I can do. Thanks for taking a look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add boolean logic options to seed limits

2 participants