windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v229/Hydrus.Network.229.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v229/Hydrus.Network.229.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v229/Hydrus.Network.229.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v229/Hydrus.Network.229.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v229/Hydrus.Network.229.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v229.tar.gz
I had a great week. I've fixed and improved a bunch of stuff, and the new parsing engine is coming together. I support some new mp4 types this week, so if you have some previously 'unrecognised' .mp4s hanging around, give them another go in this.
making db_dir migrations easier
Thanks to some great feedback from the recent db_dir command switch addition, I've changed how some paths are stored in the db. Most migration scenarios (i.e. moving the contents of the db directory somewhere and setting up a new shortcut to the client executable) should work right off the bat, without hassle (but make sure you boot into v229 once first to update the internal paths!).
This path update should be able to handle any shape of install, no matter where the install, db, or client_files directories currently are. I've tested this a lot, but if you do have a problem booting into this version, please let me know asap and I'll get a hotfix out or whatever else needs to happen.
I still plan to add some nicer recovery gui, and I've got to write some help.
parsing scripts dialog almost done
I made great progress on my 'manage parsing scripts' dialog. Almost everything is ready, and most of the buttons hook into real code. It can get a little complicated (you can go six dialogs deep!), so I'll be adding some better in-gui help and tooltips, but if you would like to play with this, please copy this example to your clipboard:
[32, "example danbooru tag parser", 1, ["enter example url here", 0, 1, 2, "md5", {}, [[30, 1, ["unnamespaced", 0, [27, 1, [[["li", {"class": "tag-type-general"}, null], ["a", {}, 1]], null]], ""]], [30, 1, ["character", 0, [27, 1, [[["li", {"class": "tag-type-character"}, null], ["a", {}, 1]], null]], "character"]], [30, 1, ["series", 0, [27, 1, [[["li", {"class": "tag-type-copyright"}, null], ["a", {}, 1]], null]], "series"]], [30, 1, ["creator", 0, [27, 1, [[["li", {"class": "tag-type-artist"}, null], ["a", {}, 1]], null]], "creator"]]]]]
And paste it in the first 'manage parsing scripts' dialog. It should create the new object that you can then edit. The edit script's 'fetch response' button on the test tab will currently put some example data I grabbed from danbooru which the 'test parse' button will parse some tags from. You should be able to paste the html source from any danbooru page and it'll work. Please do explore the simple child nodes to see how the magic works.
There's obviously more to do here, but I think I should have finalised the objects (so they'll be database-saveable) next week.
the menu id bug
The menu-related exception that starts C++ assertion "(itemid >= 0 && itemid < SHRT_MAX) has been reported by several users. It refers to a new menu under construction not being able to apply a new entry because the gui engine has run out of new identifiers. This has actually been happening for a long time, but the recent change in assert suppression means this now generates a full exception. (previously, these bad menu entries would simply not function when clicked).
For now, the fix for this is to restart the client. A patch I applied some time ago means most users never encounter the problem, but certain operations seem to get around my current id-recycling and so hasten it.
So, I've made a plan to rewrite the whole system to no longer need these limited and static ids. It'll also simplify a bunch of code I've been planning to rewrite for a while. I've created a decent base this week and converted some stuff over, and it all seems to work so far. I expect to migrate all my old code to this new system over the next few weeks, although a couple of circumstances need a bit more testing and ironing out.
So if you get this bug, please hang in there–I'm working on it.
full list
- edit html formula dialog can now be launched from edit content node panel
- edit html tag rule dialog can now be launched from edit formula panel
- edit formula panel test now works
- edit content node panel test now works
- edit script panel test now works
- html formula now filters out missing content rather than complaining
- misc parsing work
- fixed some listctrl resize columns to be more helpful
- attempting to size a resizing listctrl column will now move the resizing column to the last column, which will avoid the flickering scrollbar sperg-out of previous
- attempts to resize the final column of a listctrl while it is the resizing column will be silently vetoed, which will avoid more resize event flickering
- frame location options panel now allows for negative position coordinates (for multi-monitor setups)
- all the new resizing panels now handle certain size updates in a more unified and reliable way
- fixed an issue with hover windows' mouse position check breaking during media window init/shutdown edge cases
- avc1 mp4 support added
- ftypFACE mp4 support added
- ftypdash mp4 support added
- mpegts mpeg support added
- to help migration, paths are now only stored as portable (i.e. relative to the base path) if they are beneath the base path (previously, this was true for any path on the same partition, permitting PITA '../../my_files' portable paths)
- to help migration, portable paths are now relative to db_dir, not installation base_dir (existing client_files_locations, ideal client_files/thumbs_locations, export_path, and HTA paths will be updated)
- started work on cleaning up button code across the program
- created a better way to bind menu events that shouldn't suffer the id overflow bug
- started work on replacing the old id_to_action_cache menu mess with the new system
- too-many redirect exceptions are now richer and caught more sensibly
- circular redirects are caught as soon as they occur
- reduced sqlite cache size (with the new disk cache, this is now less important)
- client.py is now included in the source and windows frozen releases
next week
More of this, I think. I'd like to have 'file lookup' scripts working end-to-end, so the dialog will support a full POST query to iqdb or wherever that actually parses some real world tags.