Deployed 4ae4e66a with MkDocs version: 1.5.3

This commit is contained in:
2024-03-20 22:29:35 +00:00
parent 7e17c97c21
commit bb7fd5f25f
5 changed files with 175 additions and 228 deletions

View File

@ -2230,7 +2230,7 @@
<p>Once you are connected, Hydrus will proceed to download and then process the update files. The progress of this can be seen under <code>services -&gt; review services -&gt; remote -&gt; tag repositories -&gt; public tag repository</code>. Here you can view its status, your account (the default account is a shared public account. Currently only janitors and the administrator have personal accounts), tag status, and how synced you are. Being behind on the sync by a certain amount makes you unable to push tags and petitions until you are caught up again.</p>
<div class="admonition note">
<p class="admonition-title">QuickSync 2</p>
<p>If you are starting out with a completely fresh client, you can instead download a fully pre-synced client <a href="https://breadthread.duckdns.org/">here</a> Though a little out of date, it will nonetheless save time. Some settings may differ from the defaults of an official installation.</p>
<p>If you are starting out with a completely fresh client, you can instead download a fully pre-synced client <a href="https://breadthread.gay/">here</a> Though a little out of date, it will nonetheless save time. Some settings may differ from the defaults of an official installation.</p>
</div>
<h2 id="how_does_it_work">How does it work?<a class="headerlink" href="#how_does_it_work" title="Permanent link">&para;</a></h2>
<p>For something to end up on the PTR it has to be pushed there. Tags can either be entered into the tag service manually by the user through the <code>manage tags</code> window, or be routed there by a parser when downloading files. See <a href="getting_started_downloading.html">parsing tags</a>. Once tags have been entered into the PTR tag service they are pending until pushed. This is indicated by the <code>pending ()</code> that will appear between <code>tags</code> and <code>help</code> in the menu bar. Here you can chose to either push your changes to the PTR or discard them.</p>

View File

