hydrusnetwork / hydrusnetwork/hydrus

Ignore blacklisted tag(s) UNLESS some other tag(s) are present.

Open
#1,663 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request
Dominant language
Python
Stars
3.2k
Forks
207
PR merge metrics
No merged PRs in 30d

Description

I may just be mis-interpreting the way the blacklist/whitelist/advanced sections work when editing tag import options, but it doesn't seem like this functionality is working the way I would expect.

I would like to blacklist some tag, unless some other tag or tags are also applied to the image. I'll use a simple example:

Say I would like to ignore all images that contain the tag hair unless an image contains red_hair or tree tags. If I use the advanced tab in the import options blacklist filter and enter hair in the "exclude these" section, and then enter red_hair and tree in the "except for these" section, I would expect the query to ignore images that contain the hair tag, unless the image contains a red_hair or tree tag.

I threw in the tree tag to emphasize that it doesn't have to be a parent/sibling relationship.

I am not sure how blacklisting works exactly under the hood, e.g., if each tag in an incoming image is checked individually, or if all of the tags in the image are checked as a whole. Having the ability to specify a more complex boolean equation like with search, when entering a new blacklist item, e.g., not hair or red_hair or tree would be great.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the advanced tab in the import options blacklist filter and reproduce the example using hair, red_hair, and tree. Trace how blacklist and exception tags are evaluated, then define and verify behavior for an excluded tag when any exception tag is present, including unrelated tags; the issue provides no named files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.