windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v266/Hydrus.Network.266.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v266/Hydrus.Network.266.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v266/Hydrus.Network.266.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v266/Hydrus.Network.266.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v266/Hydrus.Network.266.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v266.tar.gz
I had a great week with a lot of hydrus work done. All the 'gallery' downloaders and subscriptions now use the new networking engine, and the program is more stable.
gallery downloaders and other improvements
All the gallery downloaders, like boorus and pixiv and so on, now use the new networking engine. They display the new 'network job control' on their download pages and obey the new bandwidth rules.
Subscriptions do not yet have any network ui (so you will not see the files actually downloading with a KB/s display), but they seem to work well. By default, they will now download up to 256MB of files a day and then stop, so you should see them spreading their work out for bigger jobs.
Also, I am happy to say that the Hentai Foundry downloader works again! As expected, the new engine's better handling of cookies and generally more polite, browser-like behaviour was what was needed. If you have a bunch of HF subs paused, please do slowly unpause them in batches over the next week or so and let me know how it goes.
And the 'file import status' controls–the part where it says '23 successful, 3 already deleted…', the overall import progress gauge, and the button to launch the detailed status window–are now all wrapped into the same tight panel, just to keep it neat and laid out together. This is now deployed in several locations, along with some other misc ui improvements.
And I have separated the gallery 'file' and 'page' download loop into two separate threads so that they run simultaneously. This is just a neat workflow/QoL improvement I have been planning a while, and since I was diving into this stuff this week, I made the change. I am really pleased with it.
I also fixed an issue with gelbooru parsing–they changed their url format again.
I made a lot of changes to the downloaders this week. There are likely some bugs, so please report any weirdness or other errors you come across.
modal popups and db migration
You won't see these often, but all big database maintenance jobs will now throw their popup message in the middle of the screen, and while they run, you won't be able to use the rest of the client. This will stop some accidental hangs people have encountered when they try to use the client when big stuff is going on. Most of the jobs have a cancel button if you want to stop the early, which you now won't be able to miss.
And I have fleshed out the database->migrate database dialog. It now allows thumbnail relocation, gives more information, and uses the new cancellable modal popup when it rebalances files. This dialog is almost ready for any user, so feel free to check it out and read the draft help it links to if you are interested in migrating your db.
stability and fixes
All pages that do work in the background (usually, this means importers/downloaders) are now much more polite about how they talk to themselves and the rest of the client. Having thirty thread watchers open is now far more stable and causes less jittery lag and generally 'bad' code stuff behind the scenes. I believe this has either completely fixed or greatly relieved the crashes some people have experienced trying to open the options or some other dialogs when the client is under heavy usage. Let me know if you still get crashes trying to open dialogs!
The top-right hover window will no longer flicker when you set a rating!
Large videos won't take so long to import!
full list
- converted gallery downloaders to the new network engine
- greatly simplified how gallery downloaders report network activity and converted them to show the new network job control as well
- subscriptions also work on the new engine but will not show network gui yet
- hacked hentai foundry and pixiv login to use the new network engine
- successful logins to hf or pixiv now print to the log
- the new network engine now clears temporary session cookies after 90 mins of inactivity
- gallery downloaders and subscriptions now use the new 'downloader instance' and subscription bandwidth rules. by default, this means downloaders will do small bursts every five minutes and that subscriptions will do at most 256MB per day
- subscriptions' bandwidth use is now listed by name in the review bandwidth panel
- subscriptions use a new bandwidth test to determine if they should start or continue based on current bandwidth limits. it should mean subs do a good bit of work and then stop when they are supposed to without ever waiting on bandwidth more than 30s or so
- thread watcher and page of images now ignore bandwidth limits when doing their 'page' fetching part
- gallery page fetching will ignore bandwidth rules (in order to stop gallery walk desyncs from having to wait a long time)–it will fetch one page per five seconds
- the thread watcher and page of images importers now work on their files and page-checking simultaneously–also, the page of images will process its page queue at any time, not only when the current file queue is finished
- the gallery downloader page now works on its files and gallery page parsing simultaneously!
- wrote a 'file import status' control to better wrap up the import summary, progress gauge, and file import status button into one panel
- thread watchers now use the new file status control
- 'page of images' downloaders now use the new file status control
- the gallery downloaders now use the new file status control
- all network jobs will now retry up to four times on the BadStatusLine ConnectionError, which seems to be a TLS (https) negotiation timeout/remote termination
- all requests on the new network engine will now timeout after ten seconds
- they will also retry on generic timeout errors
- popup messages can now be shown in 'modal' mode as a dialog that prohibits interaction with the rest of the client.
- these will not boot while the client is minimised
- database maintenance routines will now all publish messages like this
- 'migrate database' panel now publishes a modal message when it does a file rebalance
- rewrote the controller-side pubsub pipeline to respond faster and consume fewer program resources, particularly for the client
- import pages now update themselves in a less spammy way behind the scenes, meaning more active pages can be open at once without them stepping on each other and clogging things up
- simplified how importers set their status information in several ways
- reduced a swath of pubsub spam related to content updates
- improved how spammy small jobs are written to the profile log
- reduced text flicker on all download pages
- more misc pubsub improvements
- reduced some gui update/refresh spam on hidden pages
- cleaned up a bunch of database->gui message reporting and cleanup code
- added close other/left/right pages to tab right-click menu
- the top-right media hover window will no longer refit-flicker on a ratings change
- wrote a new panel wrapper for listctrls that handles the underlying row of buttons in a neater way and automatically disables them if they are nullipotent (mostly, this means greying out 'delete' buttons when nothing is selected)
- several listctrls use this new panel
- when it is not strictly necessary, videos that are >30MB will no longer use the CPU-expensive manual frame count parsing
- a problem where newly reloaded thread watchers could sometimes stick in a 1/1 initialisation state _should_ be fixed
- fixed gelbooru url parsing (they stopped using the janky redirect.php urls)
- fixed an issue that meant ipfs pin was erroring when trying to show gui-side
- 'page of images' downloaders now protest if they are told to close while working
- some small layout and status text fixes
- adminside petition processing now has a 'flip selected' box to flip checked status of all selected contents
- adminside petition processing contents chechklistbox now supports multiple selection
- improved the reliability of some shutdown code
- cleared out some old unused code
- misc new control cleanup
- misc fixes
- more misc fixes
next week
I pushed it a little hard this week. I did a lot of hydrus work and I had a stressful IRL week besides, so I would like to take it easier next week, mostly fixing any lingering issues with these recent changes and adding bells and whistles like subscription network ui.
Sankaku is not yet working in the new networking engine, but I think I know the fix. It will take some more downloader overhaul work to get it in the client proper, but it is in my mind, so please hang in there.