windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v279/Hydrus.Network.279.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v279/Hydrus.Network.279.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v279/Hydrus.Network.279.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v279/Hydrus.Network.279.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v279/Hydrus.Network.279.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v279.tar.gz
I had a great week. The big downloader overhaul took a big step forward, and I somehow fit in a ton of other stuff as well.
hydrus network upgrade
The client now uses the new network engine to talk to hydrus services. This was the last holdout of the old network engine, and I am happy to have finally moved everything over.
Ideally, you will not notice any differences. The same basic protocol is happening, but now it will go queue up in the new system and follow its bandwidth rules and all that. You will see 'hydrus service' network contexts appear in the the bandwidth window (and wherever else) and be able to set service-specific rules there.
Also, the 'logging in' that hydrus clients need to do works on the new login engine. I am very pleased with this, but it is a first version. It took a lot of work to figure out a good pipeline for error states and the less common operations (like access key testing) and I suspect there are still some bugs for other unusual situations. Please let me know if you run into any trouble. If you do have a problem, a good solution to some problems is to go to the repository in services->review services and click 'refresh account'. Please let me know the details in any case. The error handling works but is not yet polished–I already have a job set up to improve specifics in the coming weeks.
Please note that if you run a server, you probably want to update it this week. Although <279 clients can talk to >=279 servers, the reverse is not true. New clients trying to talk to old servers will get safe-but-frustrating 'cannot login' errors whenever they try to do anything (this was due to a long-time bug in the hydrus session code that happened by chance not to affect old clients).
As everything now runs on the new network version, I can now tackle a number of catchup jobs that were on hold while I was bridging two systems. I expect several engine-wide things like error handling/logging and network use user presentation and old broken test code fixing, and maybe even proxy support, to come in the near future.
other highlights
Import folders can now be forced to 'check now' from the file menu! If you like, you can set up 'manual' import folders by pausing them in the manage dialog and then only running them when needed in this new submenu. I expect to add a subscription-like progress popup for import folders to make these workflows neater.
Queries that only include a positive ratings predicate ('rated' or a specific rating, not 'not rated') and perhaps only a couple of other system search terms–usually something like ('system:rating favs=like', 'system:limit=60')–now have an optimisation to run much faster. This matters for clients with large collections, where these searches could take up to five seconds the first time. Now they should only take a handful of milliseconds!
I have updated a number of the default boorus to now have https urls. I believe all the sites that now support valid https _should_ have it. Normally these changes would only affect new users, but I have also added a button to services->manage boorus to restore any of the default boorus! If you haven't messed with the boorus at all, you may just like to restore all your boorus through this button–you might get some new entries (danbooru or sankaku, for instance) that were broken when you originally installed.
Pages that you give a custom name shouldn't now be overwritten by the thread watcher. There is more to do here (I'd like to have custom names that can still do [DEAD], and dealing with tab icons), but let me know if you discover any combinations where the overwrite still happens.
Pages should now draw their thumbnails much more efficiently, using far less CPU to animate!
If you are in advanced mode, the number of currently open pages will be written in the 'pages' menu!
full list
- moved the hydrus service object over to the new networking engine
- hydrus services now appear in the bandwidth review panel
- hydrus requests now obey larger network bandwidth rules (this mostly means 'global')
- service bandwidth usage and rules are no longer managed from manage services–it is now under review bandwidth usage, like all other network contexts
- updated some network engine stuff for misc hydrus states like 'server busy'
- fixed a bug in the server code where the session key cookie had an invalid expiration timestamp–servers should update this week to make sure new clients can log in properly
- hydrus network requests will force-set User-Agent as 'hydrus client/(network_version)' as the network version is used in the protocol to determine compatibility
- fleshed out the hydrus specific network job, giving it the various bandwidth tracking and version checking responsibilities the service object used to have
- moved session cookie decay (only matters for Hentai Foundry atm) to the new session manager (was previously hacked into the login manager)
- moved some hydrus response parsing stuff around, added content type awareness to the new network job
- updated several unusual hydrus 'static/test' requests used to test credentials and fetch access key and so on to the new system
- added a special 'test service' service to better accomodate these requests
- wrote a static login script for hydrus services
- polished up login management system overall
- import folders now support a 'check now' state, like subscriptions, that will cause them to check immediately
- import folders can be 'check now'ed from the file menu under a new submenu! if you would like to have a 'manual' import folder, try pausing it and just running it from this menu!
- added an optimisation to the file search algorithm to search ratings queries super fast when they lack tag or file system preds to otherwise speed them up
- updated the booru presets that now support https to be https
- added a 'restore defaults' button to the manage boorus dialog–you can restore specifics or all of them
- optimised how fading thumbnails are blitted to screen, which may provide a huge performance boost for high-res/small-thumb clients
- pages that have been renamed by the user will no longer be rename-overwritten by any auto-renaming system (currently just thread watchers, I think, but this will expand in future). unfortunately, this is not retroactive–only pages renamed from now on will be aware that they were user-renamed
- in advanced mode, the pages menu now states how many pages are currently open
- the 'page of images' downloader will now say '(x already in queue)' when it reports how many urls were found, if any were already in the queue. (this should clear up some confusion where it would previously say '0 new urls' even when it found some stuff)
- the gallery downloader will do essentially the same, but on a per-page basis. the text is a little crushed, so I may revisit this
- fixed an issue with the manage services dialog not being able to rename dupe-named services on edit subdialog ok
- the manage services dialog now uses the new listctrl! the listed services are no longer a horrific unsorted mess!
- fixed the file import status button not showing on raw url downloader or import folder edit dialog
- improved how some directory tree merging code deals with read_only files in the source
- maybe fixed some unusual selection behaviour with the booru selection popup dialog. it now has a real ok button, rather than a mickey-mouse hidden one
- completely deleted the old networking engine!
- cleaned out some unused imports from the networking code and related entries from running_from_source.html
- changed up and fixed some odd bugs in how how repositories test some error/isfunctional stuff vs regular paused status
- hydrus network contexts now have a prettier name
- ip address-based network contexts will no longer spam the bandwidth tracker with their useless subdomains
- network jobs that are unable to attempt validation or login will now error immediately rather than waiting indefinitely
- fixed up a bunch of test code that was broken due to the mismatch of network engines
- broke some other test code due to the network engine transfer!
- the client is more resilient about broken 'twisted' installs, and _should_ be able to boot without it. this may or may not apply to the built release–more work can be done here
- some network job refactoring
- clientside service code cleanup
- misc fix that I can't remember
- misc cleanup
- misc refactoring
next week
I couldn't get to EXIF image rotation this week, so that's top of my list. If I can get that done in reasonable time, I'll start on the user-editable login engine stuff, which will probably involve planning and halloween-appropriate skeleton-writing.