win32
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v184/Hydrus.Network.184.-.Win32.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v184/Hydrus.Network.184.-.Win32.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v184/Hydrus.Network.184.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v184/Hydrus.Network.184.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v184/Hydrus.Network.184.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v184.tar.gz
Despite being ill the whole time, I had a great week. I have completely cleared out my old bug to-do list and I added support for external file storage.
file storage location(s)
In the new options->file storage locations panel, you can now designate additional folders for your client to use to store files. You give each location a weight, and the client will incrementally balance all your files proportionally across them. Once you have a desired balance set, the client will move small amounts at a time in the background, or you can force an immediate full rebalance from database->maintenance->rebalance file storage. I hurried this system to solve two problems:
1. Your collection is larger than any single hard drive you own.
2. You want to run client.db from a small fast drive like an SSD but would prefer to keep your read-only files on a larger slower HDD.
This is still in a prototype stage, so please do not play with it if you are a new user or do not maintain a backup.
I have attempted to make this system flexible and to fail gracefully. If you click on a thumbnail and the file or location responsible for that file is missing (e.g. you unplugged the usb hard drive they were on), you will get some popup errors but nothing terrible will happen. If the system discovers subfolders in the wrong location (e.g. your drive paths changed and you are trying to put everything back together), it will silently attempt to heal the damage by putting things where they are supposed to go. You can remove the original install_dir/db/client_files from the list if you like (as long as you've added something else to take over), and that folder will slowly lose responsiblity for storing anything at all.
If you use this, let me know how you get on! I'm obviously interested in any bugs you encounter. I expect I will write some formal help for it, so let me know whatever confused you. Some common-sense rules apply for this initial release–don't try to share the same external storage location between different clients, and don't force a rebalance while watching your webms, as the system won't be able to move open files.
maintenance and processing
If you have special maintenance and processing idle-timing options set, please recheck them, as that panel has had a minor makeover! Figuring out when idle time will kick in should be a bit more intuitive now!
autocomplete improvements
I have tweaked the low-latency optimisations I added to the autocomplete entry last week, and also added a couple of shortcuts:
Tab – This will now force the autocomplete to go fetch autocomplete results immediately. A new option in options->speed and memory also lets you completely disable automatic result fetching, so use Tab if you want to only fetch results manually.
Shift+Tab – This will disable/enable capture of Up/Down/Enter key events so you can enter non-english text with an IME without having your IME key events stolen for the dropdown list.
waiting politely indicator
Whenever a downloader waits for a few seconds, instead of spamming 'waiting politely' status text, it will now turn a little 'traffic light' icon from green to yellow. If you do a lot of downloading, let me know what you think of this! I expect I could do more with it. Turning red on an error, perhaps.
full list
- added external client_files storage!
- you can add external client_files folders in options->file storage locations, further giving them weight
- a new daemon will incrementally rebalance your files (and recover orphaned subfolders!) over your different storage locations
- you can also force a full rebalance from the new database->maintenance->rebalance file storage
- simplified the maintenance and processing panel
- the maintenance and processing panel controls now appropriately support being set to 'none'
- the 'run jobs on idle?' question is now explicit on the maintenance and processing panel
- deselecting 'run jobs on idle/shutdown' will now disable subordinate controls
- hitting tab on the autocomplete control now triggers an immediate 'fetch results' call
- added a checkbox to options->speed and memory to completely disable automatic autocomplete results fetching (i.e. if you want to manually control a/c result-fetching only with this new tab shortcut)
- the new less-laggy autocomplete results fetch won't trigger if the latest query is shorter than the cached query (i.e. you won't get lag when hitting backspace a bunch of times on autocomplete)
- hitting shift+tab on the autocomplete control now disables all other key event capture, letting you enter IME without your up/down/enter presses controlling the dropdown list of results
- 'waiting politely' time is now indicated with a small 'traffic light'-type circle control on all downloader pages
- fixed some occasional 'I'll go sit in the top-left corner of the screen and not fix my position' hover window behaviour in Linux
- fixed sibling predicate collapse for the 'read' autocomplete dropdown for database results
- refactored how predicates are collapsed and sorted to be a bit more sensible
- fixed maintenance of local booru data use even if local booru does not receive any requests
- improved some service/content update error handling in repository sync
- the system:rating value-entry dialog no longer lists its rating services in random order
- 'open externally' will no longer show for non-local thumbnails' right-click menus
- fixed audio/pdf thumbnail display for local booru, although they will be full size for now
- harmonised some hex-prefix folder generation code
- improved some file and directory copying code
- improved upload pending popup message cleanup
- added help_dir to hydrusconstants
- miscellaneous refactoring
- misc cleanup
- extracted server-specific services and server resources from the common import path to the server import path
- a bit more misc server refactoring
- updated a couple of bits of help
next week
My local to-do list is now free of bugs, and I don't think I have anything new to add that is too urgent, so I think I can focus more on my github queue. So, I'll work on that, and do some code cleaning and add some more unit tests.