windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v390/Hydrus.Network.390.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v390/Hydrus.Network.390.-.Windows.-.Installer.exe
macOS
app: https://github.com/hydrusnetwork/hydrus/releases/download/v390/Hydrus.Network.390.-.macOS.-.App.dmg
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v390/Hydrus.Network.390.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v390.tar.gz
I had a good week. I spent most of my time cleaning code, but there are a couple of important bug fixes as well.
highlights
Several users have reported that potential duplicate pairs could sometimes come up again for files that had previous been set not related/false positive. This particularly hit users who had reset their potential dupes and re-searched. I had trouble reproducing this, but thanks to the latest user report I was and I traced down the problem. It should now be fixed. If you have been hit by this, please reset your potential duplicates (hit the 'cog' icon on the duplicates page), and then re-search–the bad pairs should not be re-added again.
Several tag autocomplete bugs are fixed today, all for unusual search types. Searching 'hyphenated-namespace:' now gives the correct 'anything' search. 'anything' namespace searches now work for namespaces that have asterisk wildcards. Autocompletes in manage tag dialogs ('write' a/cs) now match results with UPPERCASE inputs. Several more cpu-killer searches (usually some variant of 'get everything' through a clever wildcard) are now impossible to add.
Also, I have fixed the recently borked layout of the 'cancel search' button, which pops up when a page search takes more than three seconds, and fixed a couple of instances where a search page could get stuck in the 'Loading…' state until it was poked.
full list
- fixed a bug that was causing potential duplicates to be sometimes re-added between media groups that were previously set as false positive/not related. I apologise for the inconvenience this bug has caused. if you were hit by this, please reset your potential duplicate pairs (hit the cog button on the dupes page) and re-search, and the bad pairs should not be re-added again
- fixed an issue where tag autocomplete entry in the form 'namespace-blah:' was replacing the hyphen or other 'collapsable' character to space, which then was not searching correctly for the _anything_ namespace search
- 'namespace:anything' searches now work when the namespace itself has a wildcard
- fixed 'write' autocompletes not matching inputs with UPPERCASE letters
- fixed adding tags that start with a colon (e.g. ":D") in 'write' autocompletes
- it should now impossible to enter some 'kill my cpu' queries into tag autocomplete, such as '[asterisk]:anything', even if accidentally entered through the fast-add system
- the 'cancel search' stop button that appears after a search takes three seconds is back to being neatly embedded beside the tag autocomplete input box
- hitting the cancel search button now clears the non-interactable 'Loading' thumbnail media page (with its misleading 'Loading…' statusbar) and returns you to an empty thumbnail page
- loading a favourite search with non-immediate search no longer loads the 'loading…' page. it also saves that new non-immediate status to the page session more reliably
- reworked my linux build environment (pyinstaller=3.5, virtualenv=16.1) so that you can launch the built exe using a symlink
- rolling out a first version of a requirements.txt, any feedback would be appreciated
- rolling out another version of the derpibooru file page parser that no longer duplicates namespaced tags as unnamespaced, thank you to the user who submitted this
- .
- boring stuff:
- .
- moving old pubsub system to Qt signals:
- all the 'refresh query' calls that do changes to the current file search across the program
- the current file and tag domain update calls for search pages
- the clear/set file focus calls when launching and exiting the media viewer browser or archive/delete filter
- the way thumbnails send the current focused media to the preview media window
- the way widgets with shortcuts-based tooltips are notified to update those tooltips when shortcuts change
- the way a thumbgrid sends the current tags to be displayed in the 'selection tags' list
- the way a thumbgrid adds newly imported files' tags to the 'selection tags' list as they fade in
- the way the 'searching/waiting' search button is flipped on and off by shortcut. btw what should be the correct name + label for this button? should it really be an icon?
- .
- cleanup:
- NOTE: the 'include' folder is renamed this week to 'hydrus'. if you have source patches, please update. as I further disentagle code in future, hydrus will ultimately move to typical nested folder/module structure
- decoupled the shortcuts edit ui code from the controller and db, unified how shortcuts are edited, and eliminated db wait when booting shortcuts editing
- decoupled the shortcuts manager from the controller, cleaned all the code, and moved to a nicer reference with proper typing hints
- refactored the frame and media controls of clientguicanvas into separate files
- renamed the hoverframes file to canvashoverframes and updated its classnames to 'canvas' rather than the old 'fullscreen'
- fixed two wx->Qt typo artifacts in the login script edit ui
- reduced some occasional idle memory bloat of clients that have large subscriptions
- cleaned up how media-based taglists are appended with new media
- removed some old booru object update code
- some misc setmedia/clearmedia cleanup
- misc search code cleanup
- misc typing hints to clear up pylint confusion
- misc tag autocomplete code cleanup
- misc 'global' variable cleanup
- misc gui code refactoring, cleanup and typing
next week
Next week is a 'small jobs' week. I will catch up with little jobs, perhaps 'search by framerate' or adding select/remove for filetypes. I definitely want to add close/minimise to system tray, which keeps being put off