windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v402/Hydrus.Network.402.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v402/Hydrus.Network.402.-.Windows.-.Installer.exe
macOS
app: https://github.com/hydrusnetwork/hydrus/releases/download/v402/Hydrus.Network.402.-.macOS.-.App.dmg
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v402/Hydrus.Network.402.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v402.tar.gz
I had a great week just doing cleanup and other small work.
all misc this week
Most of the pages in the client now have special status bar text for when they have no files. If your search results in no files, instead of the old '0 files', you'll get 'no results for this search', and 'search cancelled!' if the search was cancelled, and so on. It just adds a bit of quick feedback to some actionslike highlighting a gallery query with no new fileswhere the new blank page may just be replacing another blank page.
I added 'copy_xxx_hash' shortcuts to the media shortcut set, for 'md5', 'sha1', and 'sha512'. All the hash-copying code is neated up as well, so if hashes can't be found for some reason, you'll still get what could be found and get nice info on how many were missing and why.
The client's shutdown code is untangled. A variety of unusual shutdown situations should be smoother, less buggy, maybe a little faster, and when errors do occur, they should be caught and reported more gracefully.
Gallery and watcher pages' list right-click menus now have direct links to the selected query or watcher's file and gallery logs. It is just an easier shortcut than highlighting and finding the button.
Forced file maintenance jobs now list a correct total x/y progress on their popups. Previously, they would show x/256 in the batches of 256, with no total summary.
Most of the lists with clipboard/png import/export buttons now also support json files, which is just a straight copy of what would go to your clipboard, but to a file. You can drag and drop compatible json files on the lists as well, just like with pngs.
I have updated the Windows and Linux client to Qt 5.15, up from 5.13. We had a variety of problems with 5.14, but this version seems to be working well. Let me know if you have any trouble, or if any problems are magically fixed.
full list
- in many situationssuch as a search result that gives no results, or a search cancel, or a downloader page cleared of a highlightpages will now report a special status text rather than '0 files', such as 'no results for this search' or 'search cancelled!' (issue #277)
- new pages, and the first page of a loaded session, should now correctly publish their status text to the status bar immediately after initialisation, (previously blank until first change)
- clicking the 'searching immediately' button while a search is ongoing now correctly cancels a search, cleaning up status and page and buttons, rather than just stopping current work immediately
- added 'copy_xxx_hash' shortcuts to the media shortcut set for 'md5', 'sha1', and 'sha512'
- when copying file hashes to clipboard, a popup appears for two seconds to verify what happened
- when copying file hashes to clipboard, recovery from missing hashes is more graceful, with multiple error report states
- the way the client shuts down is untangled. the order in which the gui, managers, threads, database are shut down is smoothed out, with better error handling and fewer potential logical holes
- the 'should I do shutdown work?' dialog is now only presented in the clean shutdown pipeline
- menu labels now elide at 128 characters, extended from 64 previously. hopefully this strikes a better balance between fixed texts we do want to read while still not letting long dynamic texts go nuts (issue #276)
- gallery and watcher pages now have 'show file/gallery log' on their menus, which directly zoom in to the edit dialogs for the top-most selected query or watcher (issue #256)
- when file maintenance is forced to run from the thumbnail menu or file maintenance job panel, it now provides x/y progress text and gauge based on total jobs, e.g. 1,234/10,000, rather than out of the 256-job batches (issue #264)
- the simple downloader page now updates its pending jobs list more efficiently, and supports multiple selection, and presents a yes/no confirmation on delete
- most lists with clipboard/png import/export buttons can now also do .json files. they also accept json files in a drag and drop. you can mix json and png files in a multi-file drag and drop
- when selecting a parser for a url class in 'manage url class links', those parsers with example urls that match the url class are now separately listed at the top of the choice dialog
- in the recent autocomplete rewrite, the hidden repository update file domain was accidentally exposed in the file domain button. after some testing, it actually works(!), but as this is an advanced topic, it is now hidden behind advanced mode
- the way services are deleted or completely reset is now changed to what should be a significantly faster and smaller operation
- the latest user-made nitter/twitter downloader is rolled in to the update. some little fixes and adds support for mobile.twitter.com url imports
- fixed an issue where uninitialised repositories thought they were caught up
- to reflect that it does nothing in this case, the mouse shortcut edit panel now disables the press/release choice on double-click or scroll
- fixed file save dialogs not filling in the default filename properly
- removed an old wx safety hack where new pages would silently not create while the client was minimised. this fixes issues with large session loading and subscriptions publishing files to page names that do not yet exist while the client is minimised
- removed an old wx safety hack where some tag lists would not regen their current tag display while the client was minimised
- in lieu of a future better bit of html subscription help that I link to from the subscription panel, the 'file limits' help button has temporarily briefer text so it doesn't make such a giant popup
- moving back to pyinstaller 3.5 (from 3.6) for the windows build, which appears to fix some dll loading for some users (issue #244)
- the windows and linux builds are updated to Qt 5.15 (from 5.13.2). it does not seem to have the odd problems 5.14 gave us. let me know if you have any trouble or if any weird graphical issues magically fix themselves
- .
- client api:
- the /get_files/file_metadata call has a new true/false parameter, 'detailed_url_information', default false, that adds 'detailed_known_urls' structure to list the known urls results as in /add_urls/get_url_info. it has a help example and a unit test and everything (issue #235)
- the client api version is now 13
- .
- boring cleanup details:
- reshuffled the shutdown code. now the controller takes the lead, booting splash as appropriate and commanding gui to save and close, and then proceeds to other shutdown
- fast and normal shutdown code is unified, just run differently
- shutdown calls should now always be idempotent
- a catch for some OS-level shutdown commands, normally user log-off, also hooks into the newer UI-free fast shutdown
- SIGINT and SIGTERM also hook better into the new shutdown, and are thread safe
- performing multiple SIGINTS on shutdown should no longer throw an error after the gui is deleted
- more potential startup/shutdown errors are now caught and presented to the user and saved to log, with subsequent shutdown urgency accelerated afterwards
- critical errors on a fast shutdown no longer present to the user–they just save to log
- updated how an emergency shutdown state is tested
- updated how a 'clean exit complete' state is set and tested
- various unusual shutdown states now skip human interaction and jump straight to guaranteed fast shutdown
- refactored splash window to its own file
- wrote a new qlistwidget subclass to do some common data storage/retrieval/selection. it will eventually replace most lists across the program
- the 'queue' list widget that has up/delete/down and add/edit buttons beside a list has nicer backend code and now initialises with its buttons correctly disabled due to no selection
- the similar 'add/edit/delete' list widget is updated to use the nicer backend
- some wx->Qt list hacks, which were themselves using borked old display-string-based indexing, are deleted
- the repository download/process daemon has been moved to the newer job scheduler. it should start up and close out on program exit a bit more neatly
- untangled some messy value-change radio button code in the shortcut edit panel
- updated the way page status text propagates up from the thumbnail grid to the main gui to Qt signals instead of the old inefficient pubsub
- all UI file hash clipboard copying code is now unified and improved
- added a new subscription file publish debug test to help->debug->gui
- refactored some client specific time delta rendering code out of core to client
- misc event cleanup code
- misc code style cleanup
next week
Next week is a small jobs week. I'll push like this week, just clearing out small items. I'd like to neaten shortcuts as well, dropping_the_long_command_names for a proper shortcut action object that'll be easier to work with in future and have a nice name. I didn't get to string parsing improvements this week, so I'll see if I can work on that as well.
The new Github Issues workflow we set up last week worked well, I think. The users managing it helped me focus on some nice issues, including a couple that had previously fallen to the back burner, and I was comfortable with the balance of my time on it. As a reminder, if you are comfortable with Github Issues, you can find it here: https://github.com/hydrusnetwork/hydrus/issues