- 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)