Bionus / imgbrd-grabber

Very customizable imageboard/booru downloader with powerful filenaming features.
https://www.bionus.org/imgbrd-grabber/
Apache License 2.0
2.55k stars 216 forks source link

Favorites: Continue where I left off #1971

Open FichteFoll opened 4 years ago

FichteFoll commented 4 years ago

Is your feature request related to a problem? Please describe

As described in https://github.com/Bionus/imgbrd-grabber/issues/1970, it currently makes the most sense to browse a favorite from the oldest to the newest post, since you can only filter out images "older than x", but the UX doesn't really support this kind of workflow.

When clicking on the >> button to open the last page, you will most likely be met with a "No image since …" message and then have to go back the pages manually (<) until you can see images again. This may take a significant amount of time depending on your search results.

It appears that the UI expects you to be "done" with a favorite if you reached the last page with results, since it changes the UI to have the list of images on the bottom and the list of favorites back on top, which is the reverse of how I would use the feature.

Describe the solution you'd like

Because I just started using this feature, I don't know how it was used previously or what the expected workflow would look like, but to me the current situation just doesn't work. It seems an option to sort your favorites in reverse order and otherwise keep the current workflow would satisfy my request, but I don't know if the current system is worth keeping or whether it should be replaced.

Describe alternatives you've considered

Other ways to filter the follow list of images for a tag, e.g. by maintaining a list of viewed IDs/md5 hashes (#1416). Using a "only show images older than" filter doesn't work well with new additions, which is why it is not an option.

Bionus commented 4 years ago

I put this as 7.4.0 because this will need a lot of re-work on how the favorites searches are currently implemented, as well as "feature discovery" on sources' model files.

Currently, the way searches are done is quite simple: when you click a favorite, it simply performs a search with the favorite tag, then post-filters the results using the date information provided by the source. This is why if you click the "last page" button, you'd go to the actual last page of all results, and all images will be post-filtered for being too old.

Knowing the "realy" last page would be impossible, as it would mean parsing all pages (or doing a binary search) until you find the one containing the last seen image. That would cause many unnecessary requests to the server and could be very slow depending on the number of results.


I see two possible alternatives to this, and the real solution would be to implement both, and use whichever best option is available for the current source:

FichteFoll commented 4 years ago

That would cause many unnecessary requests to the server and could be very slow depending on the number of results.

Yeah, when having to deal with what you get from the APIs, you would end up with a couple unnecessary calls, especially for large search results. However, the feature is arguably not that useful currently, at least to me, which is why I believe your ideas for the workarounds to be a Pretty Good Solution™ to the problem.