windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v397/Hydrus.Network.397.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v397/Hydrus.Network.397.-.Windows.-.Installer.exe
macOS
app: https://github.com/hydrusnetwork/hydrus/releases/download/v397/Hydrus.Network.397.-.macOS.-.App.dmg
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v397/Hydrus.Network.397.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v397.tar.gz
I had an ok week. I mostly did small fixes and improvements.
highlights
I added 'system:has/has no note with name xxx' to search for files with specific note names. This is bundled into the same dialog as last week's 'number of notes', for the new generic 'system:notes' entry in the normal system predicates list.
When you have many page tabs in a row, they will now middle…elide their name text to try to fit better. You can turn this off if you like under options->gui pages.
When files in the duplicate filter are pixel duplicates, the file size and import time comparison statements now have no 'score' and colour blue. Pixel duplicates are often a different judgment call, so until I can get more flexible scoring options here, I am hardcoding it to be less visually green/red.
If you need to run a gallery download with a search term that includes '#', this should now work.
I updated the IPFS code to work with the new IPFS 5.0 daemon. I think I have things mostly correct, but the new daemon has some new CORS restrictions that may need configuration on the IPFS side, depending on your situation, to give hydrus permission to talk to it.
The left page panel's position should set itself more reliably for users who start the program minimised to system tray. If you have had trouble here, please let me know how you get on. I believe the changes here will also reduce some UI lag for many other page adding and moving operations, particularly for large sessions.
full list
- regular changelog:
- added 'system:has/has no note with name xxx' to search for specific note names
- in the normal system predicate list, the notes pred is now the generic 'system:notes' to launch a combined dialog for both num notes and named notes
- favourite tag suggestions are now sorted in manage tags dialog according to the default tag sort
- page names will now middle…elide when there are too many to fit into a row (and normally left/right buttons would be added). if the elided tabs still do not fit, the buttons will pop up as before. added a checkbox to options->gui pages to turn this text eliding off
- pulled the 'page name' options on that panel into their own box and added some text regarding the 'my big row of import page tabs keeps scrolling weird' issue
- when files are pixel duplicates, the filesize and age comparison statements will now have 0 score and thus be coloured neutral blue
- the standard text entry dialog now always selects any default text it starts with, so you can now type to immediately overwrite. see how you like it and if there are some places where you think an exception should be made
- updated the IPFS interface to work with the new IPFS 5.0. all api requests are now POST so it doesn't 405, and the User-Agent is overridden to one that IPFS will not 403 at, and I fixed a typo the new api is more strict about
- a hack to get page splitters to lay out correctly on session load is rewritten from a hammer to a scalpel. pages now set their splitter positions on their first individual visible selection. this both reduces some minor ui lag on session/page load and improves splitter positions for clients that open minimised to the system tray
- a long-time odd issue where loaded sessions would initially select the top-left-most non-page of pages is fixed. now the bottom-left-most page of any kind is selected
- fixed tag autocomplete selecting the bottom-most pre-loading result. it now correctly selects at the top
- fixed an issue setting certain values (typically loading a default) to a tag import options panel
- the client is now more aggressive about clearing subscriptions from memory when they are finished running
- in windows, the main method that copies files now checks for modified time of the source file. if it is before 1980-01-01 UTC, it does not copy the file metadata, as some Windows has trouble with this lmaoooo
- cleaned up how some thumbnail 'current focus' media determination code works. should have fixed some weird errors when hitting certain shortcuts on collections
- cleaned up basic list/sort code across the program
- the 'queue' and add/edit/delete listboxes now emit change signals when new items are added or imported
- pyparsing, a helper for cloudscraper, is now correctly bundled in the built releases. a new line in help->about displays this
- help->about now lists cloudscraper version
- updated the discord link to the new https://discord.gg/wPHPCUZ
- .
- upcoming string processing changes for advanced users:
- I extended string parsing code this week, but I am not yet ready to turn it on. when it does come on, it will change all formulae from the fixed string match/converter pair a combined general string processing 'script' of n steps
- wrote a new 'string splitter' object that takes one strings and splits it into up to n strings based on a separator phrase (such as ' ,')
- wrote an edit panel for string splitters
- wrote a new 'string processor' object that holds n ordered string match/converter/splitter objects and filters/converts/splits x strings into y strings based on those steps
- wrote an edit panel for string processors. it has a notebook that live updates with test results for each step on every update
- wrote unit tests for string match
- wrote unit tests for string converter
- wrote unit tests for string splitter
- wrote unit tests for string processor
- refactored string conversion edit panels to their own file
- refactored string conversion controls to their own file
- misc string processing cleanup and labelling improvements
- .
- technical url parsing stuff:
- urls are now stripped of leading and trailing whitespace during normalisation, just in case a paste contains some extra whitespace. previously, it would sometimes throw a 'doesn't start with http' error
- the hydrus url normalisation process now normalises the hostname according to the NKFC unicode format, meaning unusual characters like ?and e◌ are now replaced with their normalised visual equivalent ? and é, and hence these urls will no longer throw errors when they are added
- if '?' or '#' end up in a hostname (which are invalid characters), it is now converted to _, just to stop complete parse mangling when weird urls are submitted. this character replacement may become more sophisticated in future
- the hydrus downloader should now support search terms that include '#'
- download query parameters that contain '%23' ('#', encoded) are now not unquoted in url normalisation
next week
Next week is a cleanup week. I will push on more wx->Qt code cleanup. I would also like to try to turn on some of the background text/notes work I have been doing for the past couple of weeks.
I will be taking my week vacation in two weeks, in the 399->400 gap from the 27th to the 3rd.