windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v309/Hydrus.Network.309.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v309/Hydrus.Network.309.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v309/Hydrus.Network.309.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v309/Hydrus.Network.309.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v309/Hydrus.Network.309.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v309.tar.gz
I had a good week with a bunch of unusual work.
tumblr GDPR
When GDPR hit, tumblr introduced a click-through page for all European Union and European Economic Area users. Unfortunately, this page applies (likely unintentionally) to their old JSON API as well as regular pages, so it broke the current hydrus tumblr downloader.
I have written a simple 'login script' to perform this click-through manually, so if you are an EU/EEA user, please hit network->DEBUG: misc->tumblr click-through. The magic cookie you get lasts a year, so we have plenty of time to come up with a better solution. I understand this click-through event is linked to tumblr logins, so as I roll out a proper login system, we'll have more control here.
I live in the US, so testing for this was not super convenient. It appeared to work for a couple of EU/EEA users, but it may not for certain countries or may suddenly no longer be needed if tumblr changes how or where it applies to their CDN. I don't know enough about the implementation or the law's details to know for sure, so please send your feedback. This–and any other sites that might be forced to switch in the coming weeks–is likely something we'll just have to keep a continuing eye on.
video thumbnails
Videos (but not gif yet) now generate their thumbnails 35% in by default! You can also change the 35% value under options->media. You should see far fewer black-frame thumbnails for your videos now!
This was a highly requested feature. While I had originally planned to wait for a full overhaul of the system that would introduce animated thumbnails and maybe even an 'interestingness' scanner to pick the 'best' frame and discard blank ones entirely, after thinking about it more and talking with several users the past few months, I decided to have a brief look at the actual code and saw I could hack in some simple support. I cannot promise it works for files with unusual/inaccurate frame counts, so please link/send in any video files that error out.
I will eventually write an automated maintenance routine to regenerate all your old videos' thumbnails (and some other stuff that still needs a rescan) in idle time, but if you can't wait, turn on help->advanced mode and right click the selection of files you want to regenerate–there should be an option at the bottom to reparse and rethumbnail them.
downloader stuff
I've added parsers for inkbunny and gelbooru 0.2.0 (by default in the client, that means rule34.xxx, tbib, and xbooru), so they now support drag-and-drop and, for gelbooru, parse a little more info than before.
The multiple watcher now has a pause button, better sorting, and will prefer to accept url drag-and-drops on the current multiple watcher page, if multiple are open but one is currently selected.
The way the client performs its 'Have I seen this URL before?' test is now much more strict. False positives should now be far less common when some booru attaches a bare username/artist twitter/patreon/whatever URL as the source for a file. If you have been hit by this, let me know if it all magically fixes this week if you 'try again' the affected URLs, and if it doesn't, please let me know the details. I am still working on this and will roll out more tools to control url-checking behaviour.
Advanced users: The HTML parsing formula's tag rules can now search for tags that have certain 'string' content, like 'Original image'. This is very helpful in certain situations–check out my new gelbooru 0.2.0 file url content parser if you want to see an example!
siblings and parents logic improve
Much like the video thumbnails above, I decided to hack-in some better sibling and parents logic this week rather than wait for a neater complete overhaul.
So: now, if you create a new parent pair c->p, c will now also get any parents of p, and and parents of them (i.e. grandparents are now added to children recursively). Also, if you add a sibling pair a->b, a and all of a's siblings will get all the parents and grandparents (etc…) of b and b's siblings, and vice versa. Basically, parents now add recursively and all the siblings get all the parents they are supposed to. It isn't perfect yet, but it is better.
And again, I expect to write a maintenance routine in the future to retroactively fill in the gaps here.
Linux stability
I have put a bunch of time into improving Linux stability, which has, on-and-off, been randomly horrible since the wx update. I haven't caught everything, but I think things are better. Please continue to give feedback–whether you notice any difference at all, and if any activity in particular is still likely to cause a crash a few minutes later.
full list
- wrote a fix for the tumblr GDPR issue under _network->DEBUG: misc->do tumblr GDPR click-through_. you will also get a popup about this on update
- the tumblr downloader will try to detect the GDPR problem and present a similar popup guiding you to the GDPR click-through solution
- the client and server now generate video (but not gif yet) thumbnails 35% in by default. the client can now change this percentage value under options->media. this was highly requested and was being put off for a longer rewrite, but I figured out a simple way to hack it in. please let me know if you get failures
- on adding a parent, all files with the child tag will now also get all applicable grandparents (with no limit on recursive generations and dealing with accidental loops)
- on adding a sibling, all files with any of the siblings will now also get all applicable parents and grandparents for the whole group. a maintenance call to retroactively fill in the sibling/parent gaps that are now filled will also come soon
- this logic still does not apply in cross-service situations, which _will_ likely have to wait for a big data/gui overhaul and us figuring out what we actually want here
- added a simple pause/play button to the multiple watcher
- if the multiple watcher is set to catch watchable url drag and drop events and the current page is a multiple watcher, this current page will catch those new urls (as opposed to the _leftmost_ multiple watcher)
- improved some thread unpause logic which was failing to lock pause during 404 status
- the multiple watcher should now ignore case when it sorts by subject
- added url class and file page parser for inkbunny (so this site is now supported in drag and drop!). it fetches creator tag, some artist-made unnamespaced tags, source time, and md5
- added file page parser for gelbooru 0.2.0, which by default works for rule34.xxx, tbib, xbooru but certainly should work for a bunch of others. it fetches source time and source url
- html formula parsing rules can now additionally test the tag 'string' using a standard StringMatch object. this greatly helps to parse otherwise indistinguishable 'a' tags that have string 'Original image' and so on
- the 'have I seen this url's file before?' pre-import test is now much more strict and will cause fewer accidental false-positive 'already in db'/'deleted' results:
- the url pre-import test now does not trust source urls if they do not have a url class
- the url pre-import test now no longer trusts urls that are supposed to only be mapped to one file but are actually mapped to multiple
- this url pre-import test now treats url-classless original post urls and intended file urls with a special level of trust
- urls are now stored in the db in a more powerful and in-future easily searchable way–your db will take a moment to convert to the new format on update
- did some prep work for multi-file post urls (like pixiv manga) but did not have time to finish it
- the filename tagging options panel (in the 'add tags based on filename' of file import dialog and import folder dialog) now updates its tags/list 0.5s after the last change event, which means typing on a giant list will not cause megalag
- improved stability of some client-screen coordinate conversion
- misc bmp handling stability improvements
- improved some parsing ui stability when example data gets set after the dialog is closed
- improved some misc dialog close stability
- converted all but one final ui update timer to the new job scheduling system
- there are still problems with linux stability–I will continue to work on it
- an ugly (but basically harmless) shutdown exception sometimes caused by Animations being a bit slow on deleting their underlying bmps _should_ be fixed
- the export files dialog now generates its paths in sort order, meaning (1), (2) de-dupe filename suffixes should now be generated nicely in order
- the network domain manager should now always chase API URL links to get the right parser
- made some 'the db is broke, let's try to fix it' tag recovery code more forgiving
- misc improvements to some media indexing backend, which may fix some unusual session ghost files
- fixed the 'sure it is ok to close this importing page' dialog to also veto on a 'cancel' event, rather than just a 'no'
- added a guide to database_migration.html on how to move the db from just an HDD to straddle both an SSD and HDD.
- cleaned up the help->debug menu a bunch
- added run fast/slow memory maintenance calls to help->debug->data actions
- misc cleanup
next week
I would like to take the week from the 6th to 13th easy so I can shitpost E3, so I'd like to concentrate on tying up loose ends. I'd love to get pixiv manga pages working along with other multi-page Post URLs like tweets and Artstation posts–I did a little on this this week, but then ten other things like GDPR swamped me.