windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v308/Hydrus.Network.308.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v308/Hydrus.Network.308.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v308/Hydrus.Network.308.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v308/Hydrus.Network.308.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v308/Hydrus.Network.308.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v308.tar.gz
I had a difficult week, but I got some decent work done. The multiple watcher is a bit more polished, and there are a bunch of fixes and improvements.
multiple watcher
The multiple watcher is a bit neater. It now states some summary info–how many watchers and total x/y processed and 'z successful, a deleted' string for all combined watchers–and has some smaller ui improvements. It also discards duplicate urls and reports more info about watchers as you attempt to remove them (such as if they are not yet DEAD).
I would still like to write a panel so you can 'zoom in' on individual thread settings and control the watched threads en-masse with 'pause selected' buttons and so on. It would also be nice to have some split/merge, but that may wait a bit longer.
misc
The splash screen (the hydrus icon on boot and exit) now has a proper window frame and exists on the taskbar, which makes it easier to find again in certain situations.
The 'check timings' button panel on subscriptions and watchers now has some easy preset buttons and a little reworked ui and help.
The new downloader-job-scheduling system is improved, uses less CPU time overall, and smooths out thread-count spikes.
There should be some small program stability improvements.
Some download pages have slightly juggled ui and should fit a little better on short screens.
Gallery parsing works better behind the scenes and also obeys bandwidth options more often. You may notice some network job controls now report 'overriding bandwidth rules in x seconds', which is part of this better pipeline.
compact subscriptions
Advanced users only!
The manage subscriptions dialog has a new 'compact' button that will remove old and useless URLs from subscriptions. Specifically, it will remove anything processed and twice as old as the death velocity period, and won't cull the queue smaller than 100 items.
This is an experiment to look into cutting down the size of large subscriptions to make them snappier on load and save. It seems to work so far, but be careful! If it seems to cull too many URLs, cancel the dialog and please let me know. Once we are confident it works correct, I expect to add an option to make it automatic, ensuring that subscriptions continually cull themselves of bloaty useless data.
full list
- the multiple watcher will now discard new urls if it is already watching them
- the multiple watcher will list x/y progress as just 'x' if x==y (making it easier to scan the list)
- the multiple watcher now lists a couple of 'total' summary lines on its ui–the top lists total number of watchers and queue progress, the bottom lists the usual '23 successful, 3 deleted' line, but summed for all watchers
- the multiple watcher will now warn you if you try to remove the highlit, alive or un-caught-up watchers
- the multiple watcher will now resort if the thread subject (or rather, any data in the current sort column) changes (which usually happens right after it is added, when you see it change from from 'unknown subject' to 'mlp is kino')
- fixed an issue where multiple watchers were not unscheduling down their update job correctly on page close
- the booru selector in the edit subscription panel should now be in the tab traversal order for keyboard/automated focusing tasks
- the boorus in that selector are now alphabetised
- tag import options namespaces are now alphabetised
- removed/renamed pretty much all references to 'thread' in the watcher code and ui presentation, since it can now do a bunch of other stuff. it is now just the 'watcher' and the 'multiple watcher'
- deleted a bunch of old static thread watcher and page of images code from the old downloading system
- added an experimental 'compact' button to advanced mode users' manage subscriptions panels. this removes urls from the selected subscriptions' caches that are no longer useful, keeping their load/save snappy. this is still in testing–be careful with it!
- the hydrus splash screen now has a bare frame caption and will appear in the taskbar–which helps with some alt-tab and 'where the hell did it go?' stuff if you need to enter a password
- wrote five 'reasonable defaults' buttons for the 'check timings' options panel for quick entry for different thread/subscription scenarios.
- added a checkbox to this panel that will swap the reactive options with a simpler single checkbox
- also clarified/fleshed out the help button on this panel
- fixed an important source of program instability related to page alive/dead status checking that was inadvertantly talking subtly to the main gui frame even on non ui threads
- improved how some 'page is closed but not destroyed' test logic for pages inside a closed-but-not-destroyed notebook
- fixed another small place where the db was talking to the main gui object about status bar updates in a potentially unstable way
- fixed another small place where the foreground daemons were talking to the main gui frame in a trivial but potentially unstable way
- played around with some taglist sizer and layout settings
- the gallery and simple download pages are now a little shorter–the pause and cancel buttons are now just to the right of the status texts, rather than on their own row beneath the network job controls.
- the various bandwidth-overriding network jobs in the download system–like gallery page downloading–now wait 30s before overriding their bandwidth. hence these jobs will now obey the usual bandwidth rules up to a point
- the simple downloader also obeys the usual bandwidth rules for 30s but no longer has a static wait, so it can run much faster in certain situations
- network jobs that will override bandwidth in the future will now report that countdown in their status texts
- fixed a bug in the old booru code that meant some boorus were superfluously requesting the 0th indexed page of a gallery more frequently than needed in order to reestablish a 'page size' cache. this value is now cached globally and will be replaced by a completely different system in the new gallery downloader
- added a decent tooltip to the 'gallery fixed delay' widgets in the options->downloading panel
- the autocomplete input should clear itself after a 'broadcast' event a bit quicker and stop some dupe inputs in certain edge cases
- the tumblr url class now recognises that tumblr posts can have multiple files, which helps some source url lookup logic
- added a url class for artstation file pages
- the primary file import url (the one listed in the file import list) will now correctly not associate with the resulting file if its url class is so set
- all the import objects now have much lower idle CPU time and thread needs and start in slightly offset times, smoothing out the thread count spikes
- all the import objects will now respond quickly to changes to the underlying file import cache (like right-click->try again events)
- the new job scheduling system now uses two queues–fast and slow, in order to reduce some resort/insert overhead
- a couple more improvements to the new job scheduling system to smooth out spikes
- if the temporary path override does not exist, the client will now compain with spammy popup messages and fall back to the default
- if the temporary path override does not exist or is not writeable-to on options dialog ok, a veto exception will be raised
- refactored the watcher and multiple watcher to their own file, ClientImportWatchers
- misc fixes
next week
Maybe a bit more multiple watcher stuff, maybe some gallery stuff. It would be nice to have Pixiv manga working. I also want to dedicate some time to improving Linux stability, which is still not there yet.
I tried to write a Gelbooru 0.2.0 parser this week, but I ran into a hole in my html parsing formula object. I'd like to extend that as well. My IRL stuff is difficult atm, so I may take some extra time off.