Donmai

[Feature Idea] Search Post Versions by Obsolete Added/Removed Tags existence

Posted under General

Sorry for the long title.... Now then, in JSON responses, there's something called "obsolete_added_tags" and "obsolete_removed_tags", which shows the tags changed by a user which are no longer reflected in the current version.

For example, you add breasts to a post and someone later removes that tag, it would show up as an "obsolete_added_tag".

Vice versa, if you removed breasts from a post and someone later adds it back, it would show up as an "obsolete_removed_tag".

So it'd be nifty if there was a search term like "search[obsolete]=true" which would only return the post versions with the obsolete tags. For the web interface, add a check box for obsolete, and when returning the data, highlight the tags which are obsolete and which kind they are... either as an add or removal.

The above would allow a user to more easily track their tag errors, and if necessary, have a conversation in the forums or with the user that changed it on which way the image should really be tagged.

Thoughts?

Yeah, it would. I had a couple of those when I checked mine. But that would be nice to know as well, wouldn't it? It'd show when posts that you left the request on get translated. It'd also show when other *_request tags get satisfied as well.

To display each version, Danbooru executes three SQL queries: the version itself, previous version of the post to calculate changed tags, and current version of the post to calculate obsolete changes. This is not that bad when no versions are filtered out - 60 queries to display 20 versions, for example. However, if we had to skip over the versions with no obsolete tags, query count becomes indefinite. Every skipped version would still result in 3 queries, until we have enough to display on the page. It can become very resource-intensive when displaying a user with lots of post edits and few errors, skipping over hundreds of versions, so I doubt it's going to work with the site database.

Perhaps this can be implemented as a separate report on the offloaded bigquery DB, though - the same DB used to build post change report. It already stores added and removed tags. However, I don't know how one would calculate obsolete changes - you can't store them, it's volatile information depending on current post state (i.e. last version).

Ah... well maybe like the user report that was talked about, the obsolete tag data could be calculated once a week by comparing the post version table data with the post table data and then store the results. That means that the data could at any time be up to one week stale, but that'd still be better than nothing....

1