reluce/szurubooru-toolkit

Suggestion: add implications autotagger

noirscape opened this issue · 3 comments

Basically, add a script that:

  • Goes through all tags with at least one implication (-implication-count:0)
  • Loops over the posts that belong to these tags.
  • Check if the post has the implications properly added.
  • If not, edit the post to add those tag implications.

Right now, szurubooru doesn't retroactively update implications and it's not a feature that's planned to be added (see https://github.com/rr-/szurubooru/issues/189 ), but it's a rather heavy maintenance burden for creating proper tag implication structures, especially for tags that encompass large amounts of posts.

Sounds like a good idea!

My suggestion would be to add a switch called --update-implications to the tag_posts.py script.
With that, we can narrow down the posts which we want to update with a query. If we want to loop through all posts, we just use a wildcard (*) as the query. Another benefit would be that we don't have to loop through all tags in the database (where possible a lot of tags don't belong to a post if we used the create_tags.py script), which might benefit performance.

I fully agree with that assessment yeah, that sounds like a good optimization.

I added the switch --update-implications as mentioned to the script tag_posts.py in the branch update-implications.
You can go ahead and try if it works for you. I'll merge it to main later on.

It's quite slow though (up to a minute, depending on the amount of tags), as I'm using the szuru module which builds a whole object for each tag, but as it's working for now, I'll leave it at that.