fe.settings:getUserBoardSettings - non array given[hydrus] - Endchan Magrathea
- misc:
- 'sort files by import time' now sorts files correctly even when two files were imported in the same second. thanks to the user who thought of the solution here!
- the 'recent' system predicates you see listed in the 'flesh out system pred' dialogs now have a 'X' button that lets you remove them from the recent/favourites
- fixed the crash that I disabled some code for last week and reactivated the code. the collect-by dropdown is back to refreshing itself whenever you change the settings in _options->sort/collect_. furthermore, this guy now spams less behind the scenes, only reinitialising if there are actual changes to the sort/collect settings
- brushed up some network content-range checking logic. this data is tracked better, and now any time a given 206 range response has insufficient data for what its header said, this is noted in the log. it doesn't raise an error, and the network job will still try to resume from the truncated point, but let's see how widespread this is. if a server delivers _more_ data than specified, this now does raise an error
- fixed a tiny bit of logic in how the server calculates changes in sibling and parent petition counts. I am not sure if I fixed the miscount the janitors have seen
- if a janitor asks for a petition and the current petition count for that type is miscounted, leading to a 404, the server now quickly recalculates that number for the next request
- updated the system predicate parser to replace all underscores with whitespace, so it can accept system predicates that use_underscores_instead_of_whilespace. I don't _think_ this messes up any of the parsing except in an odd case where a file service might have an underscore'd name, but we'll cross that bridge if and when we get to it
- added information about 'PRAGMA quick_check;' to 'help my db is broke.txt'
- patched a unit test that would rarely fail because of random data (issue #1217)
- .
- client api:
- /get_files/search_files:
- fixed the recent bug where an empty tag input with 'search all' permission would raise an error. entering no search predicates now returns an empty list in all cases, no matter your permissions (issue #1250)
- entering invalid tags now raises a 400 error
- improved the tag permissions check. only non-wildcard tags are now tested against the filter
- updated my unit tests to catch these cases
- /add_tags/search_tags:
- a unit test now explicitly tests that empty autocomplete input results in no tags
- the Client API now responds with Access-Control-Max-Age=86400 on OPTIONS checks, which should reduce some CORS pre-flight spam
- client api version is now 34
- .
- misc cleanup:
- cleaned up the signalling code in the 'recent system predicate' buttons
- shuffled some page widget and layout code to make the embedded a/c dropdown work
- deleted a bunch of a/c event handling and forced layout and other garbage code
- worked on some linter warnings

next week

I think I have caught up on the biggest Qt6 crashes and other emergencies. I regret the bumps that happened over the past couple of months, but we got there in the end. Next week will probably be the last with a Qt5 release, so there will be some updates to the help for that.

I am due a 'medium size' job week, so I also want to get my teeth into something. I recently overhauled how tags in .txt files were imported/exported, and I would like to do more work there. It would be nice to have URLs and/or more than .txt file formats.