windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v289/Hydrus.Network.289.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v289/Hydrus.Network.289.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v289/Hydrus.Network.289.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v289/Hydrus.Network.289.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v289/Hydrus.Network.289.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v289.tar.gz
I had a great week. The new wx build is ready for all users, and I am back to normal schedule and work.
wx
Last week, I updated the client to an important new version of my user interface library, wxPython. It was a big change, so several bugs (tag lookup scripts broken, missing taglist scrollbars, and empty client->external file drag-and-drop were the big ones) and even a couple of crashes fell through the cracks. I believe I have now fixed pretty much everything, and I am much happier with the whole build in general, so I now recommend it for all users, including first-time users.
Please note that I fell back to Ubuntu 16.04 for my Linux build environment, and several users on different flavours report they can now run my build (the one linked above) when they previously could not. I believe this is true for some Arch users as well, which has previously been a real problem. If you have had trouble running hydrus in Linux from source (or getting the new wx going), please try the build, as you may find it just works now.
To repeat from last week: there is not a huge amount different in appearance with the new library version, but the behind-the-scenes works a lot better. There is less flickery and clunky behaviour all-around, and I've rewritten some auxilliary systems to use less CPU and memory. It was a lot of work, but I am pleased with this final result. I am feeling more enthusiastic about a similar update to Python 3 sometime this year.
Thank you to all the users who reported issues and the quick turnaround when I needed more information. If anything you reported is still happening or you discover any new crash conditions or anything, please let me know!
url classes
I got back to work on the downloader overhaul and was able to finish the new 'URL class' concept, which is a system that will eventually let any user define a site's URLs for the new downloader engine to recognise and interact with.
I have created default url classes for (I think) all the sites the client supports when you first install, and when you update, you will receive these defaults. When you next open the media viewer on a file with known urls, instead of seeing a list of web domains in the top-right URL list, you will get prettier 'gelbooru file page' or 'deviant art file page' for any recognised URL.
Please note that if you have played around with this system yourself, the update here will completely overwrite whatever you might have previously created with the new defaults. If you want to keep something, please export it in your current version before updating so you can reimport it afterwards.
misc
The options dialog now has an 'importing' page that lets you set up default 'file import options' for quiet and loud import contexts. If you prefer your page imports to only show new or inbox files, for instance, you can now set this as the default easily. You can also set up the 'exclude deleted' and minimum resolution and the other settings as well. The old 'exclude deleted' setting is removed from the 'files and trash' option page and reset to YES in both import contexts, so you if you typically do not exclude previously delete file imports, please check these new file import settings.
I have fixed an issue where thread watchers could pause themselves on certain network errors when trying to recheck. This was hitting some people on waking their computers–a bunch of their threads would check, but the computer had not yet initialised the network, and the threads would hit the error and all pause themselves. This could also happen during any other long network disconnection situation. So, thread watchers now catch network-related errors more cleverly and do a similar 'delay' system as subscriptions–they'll just wait four hours before trying again (although you can hit 'check now' to override this). Thread watchers also now prepend their names with a pause symbol, '⏸', whenever they are paused. You can set this prefix to be something else under options->downloading, like with the [DEAD] and [404] states.
full list
- fixed an issue where scrollbars were only appearing on taglists after a resize event
- fixed the raw filename component of file drag and drop events from the client to external programs
- fixed the tag lookup scripts
- fixed some wx menuhighlight issues
- improved some shutdown code
- fixed the add/edit namespace colours options panel, which needed to be updated to deal with the new wx's better alpha channel reporting
- fixed an issue when hitting 'open externally' on a media collection
- fixed a crash on client shutdown whenever closed pages were in the undo menu
- think I fixed another shutdown crash
- fixed a rare issue with the collect by dropdown not being able to generate a string to display
- misc wx fixes
- added a 'importing' page to the options dialog, which now sets the default file import options for quiet and loud file import contexts
- the old and no longer used 'exclude deleted files' option is now removed from the 'files and trash' panel
- finished off default url matches for all downloaders that come with the program–these will be set on update, so if you have custom ones, please export them before you update so you can import them again!
- improved how urls are matched and presented for the user in the media viewer
- added a 'delete "successful" file imports from the queue' entry to the file import status button right-click menu–this only removes 'successful' and 'already in db', leaving anomalies
- improved locale instantiation in the client and added locale strings to the help->about dialog
- you can now set the page name prefix for a paused thread checker. it defaults to a unicode pause character: ⏸
- thread watchers will no longer pause on a network error during a check–they now have a 'delay' system like subscriptions, and on a network error, they will delay four hours (unless you hit 'check now')
- patched in some simple 'connection cutoff' network error handling, we'll see how it does
- wrote in some more proper error handling for a specific connection cutoff error that is being produced
- the similar files search tree regen code now clears out orphaned files. if you have had blank 'unknown' files appear in similar files searches, please run database->regen->similar files search tree
- bitmap buttons on download pages will now update using less CPU and will flicker less
- improved some video rendering error reporting
- fixed the 'author name' regex favourite default, which had a superfluous asterisk. if you would like to fix it yourself, please try: [^\\]+(?=\s-)
- added 'flush log' debug command
- client.pyw now makes a safe 'system' ui error popup if it fails to boot
next week
With the url classes now in place, I will start integrating it into the existing downloader engine. When the client can intelligently recognise any kind of url and match it to a parsing solution, we can start swapping in the new parsing engine and begin supporting downloads for any user-defined site.