windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v396/Hydrus.Network.396.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v396/Hydrus.Network.396.-.Windows.-.Installer.exe
macOS
app: https://github.com/hydrusnetwork/hydrus/releases/download/v396/Hydrus.Network.396.-.macOS.-.App.dmg
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v396/Hydrus.Network.396.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v396.tar.gz
I had a good week. The client now has better file 'notes' support.
There are several database updates this week. Users with large databases can expect the first boot to take a few minutes.
notes
A long time ago, I added prototype 'notes' to files. You can access it under a media right-click->manage->notes. It was a bit hacky, functioning just like a plain .txt attached to files, but some users really picked it up. This week it becomes more mature.
Firstly, files can now have multiple notes, each with their own name. Existing notes will get the simple default name of 'notes'. Also, files that have notes now show a notes icon on their thumbnails and in the media viewer top-right hover window. Clicking the hover window icon quickly opens the edit notes dialog.
And to find files with notes, there is now 'system:number of notes'. Its panel has a couple of quick buttons for finding files with any notes or no notes. Notes are stored in a faster and more space-efficient way, so this should work fairly quickly for most situations.
The next step here is to add note parsing to the downloader system. The main thought is to get artist post text and similar imported with nice 'blah gallery artist comment' style names as you download files. I had hoped to figure something out for this this week, but I didn't have time to do it properly, so I focused on polishing the above. I would like to fold parsing in in upcoming normal weekly work.
The new storage system for notes also builds a fast search cache for their text. It will not be extremely difficult to add some sort of 'system:note has text xxxxx' in future as well, if you want to search for parsed mega links or whatever else. Beyond that, I'd love some note 'preview' on the media viewer and comprehensive import/export/Client API support for notes.
unusual tag searches
I am really happy with the new tag autocomplete system. It is so much nicer to work on now it is all unified. This week I fixed a bunch of unusual searches.
A good example is '/f/', which according to hydrus 'special character' rules also matches 'f'. Short text queries like 'f' and '/f/' that do not do full lookups will now match all special character results, including if they have a namespace, so all combinations of 'board:/f/' and '/f/' and 'board:f' and so on will now match 'board:/f/'.
Also, wildcards are now unified. 'Complex' wildcards that have inserted *, like 's*s ara*', are now treated logically the same way as 'simple' ones that only have an * on the end like 'sam*', and should more reliably return all the correct results. They ~also~ support the special character rules as above, so 'int*fies' should match '[intensifies]'.
And wildcard file search predicates, where you might search for 'character:samus* (wildcard search)' to return all files that have any tag that matches that wildcard, now support the special character rules in all cases. When you include special characters in the wildcard text, such as 'e*mple-tag*', that '-' character is now preserved (previously, it was being replaced with space, which is behind-the-scenes hydrus technical trickery).
A new tag search cache supports and speeds up these logical improvements. Users with large databases can expect the first boot into 396 to take a few minutes.
the rest
I fixed the sort in the tag suggestion boxes!
You can now click the 'inbox' icon in a media viewer top-right hover window to archive a file.
The file->shortcuts dialog now has descriptive, sorted names for the reserved shortcut sets.
'system:dimensions' now has some quick-click buttions for common ratios and resolutions.
'system:known url' is better about fetching both www and non-www versions of URLs.
full list
- notes:
- the file notes system is more mature. files now store multiple named notes
- the edit notes ui is now a tabbed window with add/edit_name/delete buttons
- media results now load with their notes, so note access is instant
- thumbnails now show a notes icon when they have notes
- the media viewer top-right area shows a notes icon when the current file has notes
- clicking the media viewer top-right notes icon opens edit notes
- the edit notes menu entry now lists the number of current notes if there are notes
- added a 'system:number of notes' predicate. it has easy 'has/no notes' buttons for quick filtering
- the file notes database table will be updated on update, it shouldn't take long. existing notes will get the default 'notes' name
- duplicate notes now share the same storage space in the database
- in prep for a future search expansion, notes are now cached in the database for fast text search
- in prep for note parsing, wrote a 'note import options' object. it doesn't do anything in the program yet, but it supports multiple note conflict resolutions, note extension detection, and global and specific note renaming
- wrote unit tests for the new note import options
- .
- some tag search stuff:
- hydrus now maintains an internal mapping of direct 'searchable' versions of tags to the tags themselves, which allows it to now do fast exact-match (short search) and complicated wildcard lookups of tags with unusual characters. 'f' and '/f/' will now return '/f/' and 'board:/f/' quickly, 'board:f' and 'board:/f/' will return 'board:/f/' quickly, and 'te*a*' will correctly return 'test-tag'
- it will take a few minutes to regenerate this new cache on update
- complex wildcards like 's*m*' are now treated the same as simple ones like 'sam*' and should match unusual subtag characters in all cases
- wildcard tag file search predicates are now plugged into the new cache, so the search preds '/f/*', 'board:/f/', 'board:/f/ast;', 'b*d:/f/' and 'b*d:/f/*' now all match files with 'board:/f/', as do wildcards that include replacement characters, so the same should be true above for 'f' instead of /f/' in all cases
- new wildcard search preds do not collapse their characters for their presentation string, so 'date:2*-01-01' now renders like that, not 'date:2* 01 01'
- wildcard file search predicates are now faster for simple (just an asterisk on the end) subtag wildcards
- the fts search cache is moved from 'master' to 'caches' db this week, it will take a few moments on update
- the 'repopulate tag search cache' db regen job now repopulates the fts cache, the new 'searchable' cache, and the integer tag cache
- the database repair code now checks for the fts cache and new 'searchable' cache on boot and, if they are missing, warns the user and creates empty tables
- .
- improvements:
- fixed the unsorted tags in tag suggestion boxes
- clicking the inbox icon in the top-right hover window now archives the file
- system:dimensions now has quick buttons for 16:9, 9:16, 4:3, 1:1, 1080p, 720p, and 4k
- system:known url searches are now better about fetching www and non-www urls for the domain or url class
- the edit shortcut sets panel now has nicer english names for reserved shortcut sets, and also sorts them in a more logical way
- you no longer have to be in advanced mode to copy file hashes from thumbnails
- users in advanced mode can copy the internal file_id of files from the thumbnail/viewer copy menus (this is most useful for the client api)
- system num_frames, num_words, and num_notes now display alternate 'has/no xxx' labels when they search for =0 or >0
- you can now search for 0 with system:num_frames
- .
- fixes:
- users who could restore from system tray using the menu but had trouble with clicking _should_ now have better luck with clicking
- fixed some instances where fps could be calculated as 0, which would lead to other problems down the line. now a missing or 0 fps is remapped to 1
- fixed system:framerate for '<' queries
- the status bar cells now get expanded tooltips to describe what they do
- fixed some media result caching code that could in rare cases cause an error in content update processing when the result disappeared from the cache during processing
- the 'hard-replace siblings and parents' button on 'manage tags' now makes a submenu so its actions' long labels show better
- fixed a handful of tables that were not starting sorted
- a variety of credential parse and other server failures that were formerly returning 403 now properly return 400 and 409
- in order to improve default 'open externally' behaviour on Linux/macOS, if the environment variable XDG_DATA_DIRS is not preserved through a hydrus build launch env, hydrus now sets a simple 'default' value for this before running xdg-open
- if the client is booted from a windows shortcut to a built release, the program restart command is slightly more reliable
- .
- misc:
- cleaned up some db update error reporting code, it should now more reliably make an english-friendly popup text box before splurging technical info
- refactored some media object code, cleaned some class definitions, and added typing hints
- misc code cleanup
- the 'getting started' help files now have anchor definitions, so their sections can now be #linked to
- added several links in the 'getting started' help to the user-created video guides here: https://github.com/CuddleBear92/Hydrus-guides thank you for making these!
- added a link to the help for the user-made 'other archiving software' guide here: https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts/wiki/0-Alternative-Programs-and-Resources#software thank you for making this!
- fixed link to AUR package in the help
- updated cloudscraper in all builds to 1.2.36
- updated windows mpv to a significantly newer dll, it now reports api version 1.108
- included libgpg-error.so.0 in Linux build, which will improve some Linux situations (more reports from Ubuntu 20.04 or others about missing/conflicting .so files are welcome)
next week
Next week is a small jobs week. I want to catch up on bugs, see if I can move notes parsing forward, and also (as part of that) improve our text match/transform tools so complicated texts and filenames are a bit easier to parse. The new IPFS daemon is also broken for hydrus, so I will also be looking at that.