win32zip:
https://github.com/hydrusnetwork/hydrus/releases/download/v150/Hydrus.Network.150.-.Win32.-.Extract.only.zipexe:
https://github.com/hydrusnetwork/hydrus/releases/download/v150/Hydrus.Network.150.-.Win32.-.Installer.exeos xapp:
https://github.com/hydrusnetwork/hydrus/releases/download/v150/Hydrus.Network.150.-.OS.X.-.App.dmgtar.gz:
https://github.com/hydrusnetwork/hydrus/releases/download/v150/Hydrus.Network.150.-.OS.X.-.Extract.only.tar.gzlinuxtar.gz:
https://github.com/hydrusnetwork/hydrus/releases/download/v150/Hydrus.Network.150.-.Linux.-.Executable.tar.gzsourcetar.gz:
https://github.com/hydrusnetwork/hydrus/archive/v150.tar.gzI had a very good week, overall. Building on the bit of work I fit in in the week before, I mostly fixed and improved things, and did a lot of code cleanup. Most importantly, I think I have fixed the problem of slow tag update processing.
tag update processingI have added a 'speed mode' for repository update processing–it will kick in when the client thinks it is idle, which by default means after half an hour of not opening dialogs or looking at images. This speed mode will use a lot more resources than usual, but in turn will make the gui extremely laggy (hence why it only kicks in when you aren't doing anything). It processes tags about
four times faster than normal, meaning about 3-4 million mappings per hour. Given that a few months ago, we were at something like 100,000 per hour, I am very pleased with this progress.
On a normal PC, and assuming the user lets the client alone to get on with it, syncing my entire public tag repository should now take about 2.5-3 hours. 4 hours was my aim, so I am content that this problem is no longer a problem. As tag repositories break ten or twenty or fifty million mappings, and so the clients' sync time slows even further, I will work on this problem more, but for now, the biggest bottleneck in update processing is inefficient use of bandwidth and laggy YAML parsing.
serious gallery downloader problem fixedI have fixed a serious gui-lockup that no one has reported but blew up in my testing today. I'm hoping I only exposed it in this week's work, but if your client ever locks up completely just as a new downloaded image was fading in, that problem is fixed in this version, so make sure to update.
full list- added an 'idle' updating processing mode that churns through tags four times faster but makes gui laggy. it will kick in whenever you haven't done anything in thirty minutes
- improved some gallery downloader status texts
- gallery downloader will no longer wait 5 secs before fetching first page of urls
- fixed a critical race condition that had a chance of causing complete and unrecoverable gui freeze in the gallery downloader code
- fixed rendering of some bizarro pngs that CV couldn't understand
- fixed tag parent management for admin users
- fixed up some tag parent dialog code
- tag sibling dialog now accepts single reasons for multiple pairs, like the tag parent dialog
- improved error state on rendering video that reports resolution of 0x0
- removed looping error reporting on certain static image rendering errors
- fixed an error when some thumbs were 'collected' while fading in
- tagboxes now select on home/end and support numpad versions of page up/down
- fixed a radio button initialisation bug
- boosted the initial size of the 'set default advanced tag options' dialog so the collapsible pane is more visibile
- silenced a upnp error when external ip can't be parsed
- reduced some tag dialog previous/next button lag
- general code cleanup and refactorisation
- gui flag refactorisation and unification
- refactorisation of most non-constant stuff from constants files
- refactorisations of media mixins class in prep for a general rewrite of that code
- improved client initialisation of default options, boorus, and imageboards
next weekNow update processing time is less of a concern, I am free to choose another big thing to work on. Someone mentioned a booru API, so I think I will look at that, to make booru processing more efficient and polite (atm, booru stuff works by parsing the gallery pages' html, which is not ideal). I also have the usual ton of issues to deal with and code to clean up.