windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v302/Hydrus.Network.302.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v302/Hydrus.Network.302.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v302/Hydrus.Network.302.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v302/Hydrus.Network.302.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v302/Hydrus.Network.302.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/50dc4f82cb55ae21b62d1e41a2bcc169b82b1d41.tar.gz
I had a great week. I've finished up the new 'simple downloader' and wrote a new way for subscriptions to run simultaneously.
simple downloader improvements
I have rounded out the new simple downloader, which replaced the old 'page of images' downloader last week. Its parsers have more descriptive names and it can import and export parsers for sharing. And it remembers which parser it had selected through a session restart.
I also reintroduced the old 'all files linked by images in a page' behaviour from the old page of images downloader. This parse method, which fetches anything linked to by an image in the entered URL, is a useful catch-all for threads from as-yet unsupported imageboards and other miscellaneous tasks.
I also added new parsers for mewch threads, webmshare file pages, and imgur image albums. The imgur album parser only works for the first page of results (about ten images) right now–we'll have to wait for the cleverer gallery parser to get full support.
simultaneous subscriptions
Subscriptions can now run in parallel! The new setting for how many can run at once is under options->downloading. I have kept the default as 1, so you will not see any change if you do not touch anything, but if you would like to bump it up to 2 or 3, please give it a go and let me know how it works for you.
This is new code, so I recommend not turning it up to 11 yet. I've improved how some of the bandwidth calculations work here, but I can't promise a very heavy situation will not result in a traffic jam.
misc
After a long time of hating the name, I have changed 'explicit tags' to 'additional tags'.
If you like, you can now set media to scale to 100% by default, even when the media is larger than the media or preview canvas size.
Some unusual searches that were formerly not returning any results (like 'akaiha_(akaihasugk)' on danbooru) should now be fixed. This was due to bad site-side markup not parsing correctly clientside. Users who run from source may like to check to see if they have 'html5lib' installed, which is the new parser I now prefer above the old 'lxml'.
new html parsing options
This is for advanced users getting into the new parsing system only!
To get the old 'all files linked by images in a page' behaviour working again, I had to update the new html parsing formulae to walk up the tree (ascending) as well as search down it (descending). So in any normal parsing step, as well as saying 'find all the img tags', you can now say 'walk back up the tree until you hit an 'a' tag'!
Also, you can now set a descending rule without an explicit tag name, so you can say 'find all tags with class="thumb"' without having to specify div or span or whatever. If you are a mad man, you can also just search for 'all tags' without any qualifiers, wew.
full list
- improved how simple downloader parsing formulae are stored and passed around
- the edit simple downloader parsing formulae panel now has an 'add defaults' menu button
- the simple downloader formula edit panel handles its buttons better and can now do import from/export to clipboard/png and reimport from the defaults, and fixes duplicate names automatically
- simple downloaders now remember their current parser through a session save/load
- simple downloaders will set a new default parser selection for new simple downloader pages on any choice event
- renamed all the default simple downloader parsers to more clearly explain what they do
- added 'all files linked by images in page' to the simple downloader, which does the old page of images' behaviour, and is hence pretty decent for most imageboards
- added a simple mewch thread html parse formula to the simple downloader
- added a very simple webmshare parse formula to the simple downloader
- added 'imgur image album' to the simple downloader, which will fetch the first 'page' of results from an image album. full parsing will have to wait for the gallery downloader update
- subscriptions can now run simultaneously! you can set the max number at options->downloading page–the default remains 1, so default behaviour will not change
- if subscriptions guess they can eat some bandwidth in the next 30s but it turns out they can't, they will bandwidth-override that last job after the 30s expires. this will stop some edge cases from causing subs to potentially hang for hours just on one last request
- 'explicit tags' are now renamed to 'additional tags'
- you can now set media to initially scale to 100% even when it is larger than the media or preview canvas
- the html parsing formula can now 'ascend' as well as search down the DOM tree–so, for instance, you can find all 'img' below an 'a' and then jump back up to the 'a' to fetch the 'href' of that image link!
- html parsing formulae can now search without a tag name–so, for instance, 'find all tags with class = "whatever"' is doable, without having to specify div or span etc..
- the html parsing formula rule panel is hence a bit richer. it also presents a preview of the rule's string as you edit
- the client no longer needs lxml to boot, and if html5lib is present, it will prefer that for html parsing. if both libraries are missing and html parsing is requested, it will raise an exception explaining the error
- the builds now include html5lib, which is better at recovering from some bad markup than lxml, and as a result some parsing jobs that formerly did not work (such as 'akaiha_(akaihasugk)' on danbooru) now do
- rewrote how services test their functional status to better account for different states. the logic here should be a bit better now–repositories will still be able to process if their network side is down, but everything will pause if any pause is set, and it should all propagate up to higher levels of error catching and status reporting better
- hydrus can now deal with really big decompression bombs (>~180 megapixel)
- filtered out en-dashes (as an alternative to standard hyphens in a "? + -" link-prefix) from booru tag parsing
- fixed a string generation issue that was stopping date decode string transformations from summarising themselves
- fixed some catastrophic boot failure gui reporting
- cleaned up a double-exit error on dialogs that could occur when spamming exit events with a script like AutoHotkey
- improved some dead cpu thread clearout code
- updated misc old code
- misc cleanup
next week
With the simple downloader finished, I want to get into the meat of the gallery downloader. The first step of this will be allowing drag and drop of arbitrary booru/whatever file page URLs onto the client.