windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v295/Hydrus.Network.295.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v295/Hydrus.Network.295.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v295/Hydrus.Network.295.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v295/Hydrus.Network.295.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v295/Hydrus.Network.295.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v295.tar.gz
I had a great week. I mostly fixed and dejanked stuff. Also, the thread watcher now supports 420chan!
fixes and cleanup
The RuntimeError popups some users were seeing after a restore-from-minimise events are completely fixed. Some related search page and tag autocomplete draw and timer code is also cleaned up, and a memory leak was fixed along the way.
I also moved some more stuff to the new job scheduler. The client should use fewer threads and less idle CPU. I am still very pleased with this new system. There is also more to do here, so I will continue moving jobs to it.
cancelling file queries
If you start a big file query for, say, just system:everything and then add a new search predicate, the original search will be cancelled early. I have added more cancel 'checkpoints' to the search code, so large laggy searches will cancel much earlier than before.
Furthermore, if a search takes more than three seconds, a little 'stop' button will now appear beside the autocomplete input. If you accidentally start a very large search, please hit this button to stop it while you sort out what it was you actually wanted. The search might not free up the database immediately, but it typically only takes a few seconds.
420chan and parsing ui
I wrote a 420chan thread parser. It should add and link itself when you update, so feel free to drop 420chan thread URLs on the client just like you would a 4chan or 8chan URL, and let me know if anything doesn't work.
For advanced users: I've also significantly reworked the layout of the new edit parsers ui. The 'test' panel is now beside the main 'edit' panel, and the 'info' panels are dropped for help buttons that link to the html help. There are numerous bug fixes and little workflow improvements as well. I expect to continue working on the help over the coming weeks, but all this stuff is getting there.
thoughts on underscores
There are many tags like 'blue_eyes' that come from sources that can't deal with spaces. We have fixed a ton of these with siblings ('blue_eyes'->'blue eyes'), but since this is such a common problem, I am also considering just adding a rule to convert all underscores in tags to spaces. I intend to still allow underscores in tags using an escape character (it'll probably be that double-underscores are rendered as one underscore, while single underscores are converted to space) for tags where the underscore is part of it (like it might be 'series:watch_dogs', although I see most sources just use "Watch Dogs" anyway), but it'll take a bit of human intervention (likely a handful of siblings) to fix on our end. I figure the effort to carve the space for the exceptions will be much less than ultimately having to add a sibling for almost every simple tag that has a space.
Making this sort of shift would be a big step affecting multiple systems, and I want to think about it for a while. I also want to know what you think, so if you like, please check out this poll:
http://pollmaker.vote/p/JKTWR07U
And if you have longer thoughts, please let me know. Again, I won't do this next week, so there is a good bit of time to think and talk about it.
full list
- fixed the runtimeerror popups that would come up on restore from minimise or main gui move after the complete destruction of a general search page
- cleaned up some main gui move code generally, and removed a memory leak on the way
- file queries can now cancel at multiple checkpoints during the first phase, saving a bunch of CPU time on certain large queries that are replaced mid-search
- after a file query has been going three seconds, a little 'stop' button will appear beside the regular autocomplete input. clicking this will cancel the current query! it will stop when it next hits one of the checkpoints above
- the floating autocomplete dropdown should be less flickery in some circumstances
- dejanked some more file query code
- added a 'clear orphan file records' entry to the database->maintain menu. this looks for and purges orphan file rows as you may have seen a notification about recently. this mostly affects the duplicate filter system
- fixed up the delete file code to be a bit more robust–it should lead to fewer orphans in future
- all the parsing edit panels have new layout: they no longer have info panels but instead a help button that points to the html help, and the edit and test panels are now beside each other rather than in notebook pages
- harmonised a bunch of the parser ui test panel code, refactored how the results are stored
- the test panel now presents a better 'preview' of what it contains (the actual text control has like 64KB text limit on some OSes and has unreliable text encoding rules, so using it as the raw container for the example data has lead to problems), and we now read and write the example data with a couple of new copy to/paste from clipboard buttons
- wrote another new test panel for subsidiary page parsers that does the separation formula stuff a bit better. the test results now come back for all posts as well, rather than just the first
- added a new 'deeply_nested_dialog' frame key to options->gui for the parsing ui to better lay out five or six nested dialogs in a nice 'topleft' way
- the 'topleft' frame padding is reduced from 50 to 24 pixels to better fit in deeply nested dialogs
- misc parsing ui improvements and little fixes
- the manage url classes and manager parsers dialogs now have a better 'add defaults' button that allows you to just select the defaults you want (by name) from a checklistbox
- wrote a parser for 420chan and added it to the defaults. it should automatically add and link up when you update
- if the install_dir/db directory is not writable-to (e.g. you have installed the program to a protected location like "C:\Program Files"), the client and server will default to ~/Hydrus as the db directory
- wrote a new 'TagSummaryGenerator' class that will do 'bunch of tags'->'nice summary string' conversions for the thumbnail banners and export filenames
- substituted some static tagsummarygenerators to do thumbnail banners
- did the same for the media viewer top-center namespace summary
- started some edit ui for tagsummarygenerators–I'll have some proper customisable stuff in the near future
- moved the background memory maintenance and misc daemons to the new job scheduler, reducing thread count and idle CPU some more
- added a debug 'show scheduled jobs' entry for the new job scheduler system
- decompression bomb failures will no longer count towards a subscription's fail count, so having a bunch of them won't abandon a sync
- fixed and otherwise improved a potential crash condition when a thumbnail panel closes while a menu is popup'd on it
- to forestall this program instability, the thumbnail window will no longer replace while its menu is open. the behaviour after this delayed window delivery is slightly borked, but it isn't a crash so I'm ok with it for now
- removed some other jank from the thumbnail media panel swap code
- non-cancellable modal popups will no longer have the 'close' button. trying to close them with the dialog's X button will still give the 'sorry lad, can't cancel' error
- rating and file service system predicates for services that no longer exist will now render a neat 'unknown x system predicate' presentation string rather than throwing an error
- searches in 'all known tags'/'specific tag domain' no longer provide system:untagged, wew
- some delayed events are now posted in a more thread-safe way
- misc refactoring
next week
I am getting over several humps now. The new parser code seems to be working out, and the wx update and its crashes seem 99% dealt with, so I want to catch up on some things that have been put aside. I've done some prep work for user-editing the 'banner text' on thumbnails, so I'd like to finish that, and there are some longer term 'nice to fix' bugs that I'd like to look at. I'd also like to fit in some more imageboard parsers.
BTW: The old computer my server runs on is having some OS update trouble right now and keeps shutting off and failing to come back up properly. Several mornings this week I have tried to check my PTR petitions and discovered it was down again. I went nuclear on it today, killing a whole bunch of 'it is ok to reboot for update' settings, but I have also moved my 'move the server to newer hardware' job way up. In any case, if you try to pend some tags and get a ConnectionError, please let me know and/or try again in a few hours. I hope to have this situation fixed within the next few days.