windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v293/Hydrus.Network.293.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v293/Hydrus.Network.293.-.Windows.-.Installer.exe
os x
app: https://github.com/hydrusnetwork/hydrus/releases/download/v293/Hydrus.Network.293.-.OS.X.-.App.dmg
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v293/Hydrus.Network.293.-.OS.X.-.Extract.only.tar.gz
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v293/Hydrus.Network.293.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v293.tar.gz
I had a difficult week, but my hydrus work went well. There are more important fixes and the new parsing system now works on thread watchers.
fixes
I messed something up with the new 'system:time imported' last week and caused a problem that meant the options dialog was not saving something it could then correctly load. Trying to open the dialog after oking it once would result in an error. I apologise for this problem–I was hit with it myself. I have added a test to my weekly routine to check this problem specifically so it does not happen again.
After some more reports, I tracked down another possible way the manage tags dialog–or the file import path tagging dialog–could cause a crash. This is now fixed. Please continue to send in reports if you still get crashes.
Sankaku changed their web access rules again last week, resulting in hydrus getting 503 errors. Me and some other users figured out a fix, and it should be applied on update. Please let me know if you continue to get problems.
new parsing system
I have finished the first version of the parsing system and tied it into the thread watcher. The thread watcher almost entirely uses the new downloader engine. This was a lot of work, and I am pleased with the final result.
As is often the case, there isn't a huge amount different in this first version–the main thing is that 4chan or 8chan threads without subjects will now get the first part of the first post's text comment as their hydrus page tab title.
The really neat thing is that it all runs off a customisable parsing object that other users can create and share. This customisable system is complicated and not yet user-friendly, so I do not recommend every user jump in, but advanced users might like to take a stronger look over the next few weeks to see how it all goes together.
I ran out of time this week, but I hope to add new parsers for pregchan, 420chan, and 2chan in the very near future.
full list
- fixed the issue with options dialog not opening again after a save–I apologise for the inconvenience
- the default system:time imported predicate (as set in options) is reset to the default '< 7 days'
- fixed another potential crash with the manage tags dialog (in fact with any dialog that has an embedded autocomplete or any other autocomplete with a non-floating dropdown list, such as the import file path tagging dialog)
- the sankaku user-agent has been updated to be a generic Firefox string "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0", which seems to work with their new rules. if your sank has been broken and you haven't touched the settings that do this stuff, your sank should be magically fixed on update
- the default global hydrus user-agent has been updated to the more polite and compatible "Mozilla/5.0 (compatible; Hydrus Client)". if your previous global user-agent is currently 'hydrus client' (the old default), you'll be updated
- import folders now deal with interruptions more skillfully and take a break and save their progress every ten minutes
- the manage import folders dialog now waits properly for any currently running import folders to quit and save themselves before opening itself (like how the manage subs dialog does it)
- import folders deal with some error states in a better way and are able to cancel out of their loops more reliably when an error occurs
- added a new checkbox option to options->tags that lets your 'write' autocomplete inputs (ones where you can submit new tags, like in manage tags) select the first result with non-zero count by default. this means it will skip over the first result if it is just nonsense like 'boyp' that you typed to get the results
- linked all the final behind the scenes stuff in the thread watcher together with the new parsing system. this stuff remains complicated and non-user-friendly, so please feel free to completely ignore it and the following batch of points:
- -
- wrote new url classes and parsers for 4chan and 8chan–they should all be automatically linked up on update
- the new thread parsers will use the first part of the first post's comment if no subject is set
- the domain manager can now cope with URL->API URL links
- manage url class links now displays the current expected api pairs of URL class links and filters out what cannot be currently parsed as a result
- manage url class links now only displays watchable urls in the bottom listctrl and permits parsers to be linked!
- the domain manager can now try to link url classes with parsers based on example urls!
- a button to fill in missing links is now available on the manage url class links panel
- content parsers that produce urls now define different url types–file, post, and 'next gallery page'
- content parsers can now parse a 'source timestamp' type
- veto content parsers now use a StringMatch object to do their matching. existing veto content parsers will be updated and _should_ work about the same as before (unless the previous string was crazy in regex rules) using a regex match
- html formulas now pick up the 'string' value more reliably in complicated or mangled html
- html and json parsing formulas can now work without any rules, in which case they action the top level node (this is useful to replicate the json/html for subsidiary page parsing)
- activated some of the new file import objects' features for the new parsing system–now, they store tags and known hashes as informed by what is parsed. this information is tested and used in import
- the db can now test all the hash types–md5, sha1, sha256, sha512–during pre-import checking
- the new parsing system now takes a temporary 'parsing context' that will eventually be able to receive and serve temporary variables but at the moment just holds a 'url' entry if the parser would like to use the url used to fetch the data anywhere
- all the new parsing ui now has a button to edit the parsing context, and the example parsing context is saved to the topmost page parser object
- wrote some url classes for 420chan.org–they will be added on update
- fixed an issue with the 4chan thread url class
- -
- the standard new listctrl panel wrapper can now now provide a special 'export to pngs' for certain named objects that will quickly export one object per png
- the 'import from png' dialog as launched from the standard new listctrl panel wrapper now allows multiple png selection
- the default parsers (and now the url classes as well) are stored in install_dir/static/defaults. they are read from here when you create a db or ask to load from defaults, so feel free to play around with this
- the manage services dialog now has an additional Yes/No warning/confirmation dialog if it expects to delete any services on dialog ok
- page tabs escape mnemonic characters (typically '&', which in ui labelling rules makes the following character an underlined shortcut) more reliably
- in an attempt to stop subs making so many separate small file popups, the subscription daemon will now only naturally check every four hours (previously one hour) and will wait up to ten minutes for bandwidth to free up before dumping out (previously 30 seconds). these values will be user-configurable in a future update
- fixed import for some unusual apngs
- corrected some more GMT/local time stuff with the new system:time imported 'date' mode
- misc GMT/local time fixes (profile logs names themselves correctly, etc..)
- improved how the thread watcher reports thread-check errors in unusual situations
- fixed an issue generating network contexts when the initial domain is 'localhost'
- improved some misc program stability
- started a new job scheduler object to reduce idle thread count and CPU usage–will play around with it a bit more and see about integrating it in the coming weeks
next week
I've got some IRL stuff to deal with this week. It isn't super drastic, but it will monopolise my time. It might only delay me a bit on Saturday morning–making me a bit late to the discord–or it might blat my whole week and put off v294. In the time I do end up having, I would like to have an easy week of fixing some small things and writing some more imageboard parsers and help documentation for the new parsing system.