- clients should now have objects for all default downloaders. everything should be prepped for the big switchover:
- wrote gallery url generators for all the default downloaders and a couple more as well
- wrote a gallery parser for deviant art--it also comes with an update to the DA url class because the meta 'next page' link on DA gallery pages is invalid wew!
- wrote a gallery parser for hentai foundry, inkbunny, rule34hentai, moebooru (konachan, sakugabooru, yande.re), artstation, newgrounds, and pixiv artist galleries (static html)
- added a gallery parser for sankaku
- the artstation post url parser no longer fetches cover images
- url classes can now support 'default' values for path components and query parameters! so, if your url might be missing a page=1 initialsation value due to user drag-and-drop, you can auto-add it in the normalisation step!
- if the entered default does not match the rules of the component or parameter, it will be cleared back to none!
- all appropriate default gallery url classes (which is most) now have these default values. all default gallery url classes will be overwritten on db update
- three test 'search initialisation' url classes that attempted to fix this problem a different way will be deleted on update, if present
- updated some other url classes
- when checking source urls during the pre-download import status check, the client will now distrust parsed source urls if the files they seem to refer to also have other urls of the same url class as the file import object being actioned (basically, this is some logic that tries to detect bad source url attribution, where multiple files on a booru (typically including alternate edits) are all source-url'd back to a single original)
- gallery page parsing now discounts parsed 'next page' urls that are the same as the page that fetched them (some gallery end-points link themselves as the next page, wew)
- json parsing formulae that are set to parse all 'list' items will now also parse all dictionary entries if faced with a dict instead!
- added new stop-gap 'stop checking' logic in subscription syncing for certain low-gallery-count edge-cases
- fixed an issue where (typically new) subscriptions were bugging out trying to figure a default stop_reason on certain page results
- fixed an unusual listctrl delete item index-tracking error that would sometimes cause exceptions on the 'try to link url stuff together' button press and maybe some other places
- thanks to a submission from user prkc on the discord, we now have 'import cookies.txt' buttons on the review sessions panels! if you are interested in 'manual' logins through browser-cookie-copying, please give this a go and let me know which kinds of cookies.txt do and do not work, and how your different site cookie-copy-login tests work in hydrus.
- the mappings cache tables now have some new indices that speed up certain kinds of tag search significantly. db update will spend a minute or two generating these indices for existing users
- advanced mode users will discover a fun new entry on the help menu
- the hyperlinks on the media viewer hover window and a couple of other places are now a custom control that uses any custom browser launch path in options->files and trash
- fixed an issue where certain canvas edge-case media clearing events could be caught incorrectly by the manage tags dialog and its subsidiary panels
- think I fixed an issue where a client left with a dialog open could sometimes run into trouble later trying to show an idle time maintenance modal popup and give a 'C++ assertion IsRunning()' exception and end up locking the client's ui
- manage parsers dialog will now autosort after an add event
- the gug panels now normalise example urls
- improved some misc service error handling
- rewrote some url parsing to stop forcing '+'->' ' in our urls' query texts
- fixed some bad error handling for matplotlib import
- misc fixes