@ -1988,66 +1988,6 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#version_567" class="md-nav__link">
<span class="md-ellipsis">
Version 567
</span>
</a>
<nav class="md-nav" aria-label="Version 567">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#user_contributions" class="md-nav__link">
<span class="md-ellipsis">
user contributions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#misc" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#url_storagedisplay_changes" class="md-nav__link">
<span class="md-ellipsis">
URL storage/display changes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#ephemeral_url_parameters" class="md-nav__link">
<span class="md-ellipsis">
ephemeral URL parameters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#boring_cleanup" class="md-nav__link">
<span class="md-ellipsis">
boring cleanup
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_566" class="md-nav__link">
<span class="md-ellipsis">
@ -2068,7 +2008,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_1" class="md-nav__link">
<a href="#misc" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2137,7 +2077,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_2" class="md-nav__link">
<a href="#misc_1" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2188,7 +2128,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_3" class="md-nav__link">
<a href="#misc_2" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2257,7 +2197,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_4" class="md-nav__link">
<a href="#misc_3" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2299,7 +2239,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_5" class="md-nav__link">
<a href="#misc_4" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2359,7 +2299,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_6" class="md-nav__link">
<a href="#misc_5" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2386,7 +2326,7 @@
</li>
<li class="md-nav__item">
<a href="#boring_cleanup_1" class="md-nav__link">
<a href="#boring_cleanup" class="md-nav__link">
<span class="md-ellipsis">
boring cleanup
</span>
@ -2419,7 +2359,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_7" class="md-nav__link">
<a href="#misc_6" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2428,7 +2368,7 @@
</li>
<li class="md-nav__item">
<a href="#boring_cleanup_2" class="md-nav__link">
<a href="#boring_cleanup_1" class="md-nav__link">
<span class="md-ellipsis">
boring cleanup
</span>
@ -2515,7 +2455,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_8" class="md-nav__link">
<a href="#misc_7" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2539,7 +2479,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#user_contributions_1" class="md-nav__link">
<a href="#user_contributions" class="md-nav__link">
<span class="md-ellipsis">
user contributions
</span>
@ -2548,7 +2488,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_9" class="md-nav__link">
<a href="#misc_8" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2586,6 +2526,57 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_557" class="md-nav__link">
<span class="md-ellipsis">
Version 557
</span>
</a>
<nav class="md-nav" aria-label="Version 557">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_9" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#better_hash_predicate_parsing" class="md-nav__link">
<span class="md-ellipsis">
better hash predicate parsing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#documentation_and_cleanup" class="md-nav__link">
<span class="md-ellipsis">
documentation and cleanup
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#client_api_4" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@ -2651,66 +2642,6 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#version_567" class="md-nav__link">
<span class="md-ellipsis">
Version 567
</span>
</a>
<nav class="md-nav" aria-label="Version 567">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#user_contributions" class="md-nav__link">
<span class="md-ellipsis">
user contributions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#misc" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#url_storagedisplay_changes" class="md-nav__link">
<span class="md-ellipsis">
URL storage/display changes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#ephemeral_url_parameters" class="md-nav__link">
<span class="md-ellipsis">
ephemeral URL parameters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#boring_cleanup" class="md-nav__link">
<span class="md-ellipsis">
boring cleanup
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_566" class="md-nav__link">
<span class="md-ellipsis">
@ -2731,7 +2662,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_1" class="md-nav__link">
<a href="#misc" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2800,7 +2731,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_2" class="md-nav__link">
<a href="#misc_1" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2851,7 +2782,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_3" class="md-nav__link">
<a href="#misc_2" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2920,7 +2851,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_4" class="md-nav__link">
<a href="#misc_3" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2962,7 +2893,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_5" class="md-nav__link">
<a href="#misc_4" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3022,7 +2953,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_6" class="md-nav__link">
<a href="#misc_5" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3049,7 +2980,7 @@
</li>
<li class="md-nav__item">
<a href="#boring_cleanup_1" class="md-nav__link">
<a href="#boring_cleanup" class="md-nav__link">
<span class="md-ellipsis">
boring cleanup
</span>
@ -3082,7 +3013,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_7" class="md-nav__link">
<a href="#misc_6" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3091,7 +3022,7 @@
</li>
<li class="md-nav__item">
<a href="#boring_cleanup_2" class="md-nav__link">
<a href="#boring_cleanup_1" class="md-nav__link">
<span class="md-ellipsis">
boring cleanup
</span>
@ -3178,7 +3109,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_8" class="md-nav__link">
<a href="#misc_7" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3202,7 +3133,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#user_contributions_1" class="md-nav__link">
<a href="#user_contributions" class="md-nav__link">
<span class="md-ellipsis">
user contributions
</span>
@ -3211,7 +3142,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_9" class="md-nav__link">
<a href="#misc_8" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3249,6 +3180,57 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_557" class="md-nav__link">
<span class="md-ellipsis">
Version 557
</span>
</a>
<nav class="md-nav" aria-label="Version 557">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_9" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#better_hash_predicate_parsing" class="md-nav__link">
<span class="md-ellipsis">
better hash predicate parsing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#documentation_and_cleanup" class="md-nav__link">
<span class="md-ellipsis">
documentation and cleanup
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#client_api_4" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@ -3279,44 +3261,6 @@
<p class="admonition-title">Note</p>
<p>This is the new changelog, only the most recent builds. For all versions, see the <a href="old_changelog.html">old changelog</a>.</p>
</div>
<h2 id="version_567"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v567">Version 567</a><a class="headerlink" href="#version_567" title="Permanent link">&para;</a></h2>
<h3 id="user_contributions">user contributions<a class="headerlink" href="#user_contributions" title="Permanent link">&para;</a></h3>
<ul>
<li>thanks to a user, the new docx, pptx, and xlsx support is improved, with better thumbnails (better ratio, better icon itself, and sometimes an actual preview thumbnail for pptx), better file detection (fewer false positives with stuff like ppt templates), and word count for docx and pptx. I am queueing everyone's existing docx and pptx files for a metadata rescan and thumbnail regen on update</li>
<li>thanks to a user, the cbz scanner now ignores the <code>__MACOSX</code> folder</li>
<li>thanks to a user, setting the Qt style in <em>options-&gt;style</em> should be more reliable (fixing some name case sensitivity issues)</li>
<li>thanks to a user, there's a new 'default' dark mode QSS stylesheet that has nicer valid/invalid colours. we'll build on this and try to detect dark mode better in future and auto-switch to this as the base when the application is in dark mode.</li>
</ul>
<h3 id="misc">misc<a class="headerlink" href="#misc" title="Permanent link">&para;</a></h3>
<ul>
<li>added a 'tag in reverse' checkbox to the new incremental tagger panel. this simply applies the given iterator to the last file first and then works backwards, e.g. 5, 4, 3, 2, 1 for start=1, step=1 on five files</li>
<li>all <em>new</em> system:url predicates will have slightly different (standardised) labels, and all these labels should parse correctly in the system predicate parser if you copy/paste</li>
<li>you should now be able to enter 'system:has url matching regex (regex with upper case)' and 'system:has url (url with upper case)' and it'll propage through parsing. this definitely has not™ broken any other predicate parsing. you can enter url class names with upper case if you want, but url class names should now match regardless of letter case</li>
<li>you can now open the 'extra info' button (up top of a media viewer) on a jpeg if that jpeg has no exif or other human-readable metadata (to see just the progressive and subsampling info)</li>
<li>added a new EXPERIMENTAL checkbox to <em>options-&gt;tag presentation</em> that will replace emojis and other unicode symbol garbage with □. if you have crazy rendering for emoji stuff, try it out</li>
<li>the tag summary generators that make thumbnail banners now wash their tags through the 'render tag for user' system, which will apply this new emoji rule and 'replace underscores with spaces'</li>
<li>updated the QuickSync link to its new home at https://breadthread.duckdns.org/</li>
</ul>
<h3 id="url_storagedisplay_changes">URL storage/display changes<a class="headerlink" href="#url_storagedisplay_changes" title="Permanent link">&para;</a></h3>
<ul>
<li>today I correct a foolish decision I made when I first implemented the hydrus downloader engine--handling and storing URLs internally as 'pretty' decoded text, rather than with the proper ugly '%20" stuff you sometimes see. this improves support for weird URLs and makes some behind the scenes things simpler. you do not need to make any changes, but there is a chance some particularly funky URLs will redownload once more if your subscription runs into them again (this change breaks some 'known url' checking logic, since what is stored is now slightly different, but this 99% doesn't affect Post URLs, so no big worries)</li>
<li>so, URLs are no longer decoded in the normalisation step. they are now saved in the file log as their proper actual 'what is sent to the server' encoded text. it will display in UI as the pretty version, but if you copy to clipboard, you get the data version--pretty much how your web browser address bar works. I have made it show 'pretty' in the file log and search log lists, 'copy url' menu labels, and hyperlink tooltips, but in the more technical 'manage GUGs' and so on, it shows the data version. let me know if I have forgotten to display them pretty anywhere!</li>
<li>when you paste a URL, some new normalisation tech tries to figure out if it is pre-encoded or not</li>
<li>there's also some GUG work. when you enter a query text like <code>male/female</code> or <code>blonde_hair%20blue_eyes</code>, some new logic tries to infer whether what you entered is encoded or not. it should handle pretty much everything well unless you have a single-tag query with a legit percent character in the middle (in which case you'll have to enter <code>%25</code> instead, but we'll see if it ever happens)</li>
<li>these changes simplify the url parsing routine, eliminating plenty of nonsense hackery I've inserted over the years to make things like <code>6+girls blonde_hair</code>/<code>6%2Bgirls+blonde_hair</code> work with a merged system. this has mostly been a delicate cleanup job; long planned, finally triggered</li>
</ul>
<h3 id="ephemeral_url_parameters">ephemeral URL parameters<a class="headerlink" href="#ephemeral_url_parameters" title="Permanent link">&para;</a></h3>
<ul>
<li>I was going to roll out 'ephemeral token' parameters, and I basically had it done, but I realised late that I was being stupid in a brand new way, basically expanding the whitelist when turning off the blacklist was a nicer solution. I will work on this more next week, I think ultimately making it so Post URLs are not clipped of undefined parameters before they are is sent to the server, just like for Gallery URLs. I will separately introduce 'I just need to add some random hex in this parameter to tell this cache I want the original' under different tech</li>
<li>so, I did some behind the scenes URL filtering tech, and file import objects handle full and stripped down versions of Post URLs, but it doesn't do much yet</li>
</ul>
<h3 id="boring_cleanup">boring cleanup<a class="headerlink" href="#boring_cleanup" title="Permanent link">&para;</a></h3>
<ul>
<li>I cleaned up some URL Class code</li>
<li>the URL Class has a new buddy 'Parameter' class to handle param testing</li>
<li>rewrote how the query string of a URL is deconstructed and scanned against your parameters. less chance of edge-case errors/merges and easier to expand in future</li>
<li>brushed up the URL Class unit tests to account for the above changes and added new tests for encoding, ephemeral, and default parameter values (which must have been missed a long time ago)</li>
</ul>
<h2 id="version_566"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v566">Version 566</a><a class="headerlink" href="#version_566" title="Permanent link">&para;</a></h2>
<h3 id="incremental_tagging">incremental tagging<a class="headerlink" href="#incremental_tagging" title="Permanent link">&para;</a></h3>
<ul>
@ -3326,7 +3270,7 @@
<li>the prefix and suffix are remembered between dialog opens</li>
<li>a status text gives you a live preview of what you will be adding and says whether any of the files already have exactly those tags or have different tags under the same namespace (which would be possible conflicts, suggesting you are not lined up correct)</li>
</ul>
<h3 id="misc_1">misc<a class="headerlink" href="#misc_1" title="Permanent link">&para;</a></h3>
<h3 id="misc">misc<a class="headerlink" href="#misc" title="Permanent link">&para;</a></h3>
<ul>
<li>added import support for .docx, .xlsx, and .pptx files (the Microsoft Open XML Formats). they get icons, not much else. they are secretly zips, so <strong>on update, you will be asked if you want to scan your existing zips for these formats</strong></li>
<li>when you move a window to another screen in a maximised state (e.g. on Windows you can do this with win+shift+arrow), the system that remembers window coordinates will now register and save this. the 'restore' window size is preserved from whatever it was on the previous screen while the 'restore' position will try to stay the same on the new monitor (e.g. if it was at (200, 400) on the old monitor, it will try to do the same on the new) as long as the window fits, otherwise it is moved to (20,20) on the new screen</li>
@ -3367,7 +3311,7 @@
<li>some tooltips and stuff are updated around here to better explain what the hell is going on</li>
<li>added a unit test to test the forced name</li>
</ul>
<h3 id="misc_2">misc<a class="headerlink" href="#misc_2" title="Permanent link">&para;</a></h3>
<h3 id="misc_1">misc<a class="headerlink" href="#misc_1" title="Permanent link">&para;</a></h3>
<ul>
<li>to help the recent shortcuts change that merged <code>numpad</code> variants of + and left arrow and so on into being seen as the <code>unmodified</code> variants, if you have a saved shortcut that <em>is</em> still the <code>numpad</code> variant, it will now match the <code>unmodified</code> input when the merge mode is on. just means you don't have to remap everything with this mode on--everything merged matches everything</li>
<li>added 'copy file known urls' to the 'media' shortcut set</li>
@ -3401,7 +3345,7 @@
<li>for now, the parsing system is not updated to specify the % or absolute ± values. it will remain the same as the old system, with ±15% as the default for a <code>~=</code> input</li>
<li>there's still a little borked logic in these combined types. if you search <code>&lt; 3 URLs</code>, that will return files with 0 URLs, and same for <code>num_notes</code>, but if you search <code>&lt; 200px width</code> or any of the others I changed this week, that won't return a PDF that has no width (although it will return a damaged file that reports 0 width specifically). I am going to think about this, since there isn't an easy one-size-fits-all-solution to marry what is technically correct with what is actually convenient. I'll probably add a checkbox that says whether to include 'Null' values or not and default that True/False depending on the situation; let me know what you think!</li>
</ul>
<h3 id="misc_3">misc<a class="headerlink" href="#misc_3" title="Permanent link">&para;</a></h3>
<h3 id="misc_2">misc<a class="headerlink" href="#misc_2" title="Permanent link">&para;</a></h3>
<ul>
<li>I have taken out Space as the default for archive/delete filter 'keep' and duplicate filter 'this is better, delete other'. Space is now exclusively, by default, media pause/play. <strong>I am going to set this to existing users too, deleting/overwriting what Space does for you, if you are still set to the defaults</strong></li>
<li>integer percentages are now rendered without the trailing <code>.0</code>. <code>15%</code>, not <code>15.0%</code></li>
@ -3469,7 +3413,7 @@
<li>removed the 'favourites' submenu from the taglist menu when no tags are selected</li>
<li>in any import context, the file log's arrow menu now supports deleting all the 'unknown' (outstanding, unstarted) items or setting them all to 'skipped'. the 'abort imports' button (with the stop icon) in HDD and urls import pages is removed</li>
</ul>
<h3 id="misc_4">misc<a class="headerlink" href="#misc_4" title="Permanent link">&para;</a></h3>
<h3 id="misc_3">misc<a class="headerlink" href="#misc_3" title="Permanent link">&para;</a></h3>
<ul>
<li>fixed yet another dumb problem with the datetime control's paste button--although the paste was now 'working' on the UI side, the control wasn't saving that result on dialog ok. the fixes both the datetime button and the modified/file service time multi-column list editing</li>
<li>a core asynchronous thread-checking timer in the program has been rewritten from a 20ms-resolution busy-wait to a &lt;1ms proper wait/notify system. a bunch of stuff that works in a thread is now much faster to recognise that blocking UI work is done, and it is more thread-polite about how it does it!</li>
@ -3488,7 +3432,7 @@
<li>also, Github is moving from Node 16 to Node 20 soon, and I have moved two of the four actions we rely on to their newer v20 versions. a third action should be ready to update next week, and another, a general download file function, I have replaced with curl (for macOS) and Powershell's magical Invoke-WebRequest adventure</li>
</ul>
<h2 id="version_562"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v562">Version 562</a><a class="headerlink" href="#version_562" title="Permanent link">&para;</a></h2>
<h3 id="misc_5">misc<a class="headerlink" href="#misc_5" title="Permanent link">&para;</a></h3>
<h3 id="misc_4">misc<a class="headerlink" href="#misc_4" title="Permanent link">&para;</a></h3>
<ul>
<li>page tab drag and drops will now not start unless the click has lasted more than 100ms</li>
<li>same for thumbnail drag and drop--it perviously did a 20 pixel deadzone, but time checks detect accidental/spastic clicks better and stops false negatives when you start dragging on certain edges</li>
@ -3527,7 +3471,7 @@
<li>on the thumbnail menu, there is a new 'move' submenu. you can move the current selection of files to the start or end of the media list, or to one before or after the earliest selected file, or to the file you right-clicked on to create the menu, or to the first file's position if the selection is not contiguous. if the selection is non-contiguous, it will be made so in the move</li>
<li>added these rearrange commands to the shortcuts system, as 'move thumbnails' under the 'thumbnails' set. I wasn't sure whether to add some default shortcuts, like ctrl+numpad 7/&frac34;/6 for home/end/left/right or something--let me know what you think</li>
</ul>
<h3 id="misc_6">misc<a class="headerlink" href="#misc_6" title="Permanent link">&para;</a></h3>
<h3 id="misc_5">misc<a class="headerlink" href="#misc_5" title="Permanent link">&para;</a></h3>
<ul>
<li>thanks to user help, fixed a stupid typo from last week that caused some bad errors (including crashes, in some cases) when doing non-simple duplicate filtering (issue #1514). this is the issue the v560a hotfix was made for</li>
<li>fixed another stupid content update typo that was causing 'already in db' results to not get metadata updates</li>
@ -3554,7 +3498,7 @@
<li>I tried to improve the parsing system's de-newlining. this thing is a long-time hack--I've never liked it and I want to replace it with proper multi-line support--but for now I've made sure the de-newliner strips each line of leading/trailing whitespace and discards empty lines. the mode that <em>doesn't</em> collapse newlines (note parsing, for the most part) now <em>does</em> strip leading/trailing newlines along with other whitespace, meaning you no longer have to try and strip extra <code>&lt;p&gt;</code> and <code>&lt;br&gt;</code> tags and stuff yourself when grabbing notes. also, the formula UI where it says 'Newlines are collapsed before...' now says when it won't be collapsing newlines due to it being a note parser</li>
<li>the String Match processing step now explicitly removes newlines before it runs, meaning it can still catch multi-line notes properly. you can now run a proper regex on a multi-line note</li>
</ul>
<h3 id="boring_cleanup_1">boring cleanup<a class="headerlink" href="#boring_cleanup_1" title="Permanent link">&para;</a></h3>
<h3 id="boring_cleanup">boring cleanup<a class="headerlink" href="#boring_cleanup" title="Permanent link">&para;</a></h3>
<ul>
<li>optimised some thumbnail handling code, stuff like fetching the current list of sorted selected media</li>
<li>large collections will be a little faster to select and otherwise do operations on</li>
@ -3571,7 +3515,7 @@
<li>when the edit times dialog is set to change more than 100 total times, it now verifies with the user that this is correct on dialog ok</li>
<li>when the edit times dialog sets a lot of modified dates to files (i.e. actually writing them to your file system), this now happens in a non-gui thread and now makes a cancellable progress popup after a few seconds</li>
</ul>
<h3 id="misc_7">misc<a class="headerlink" href="#misc_7" title="Permanent link">&para;</a></h3>
<h3 id="misc_6">misc<a class="headerlink" href="#misc_6" title="Permanent link">&para;</a></h3>
<ul>
<li>fixed the 'imported to' timestamp for files migrated to other local file domains, which were one of the ones incorrectly set, as expected, to 54 years ago. in the database update, I also fix all the wrongly saved ones from v559</li>
<li>mr bones and the file history chart are now under the 'database' menu</li>
@ -3583,7 +3527,7 @@
<li>fixed the <code>setup_venv.sh</code> and <code>setup_venv.command</code> files' custom qtpy and PySide6 (Qt stuff) version installer! there was a dumb typo, sorry for the trouble</li>
<li>thanks to a user, the derpibooru parser now grabs <code>fanfic</code>, <code>spoiler</code>, and <code>error</code> tags</li>
</ul>
<h3 id="boring_cleanup_2">boring cleanup<a class="headerlink" href="#boring_cleanup_2" title="Permanent link">&para;</a></h3>
<h3 id="boring_cleanup_1">boring cleanup<a class="headerlink" href="#boring_cleanup_1" title="Permanent link">&para;</a></h3>
<ul>
<li>neatened up how non-thumbnail-generatable files (e.g. rtf) present their default thumbs and refactored the code a little</li>
<li>when a file's thumbnail is unavailable but the filetype is known (e.g. you are looking at records of deleted files that have no blurhash), hydrus should now deliver that file's default thumb instead</li>
@ -3669,7 +3613,7 @@
<li>added unit tests for this</li>
<li>the client api version is now 59</li>
</ul>
<h3 id="misc_8">misc<a class="headerlink" href="#misc_8" title="Permanent link">&para;</a></h3>
<h3 id="misc_7">misc<a class="headerlink" href="#misc_7" title="Permanent link">&para;</a></h3>
<ul>
<li>the sankaku parsers, GUGs, and custom header/bandwidth rules are removed from the defaults, so new users will not see them. none of this stuff works well/at all any more, especially in recent weeks. for sites that are so difficult to download from, if there isn't a nice solution on the shared downloader repo, https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts, I recommend going with a more robust solution like gallery-dl or just finding the content elsewhere</li>
<li>when there are multiple 'system:known url' predicates in a search, I now ensure the faster types run first, reducing the search domain for the slower, later ones. if you have a 'regex' 'known url' predicate, try tossing in a matching 'domain' one--it should accelerate it hugely, every time</li>
@ -3680,13 +3624,13 @@
<li>updated the sqlite dll that gets bundled into the windows release to 3.44.2. the sqlite3.exe is updated too</li>
</ul>
<h2 id="version_558"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v558">Version 558</a><a class="headerlink" href="#version_558" title="Permanent link">&para;</a></h2>
<h3 id="user_contributions_1">user contributions<a class="headerlink" href="#user_contributions_1" title="Permanent link">&para;</a></h3>
<h3 id="user_contributions">user contributions<a class="headerlink" href="#user_contributions" title="Permanent link">&para;</a></h3>
<ul>
<li>thanks to a user, we now have rtf support! no word count yet, but it should be doable in future.</li>
<li>thanks to a user, ctrl+p and ctrl+n now move the tag listbox selection up and down, in case the arrow keys aren't what you want. it also works on the tag autocomplete results from the text input</li>
<li>added a link to 'Hydra Vista', https://github.com/konkrotte/hydravista, a macOS booru-like browser that talks to a hydrus client, to the main Client API help</li>
</ul>
<h3 id="misc_9">misc<a class="headerlink" href="#misc_9" title="Permanent link">&para;</a></h3>
<h3 id="misc_8">misc<a class="headerlink" href="#misc_8" title="Permanent link">&para;</a></h3>
<ul>
<li>if you right-click on a selection of multiple tags, you can now hide them or their namespaces en masse</li>
<li>if you right-click on a selection of multiple tags, you can now add or remove them from the favourites list en masse. if you select a mix of tags that are part-in, part-out of the list, you'll get both add and remove menu entries summarising what's going on. also, this command is now wrapped in a yes/no confirmation with full summary of what's being added/removed</li>
@ -3720,6 +3664,41 @@
<li>the 'tag suggestions' options page has a bit of brushed up UI and some new explanation labels</li>
<li>unified the various thumbnail generation error reporting for all the different filetypes. it should also print the file's hash, too, since most of these error contexts only have a temporary path to talk about at this stage, which isn't useful after the fact</li>
</ul>
<h2 id="version_557"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v557">Version 557</a><a class="headerlink" href="#version_557" title="Permanent link">&para;</a></h2>
<h3 id="misc_9">misc<a class="headerlink" href="#misc_9" title="Permanent link">&para;</a></h3>
<ul>
<li>optimised large tag filter edit UI. you can now paste 5,000 items into an empty tag filter blacklist in less than a second, and if you have a big tag filter, removing or adding one thing is now instant (previously, this stuff would lag 4 seconds or more, sometimes multiple minutes!!)</li>
<li>the ugoira 'num frames' counting method now discludes files ending in .js/.json, to catch future bundling of frame timings</li>
<li>the cbz scanning tech should now recognise cbzs with four or fewer pages</li>
<li>a legacy 'is this image all good?' check that happens on PIL-loading is now gone. this improves rendering for a variety of truncated files and clarifies some error messages (previously, this thing was just failing silently)</li>
<li>fixed the delete file pre-flight logic so users on the non-advanced delete dialog can now delete repository updates. previously, they saw the menu entry, but hitting it was a no-op</li>
</ul>
<h3 id="better_hash_predicate_parsing">better hash predicate parsing<a class="headerlink" href="#better_hash_predicate_parsing" title="Permanent link">&para;</a></h3>
<ul>
<li><code>system:hash</code> labels are a little different now. they'll say <code>system:hash (md5) is abcd...</code>, with the algorithm after the "hash". hash is omitted for sha256 (the hydrus default). this eases parsing</li>
<li><code>system:similar to data</code> labels are a little different. they'll say 'distance' instead of 'max hamming', and the number and type of hashes they hold, and if they hold only pixel hashes, the distance is not stated</li>
<li><code>system:hash</code> predicate parsing is now more flexible. you can put the hash type pretty much anywhere now.</li>
<li><code>system:similar to</code> and <code>system:similar to data</code> predicate parsing is now more flexible. more combinations are allowed, and you can not include distance and it'll be fine</li>
<li>these three hash predicates now copy to clipboard with all their hashes explicitly enumerated, making strings that are fully parsable! this is a big step forward in a completely sealed import-export predicate parsing loop; now I have the tech set up to export a different phrase to clipboard than what you see in the label, I just need the examples of where it goes wrong. if there is a system predicate that copies to clipboard in a way that won't parse back, let me know and I'll see if I can fix it.</li>
<li>added more unit tests for this parsing</li>
</ul>
<h3 id="documentation_and_cleanup">documentation and cleanup<a class="headerlink" href="#documentation_and_cleanup" title="Permanent link">&para;</a></h3>
<ul>
<li>wrote a guide on how to install 'Git for Windows' for the 'running from source' help. although most of the settings in its marathon 12-page install wizard can be left as default, the technical questions can be intimidating, so I've written them all out for a nice simple install. also brushed up some of the surrounding help here</li>
<li>added a warning to the regular 'installing and updating' help regarding the danger of test-running extract releases before updating (you can overwrite your database by accident)</li>
<li>thanks to a user, the filetypes help document is updated with Ugoira and CBZ info</li>
<li>all the 'HydrusFiletypeHandling' files are refactored to a new 'files' module. there's a bunch of them these days!</li>
<li>the hydrus.core.images module is moved beneath this 'files' module too</li>
<li>the file log list panel right-click menu now says 'open URLs'/'open files' locations' depending on whether you are looking at a URL import log or local HDD import log</li>
</ul>
<h3 id="client_api_4">client api<a class="headerlink" href="#client_api_4" title="Permanent link">&para;</a></h3>
<ul>
<li>the <code>file_metadata</code> call now returns <code>filetype_forced</code> and, if so, also <code>original_mime</code> to talk about the new forced filetype system</li>
<li>the client api help and unit tests are updated to test this is working ok</li>
<li>fixed a typo that was causing too much work in the updated file info manager call (and was often returning 'null' results for half-cached <code>file_metadata</code> requests with <code>only_return_basic_information=true</code>)</li>
<li>thanks to a user, the <code>/add_urls/get_url_info</code> Client API call now has a cache timeout of ten minutes, and the <code>/add_urls/get_url_files</code> call now has a timeout of 30 seconds if all the files are 'already in db'. this should automatically reduce some overhead for several programs that talk to the Client API a lot about URLs</li>
<li>the client api version is now 58</li>
</ul>

View File

@ -34,38 +34,6 @@
<div class="content">
<h1 id="changelog"><a href="#changelog">changelog</a></h1>
<ul>
<li>
<h2 id="version_567"><a href="#version_567">version 567</a></h2>
<ul>
<li><h3>user contributions</h3></li>
<li>thanks to a user, the new docx, pptx, and xlsx support is improved, with better thumbnails (better ratio, better icon itself, and sometimes an actual preview thumbnail for pptx), better file detection (fewer false positives with stuff like ppt templates), and word count for docx and pptx. I am queueing everyone's existing docx and pptx files for a metadata rescan and thumbnail regen on update</li>
<li>thanks to a user, the cbz scanner now ignores the `__MACOSX` folder</li>
<li>thanks to a user, setting the Qt style in *options->style* should be more reliable (fixing some name case sensitivity issues)</li>
<li>thanks to a user, there's a new 'default' dark mode QSS stylesheet that has nicer valid/invalid colours. we'll build on this and try to detect dark mode better in future and auto-switch to this as the base when the application is in dark mode.</li>
<li><h3>misc</h3></li>
<li>added a 'tag in reverse' checkbox to the new incremental tagger panel. this simply applies the given iterator to the last file first and then works backwards, e.g. 5, 4, 3, 2, 1 for start=1, step=1 on five files</li>
<li>all _new_ system:url predicates will have slightly different (standardised) labels, and all these labels should parse correctly in the system predicate parser if you copy/paste</li>
<li>you should now be able to enter 'system:has url matching regex (regex with upper case)' and 'system:has url (url with upper case)' and it'll propage through parsing. this definitely has not™ broken any other predicate parsing. you can enter url class names with upper case if you want, but url class names should now match regardless of letter case</li>
<li>you can now open the 'extra info' button (up top of a media viewer) on a jpeg if that jpeg has no exif or other human-readable metadata (to see just the progressive and subsampling info)</li>
<li>added a new EXPERIMENTAL checkbox to _options->tag presentation_ that will replace emojis and other unicode symbol garbage with □. if you have crazy rendering for emoji stuff, try it out</li>
<li>the tag summary generators that make thumbnail banners now wash their tags through the 'render tag for user' system, which will apply this new emoji rule and 'replace underscores with spaces'</li>
<li>updated the QuickSync link to its new home at https://breadthread.duckdns.org/</li>
<li><h3>URL storage/display changes</h3></li>
<li>today I correct a foolish decision I made when I first implemented the hydrus downloader engine--handling and storing URLs internally as 'pretty' decoded text, rather than with the proper ugly '%20" stuff you sometimes see. this improves support for weird URLs and makes some behind the scenes things simpler. you do not need to make any changes, but there is a chance some particularly funky URLs will redownload once more if your subscription runs into them again (this change breaks some 'known url' checking logic, since what is stored is now slightly different, but this 99% doesn't affect Post URLs, so no big worries)</li>
<li>so, URLs are no longer decoded in the normalisation step. they are now saved in the file log as their proper actual 'what is sent to the server' encoded text. it will display in UI as the pretty version, but if you copy to clipboard, you get the data version--pretty much how your web browser address bar works. I have made it show 'pretty' in the file log and search log lists, 'copy url' menu labels, and hyperlink tooltips, but in the more technical 'manage GUGs' and so on, it shows the data version. let me know if I have forgotten to display them pretty anywhere!</li>
<li>when you paste a URL, some new normalisation tech tries to figure out if it is pre-encoded or not</li>
<li>there's also some GUG work. when you enter a query text like `male/female` or `blonde_hair%20blue_eyes`, some new logic tries to infer whether what you entered is encoded or not. it should handle pretty much everything well unless you have a single-tag query with a legit percent character in the middle (in which case you'll have to enter `%25` instead, but we'll see if it ever happens)</li>
<li>these changes simplify the url parsing routine, eliminating plenty of nonsense hackery I've inserted over the years to make things like `6+girls blonde_hair`/`6%2Bgirls+blonde_hair` work with a merged system. this has mostly been a delicate cleanup job; long planned, finally triggered</li>
<li><h3>ephemeral URL parameters</h3></li>
<li>I was going to roll out 'ephemeral token' parameters, and I basically had it done, but I realised late that I was being stupid in a brand new way, basically expanding the whitelist when turning off the blacklist was a nicer solution. I will work on this more next week, I think ultimately making it so Post URLs are not clipped of undefined parameters before they are is sent to the server, just like for Gallery URLs. I will separately introduce 'I just need to add some random hex in this parameter to tell this cache I want the original' under different tech</li>
<li>so, I did some behind the scenes URL filtering tech, and file import objects handle full and stripped down versions of Post URLs, but it doesn't do much yet</li>
<li><h3>boring cleanup</h3></li>
<li>I cleaned up some URL Class code</li>
<li>the URL Class has a new buddy 'Parameter' class to handle param testing</li>
<li>rewrote how the query string of a URL is deconstructed and scanned against your parameters. less chance of edge-case errors/merges and easier to expand in future</li>
<li>brushed up the URL Class unit tests to account for the above changes and added new tests for encoding, ephemeral, and default parameter values (which must have been missed a long time ago)</li>
</ul>
</li>
<li>
<h2 id="version_566"><a href="#version_566">version 566</a></h2>
<ul>

File diff suppressed because one or more lines are too long

Binary file not shown.