windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v267/Hydrus.Network.267.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v267/Hydrus.Network.267.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v267/Hydrus.Network.267.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v267/Hydrus.Network.267.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v267/Hydrus.Network.267.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v267.tar.gz
I had a great week. I fixed new and old bugs and polished a bunch of the new network stuff.
bug fixes
I was overambitious with my time last week, and it lead to some frustrating bugs. If you were affected, I apologise. Things should be running better now.
First of all, subscriptions with unicode characters in their names should save their bandwidth history without problems now, so please unpause them.
And the occasional flickering 'modal' popup messages should also be gone. They won't appear unless they have plenty of work to do, will behave better when the client is deminimising, and should exit cleanly (sometimes, they were exiting badly and locked the user out of the client). Let me know if you still get any problems here.
Also, I put some time into exploring the opening-dialog-when-busy crash properly and have it fixed with a new custom control. Anyone who previously had a crash opening a dialog or sorting a listctrl while they had 20+ pages open should now be ok to open dialogs again. I have turned off all auto-sorting on all the old controls. If this was an issue for you, please do not manually sort any listctrls (the grid/spreadsheet 'tables' of data that you can sort by clicking the column title) for now. The new control is only in 'review bandwidth' so far, so feel free to sort that all you like, but the others will take a few weeks to replace.
page improvements
Pages now have more power over naming themselves. File pages launched from a subscription popup will be named after the subscription, and several other instances will do similar.
By default, pages will now show their current number of files after their name. They will also clip to max 20 characters. If you do not like either of these, you can edit them in options->gui.
I have been talking with several users about better page information and layout, which these changes start. I would like to slip in double-notebook 'nested' layout in the coming weeks, perhaps even next week, to improve high-page-count workflow and make certain sessions a little easier to manage.
Also, pages will use less CPU in most situations, especially when they are not currently in view. 10,000+ file imports should run a lot quicker now!
import improvements
I did some background cleanup and polishing work on most of the importers–the hdd import page now uses the new file import status control, and galleries will sleep and wake more intelligently, for instance.
I also fixed some small bugs and a bigger issue with the gelbooru parser, which was only checking 'odd' page numbers and hence finding only half the results.
And now, drag-and-dropping a 4chan or 8chan thread url onto the client will spawn a thread watcher immediately! Just DnD from the address bar or the Reply link!
full list
- drag-and-dropping a 4chan or 8chan url onto the client will now automatically open a thread watcher for that url
- fixed an issue where web domain or subscription network contexts that included unicode characters in their context data were unable to serialise and save to the db, causing error spam when the bandwidth manager attempted to save itself
- subscriptions will now show a network job control in their popup as they do network work
- subscriptions will cancel more reliably during gallery parse
- subscriptions now have some 'delay' logic that will stop them sometimes restarting as soon as they are cancelled or otherwise have to stop mid-work
- subscriptions will now tolerate up to five 'already in cache' urls per page parse until it considers the page 'already seen'. this is to catch the odd additional late insert and avoid the problem of a page updating and shuffling everything up one as the subscription walks through pages
- maintenance modal popup messages should no longer appear if their jobs are very quick
- queued up modal popup messages will no longer flicker their dialogs on a de-minimise
- should have fixed an issue where modal popup messages could sometimes error out on a close attempt, locking the client's whole gui and requiring a force quit
- fixed an issue where the modal popup message dialog was OKing on a close attempt of a non-cancellable job, despite presenting user text indicating otherwise
- did a bunch of data work on pages
- page tab names will now be clipped to 20 characters by default
- pages now show (num_files) after their name by default, although you can set this for only import pages or turn it off completely
- options for these new behaviours are in options->gui–and page names will update immediately on dialog ok
- subscription and import folder 'show files' events (and a couple of other misc occasions) will now launch their page tab with the sub/folder name rather than a flat 'files'
- wrote a new listctrl class with custom sort code that does not suffer from the 'crash when sorted while many pages open' bug. it also handles data in a simpler way for hydrus
- review bandwidth listctrl now uses this new class and should now not crash your client. I will replace all the other listctrls with the new class over the coming weeks
- temporarily, no old listctrls will auto-sort themselves (as this causes a crash for many users)! if you do not suffer from the crash, please sort them yourselves for now
- reduced some large-scale gui import lag:
- reduced content processing CPU load on clients with many thumbnails open
- massively reduced content processing CPU load on non-current pages
- offloaded newly-imported file thumbnail detection and generation to a non-gui thread
- migrate database dialog now lets you move the whole database and all portable locations, which requires a client shutdown
- the raw url downloader will no longer have a problem with pasted url lists that include empty newlines
- all the downloaders/importers now sleep on cleverer event objects so they will burn less idle cpu and wake as soon as they have new work to do
- fixed and otherwise improved some gallery downloader timing logic
- hdd import pages now use the file import status control
- the thread watcher's controls now try to wrap in a single sizer. it uses less space, but might sperg out, let me know if it is a problem. I'll replace the whole watcher timing system in the new engine anyway
- fixed a gelbooru (and possibly others) booru parsing bug that meant half of the pages in the gallery walk were being skipped (e.g. 'mogudan' was producing ~350 files when there were actually 690 in the list)
- fixed some dialog panel layout scrollbar-cutoff in sevaral Linux places and perhaps elsewhere
- cleaned debug menu a little and added a save 'last session' entry
- fixed an issue where some kinds of media would error on notification of new url association
- clients will now save small transaction progress reliably within ten seconds no matter how idle they are
- deleted the old 'gui capitalisation' option–I never got around to expanding it beyond a handful of menu labels, it was always too much to work on for too little reward
- improved support for certain broken videos–these will import ok, but full rendering might be borked to different degrees, so let me know how it goes.
- cleared out some old content processing code
- cleared out some old unused db data
- removed all old 'waiting politely' download settings and gui code
- misc prep work for wx update
- misc gui code refactoring
- misc downloader cleanup and timing tweaks
- misc improvements
next week
I enjoyed working on smaller stuff and catching up on back-burner jobs and cleanup this week. I would like to do more of this stuff for a few weeks, but I'll also keep putting time into the network overhaul. Hydrus services and a couple of other things still use the old system, and there is plenty of more polish and test code to add before I can properly move on to the login and domain-handling engines.
I played with the new 'Phoenix' version of wx this week. After some work, I got the client to boot in Windows, but there will be a bunch to do to get it running without errorspam. I will try to replicate my experiment in Linux and OS X and then schedule a full week in the next few months just dedicated to changing over.