windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v391/Hydrus.Network.391.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v391/Hydrus.Network.391.-.Windows.-.Installer.exe
macOS
app: https://github.com/hydrusnetwork/hydrus/releases/download/v391/Hydrus.Network.391.-.macOS.-.App.dmg
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v391/Hydrus.Network.391.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v391.tar.gz
I had a great week. The client now has 'minimise to system tray' support, you can search by framerate and 'number of frames', and a bunch of bugs are fixed.
system tray
This first version is buggy/crashy under non-Windows, so I have disabled it for non-advanced mode non-Windows users for now. The icon menu doesn't work well for non-Windows, but double-clicking seems ok. I will keep working on this.
The hydrus client can now make a system tray icon for those OSes that support it. You can customise it under the new options->system tray panel. You can set the client to minimise to and/or close to system tray, and you can set the icon to always display if you like. There is also a new 'hide_to_system_tray' action under the 'globals' shortcut set.
Clicking on the system tray icon will raise a 'shown' client to the front or show a hidden client. Double-clicking or middle-clicking will do hide/show. The icon also has a menu to show/hide the client, pause/unpause subscriptions or network traffic, and exit the program.
You can also set the client to boot minimised into the system tray, but there may be layout issues once you do show the client–please let me know if you get any!
frames
You can now search for file framerate or 'number of frames' under an expanded 'system:duration' search predicate. It is difficult with the data hydrus currently knows to get very precise framerate, so system:framerate searches +/-5% of what you set. You can't differentiate between 30fps and 29.97fps yet.
You can now sort by number of frames.
Video framerate is now shown in the 'file info summary' text that displays on the status bar, thumbnail menu, and media viewer.
the rest
There are new fixed default danbooru parsers, and an e621 login script, both thanks to submissions by users.
I went over the tag autocomplete fetching code, cleaning up old areas and improving the timing and caching logic. It should be snappier, less flickery, and the bug where system predicates sometimes do not re-load after entering a search tag should be fixed. I expect to revisit this in three weeks for the next 'cleanup' week to further clean this semi-hellcode.
I also cleaned up some old wx->Qt stuff related to thumbnail sort. I believe I fixed the weird issue where certain pages (those that had just loaded a favourite search seemed to be one) would not accept certain sorts (sort by time imported was common here, I think because that is default secondary sort), and some collect/sort interactions are also faster and more reliable.
The tag suggestion boxes in manage tags now only do 'add' operations when you choose their suggestions (i.e. they won't remove an existing current/pending tag). They also remove those tags from their list when you do so. See if you like the feel of this new workflow. Also, a bug where some of these suggestion boxes would not acknowledge new pending tags (e.g. not using them for subsequent 'related' tags searches) after moving to a next/previous media in a manage tags off the media viewer is fixed.
If you ever got screwy URLs in your client (invalid garbage like 'tdunrotduenoh'), the program should be much saner about filtering and displaying and editing these. The Client API no longer accepts invalid URLs when associating URLs.
full list
- system tray icon:
- hydrus now can now make a system tray icon for those OSes that support it. it can be buggy/crashy under non-Windows, where it gets some warning labels
- under the new options->system tray page, you can set whether to show the system tray all the time, minimise the main gui to system tray, close-button the main gui to system tray, and start the program minimised to the system tray
- right-clicking the icon brings up a menu to show/hide the ui, pause/unpause network traffic or subscriptions, and to exit hydrus
- the main file menu now has an option to minimise to system tray
- double-clicking or middle-clicking the icon will show/hide the whole hydrus ui as long as there are no dialogs open
- clicking it will restore the main gui from minimise or raise it to the front
- on an ui hide, the current preview window will be blanked and media viewers will be paused, so any ongoing noise/cpu from them should stop
- a new 'global' shortcut 'hide_to_system_tray' is now available
- starting the client minimised may have some layout issues on first show–I particularly had to fix splitter layouts–please report any more you discover
- .
- framerate and num frames:
- system:framerate search added to system:duration panel. precise framerate is tricky with current hydrus info, so it searches +/- 5% of a given value
- system:number of frames added to system:duration panel
- sort by number of frames added
- duration/framerate/num frames sort moved to their own 'duration' submenu
- framerate added to generic media metadata summary string (which appears in status bar and media viewer, etc…). precise framerate is tricky with current hydrus info, so it is rounded to the nearest integer
- .
- the rest:
- rolling in new danbooru file page parsers that should fix file downloads, thank you to a user for the submission
- rolling in a e621 login script, thank you to a user for the submission
- gave tag autocomplete results fetch code a pass, cleaning up several instances of incorrect or inefficient timing and caching logic and I believe fixing the issue where system preds would sometimes not be loaded after entering a tag
- improved reliability of autocomplete dropdown hiding on background pages (some edge cases where these could still hang around _should_ be fixed)
- improved 'hide' tests in several parts of the program related to the new system tray icon, which should help some other cases–e.g. weird shutdowns now _shouldn't_ ever leave a bunch of floating popup messages
- fixed a bug where pages set to open with all known files/tags domains, which is not supported, was incorrectly substituting tag domain with a file domain, which is even more not supported
- cleaned up some sort code–I believe this has fixed the odd issue where a 'time imported' sort would not work on some pages (such as one loaded from a favourite search)
- fixed the 'related' tag suggestion box not knowing about new pending tags added in a manage tags dialog open on a media viewer after next/previous media transitions while the dialog is open. also it and the file lookup's lists now clear when a new lookup starts
- the tag suggestion boxes are now add-only and remove what you add as you add them! let me know if this feels nice or not!
- the splash window now has a different 'booting/exiting' window title, if you would like to hook it with a window manager
- went over all the 'prep url for display', 'filter urls', and 'normalise url' requests across the program to deal with invalid url (e.g. garbled text) better
- you can now no longer add invalid urls via the client api associate_url call–you'll get 400 instead
- cleaned some thumbnail selection and rendering code, particularly fixing some edge case 'where that media go?' issues where collect-by calls happen during thumbnail waterfalls and so on
- cleaned up some page file domain setting code and misc page management code
- improved accuracy of rendered image cache memory footprint calculations
next week
Next week is a 'medium size' job week. I want to get started on a database-level tag siblings cache, which will improve siblings speed and accuracy across the program. I do not think I will have time to finish it, but I know I can move all this forward.