Deployed 61d49532 with MkDocs version: 1.5.3

This commit is contained in:
2024-01-03 21:29:28 +00:00
parent 453880fde5
commit 1618d44652
62 changed files with 405 additions and 282 deletions

View File

@ -14,7 +14,7 @@
<link rel="icon" href="/hydrus/assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -16,7 +16,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -16,7 +16,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -18,7 +18,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -16,7 +16,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">
@ -1976,6 +1976,57 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<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" 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" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_556" class="md-nav__link">
<span class="md-ellipsis">
@ -1987,7 +2038,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc" class="md-nav__link">
<a href="#misc_1" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2083,7 +2134,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_1" class="md-nav__link">
<a href="#misc_2" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2161,7 +2212,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_2" class="md-nav__link">
<a href="#misc_3" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2170,7 +2221,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api" class="md-nav__link">
<a href="#client_api_1" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -2212,7 +2263,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_3" class="md-nav__link">
<a href="#misc_4" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2245,7 +2296,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_4" class="md-nav__link">
<a href="#misc_5" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2272,7 +2323,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api_1" class="md-nav__link">
<a href="#client_api_2" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -2305,7 +2356,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_5" class="md-nav__link">
<a href="#misc_6" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2332,7 +2383,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api_2" class="md-nav__link">
<a href="#client_api_3" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -2356,7 +2407,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_6" class="md-nav__link">
<a href="#misc_7" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2407,7 +2458,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_7" class="md-nav__link">
<a href="#misc_8" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2476,7 +2527,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_8" class="md-nav__link">
<a href="#misc_9" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2494,7 +2545,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api_3" class="md-nav__link">
<a href="#client_api_4" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -2514,48 +2565,6 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_547" class="md-nav__link">
<span class="md-ellipsis">
Version 547
</span>
</a>
<nav class="md-nav" aria-label="Version 547">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#mpv_crash_fixes" class="md-nav__link">
<span class="md-ellipsis">
mpv crash fixes
</span>
</a>
</li>
<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="#simple_cleanup" class="md-nav__link">
<span class="md-ellipsis">
simple cleanup
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@ -2621,6 +2630,57 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<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" 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" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_556" class="md-nav__link">
<span class="md-ellipsis">
@ -2632,7 +2692,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc" class="md-nav__link">
<a href="#misc_1" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2728,7 +2788,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_1" class="md-nav__link">
<a href="#misc_2" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2806,7 +2866,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_2" class="md-nav__link">
<a href="#misc_3" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2815,7 +2875,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api" class="md-nav__link">
<a href="#client_api_1" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -2857,7 +2917,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_3" class="md-nav__link">
<a href="#misc_4" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2890,7 +2950,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_4" class="md-nav__link">
<a href="#misc_5" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2917,7 +2977,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api_1" class="md-nav__link">
<a href="#client_api_2" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -2950,7 +3010,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_5" class="md-nav__link">
<a href="#misc_6" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -2977,7 +3037,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api_2" class="md-nav__link">
<a href="#client_api_3" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -3001,7 +3061,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_6" class="md-nav__link">
<a href="#misc_7" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3052,7 +3112,7 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#misc_7" class="md-nav__link">
<a href="#misc_8" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3121,7 +3181,7 @@
</li>
<li class="md-nav__item">
<a href="#misc_8" class="md-nav__link">
<a href="#misc_9" class="md-nav__link">
<span class="md-ellipsis">
misc
</span>
@ -3139,7 +3199,7 @@
</li>
<li class="md-nav__item">
<a href="#client_api_3" class="md-nav__link">
<a href="#client_api_4" class="md-nav__link">
<span class="md-ellipsis">
client api
</span>
@ -3159,48 +3219,6 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#version_547" class="md-nav__link">
<span class="md-ellipsis">
Version 547
</span>
</a>
<nav class="md-nav" aria-label="Version 547">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#mpv_crash_fixes" class="md-nav__link">
<span class="md-ellipsis">
mpv crash fixes
</span>
</a>
</li>
<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="#simple_cleanup" class="md-nav__link">
<span class="md-ellipsis">
simple cleanup
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@ -3231,9 +3249,44 @@
<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_556"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v556">Version 556</a><a class="headerlink" href="#version_556" title="Permanent link">&para;</a></h2>
<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">misc<a class="headerlink" href="#misc" 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">client api<a class="headerlink" href="#client_api" 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>
<h2 id="version_556"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v556">Version 556</a><a class="headerlink" href="#version_556" title="Permanent link">&para;</a></h2>
<h3 id="misc_1">misc<a class="headerlink" href="#misc_1" title="Permanent link">&para;</a></h3>
<ul>
<li>fixed, on a file drag and drop, the new export path eliding code from raising an error when the default export phrase would give an empty filename. e.g. if you set the export phrase as <code>[title]</code> and the file has no title. this no longer raises an error, and the fallback export phrase <code>{hash}</code> is again used instead. broadly speaking, most errors here are now handled better</li>
<li>also, export folders will now fallback to using <code>{hash}</code> if their normal export filename raises an error</li>
<li>holding down ctrl+shift+ while selecting thumbnails now does the same thing as a bare shift+ select. previously, it was unhelpfully interpreting this as a bare ctrl+ click</li>
@ -3300,7 +3353,7 @@
<li>the String Splitter and Joiner now interpret <code>\n</code> in their splitter/joiner text as newline (and other replacements like <code>\t</code> for tab; anything python supports). in order to not break existing parsers, the old splitter and joiner strings will be encoded on update (any <code>\</code> will become <code>\\</code>)</li>
<li>added some unit tests to test this behaviour for both String Processor types</li>
</ul>
<h3 id="misc_1">misc<a class="headerlink" href="#misc_1" 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>the system predicate parser is now plugged into the excellent <code>dateparser</code> library that we already use in downloader parsing. this thing can eat pretty much any date string you can throw at it, so if you type "system:archived time: since 01/05/2011" or "system:archived time: before 30 hours ago", it'll all work for almost any combination you can think of. it'll probably even work in your native language! the one big caveat is if you give a longer duration timestamp in the form 'x time units( ago)', rather than a specific date, it'll convert it to days/hours, ignoring years and months. since this stuff causes a ton of headaches, I am likely going to switch all the time-delta time predicates here to work on days/hours/seconds, and if you want to put 60 or 365 days, knowing what inaccuracy that implies means, then you can, rather than have me continually fret over and fail to deliver various leap year calculation problems. <em>calendarium delenda est</em></li>
<li>fixed some thumbnail rendering for another class of damaged gif--this time, gifs that are so garbagified that they change their resolution from one frame to the next and/or produce a sizeless, shapeless frame of a handful of bytes. this is now detected and the bad data discarded!</li>
@ -3366,7 +3419,7 @@
<li>import folders now have a 'recent modified time skip period' setting, defaulting to 60 seconds. any file that has a modified date newer than that many seconds ago will not be imported on the current check. this helps to avoid importing files that are currently being downloaded/copied into the folder when the import folder runs (when that folder/download process is otherwise immune to the existing 'already in use' checks)</li>
<li>import folders now repeat-check folders that have many previously-seen files much faster</li>
</ul>
<h3 id="misc_2">misc<a class="headerlink" href="#misc_2" 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>the 'max gif size' setting in the quiet and loud file import options now defaults to 'no limit'. it used to be 32MB, to catch various trash webm re-encodes, but these days it catches more false positives than it is worth, and 32MB is less of a deal these days too</li>
<li>the test on boot to see if the given database location is writeable-to should now give an error when that location is on a non--existing location (e.g. a removable usb drive that is not currently plugged in). previously, it could, depending on the situation, either proceed and go crazy later or wait indefinitely on a CPU-heavy busy-wait for the drive to be plugged back in. unfortunately, because at this stage there is no logfile location and no UI, if your custom db dir does not and cannot exist, the program terminates instantly and silently writes a crash log to your desktop. I have made a plan to improve this in future</li>
@ -3375,7 +3428,7 @@
<li>added some unit tests to check the new path eliding tech</li>
<li>brushed up the 'getting started with ratings' help a little</li>
</ul>
<h3 id="client_api">client api<a class="headerlink" href="#client_api" title="Permanent link">&para;</a></h3>
<h3 id="client_api_1">client api<a class="headerlink" href="#client_api_1" title="Permanent link">&para;</a></h3>
<ul>
<li>thanks to a user, the Client API now has the ability to see and interact with the current popup messages in the popup toaster!</li>
<li>fixed a stupid typo that I made in the new Client API options call. added a unit test to catch this in future, too</li>
@ -3401,7 +3454,7 @@
<li>did a little work bringing the experimental Qt media player up to proper slideshow capability, and neatened the associated code</li>
<li>yes, hydev did write all these options for his repurposed slideshow computer because he was annoyed about his vidya captures and 500ms loops playing jank on a 30m slideshow period</li>
</ul>
<h3 id="misc_3">misc<a class="headerlink" href="#misc_3" 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>the file-info-summary lines that appear in the top row thumbnail menu submenu now show if a file has audio/transparency/exif/other metadata/icc profile</li>
<li>the file-info-summary lines that appear in the top row thumbnail menu submenu and the top-center of the media viewer no longer list 'removed from x 5 days ago' for files that were moved internally between local file services. these statements were spammy and not helpful! if you really need them, are available in the 'manage times' dialog. sorry for the annoyance here</li>
@ -3430,7 +3483,7 @@
<li>fixed the build script to construct a file named .tar.zst for the Ubuntu release, not .tar.gz</li>
</ul>
<h2 id="version_552"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v552">Version 552</a><a class="headerlink" href="#version_552" title="Permanent link">&para;</a></h2>
<h3 id="misc_4">misc<a class="headerlink" href="#misc_4" 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>'system:has audio' and 'system:embedded metadata' are now combined under a new meta-system predicate 'system:file properties'. if you can't find your yes/no predicate, try looking there!</li>
<li>menu commands will no longer have their unadjusted label as their tooltip. all tooltips are either the full status bar description or the full label if it was long enough to be elided</li>
@ -3463,7 +3516,7 @@
<li>the duplicate filter now shows 'has transparency, the other is opaque' statements</li>
<li>while working on this, I encountered a number of files that seemed to be false positives--apparently normal, fully opaque images of anime girls that were somehow showing up as 'has interesting alpha'. upon inspecting them closely, I discovered the border pixels had a slight fade, or one pixel out of all of them was 98% opaque, or the single bottom right pixel was completely transparent. perhaps some of these are secret artist markers, but I imagine many are just an accidental drawing tablet smudge or dodgy crop tool calculations. I'm leaving them as 'has_transparency' for now, but maybe we'll want to tune this more in future, perhaps saying you have to be at least 0.3% transparent to count. anyway, as always, while I am interested in seeing files that seem to get a false positive/negative with this new 'has transparency' test, if you have the technical know-how, please check if they actually have no alpha yourself first. once you play around with this system, let me know what sort of pseudo-'false positive' rate you are getting, and we can talk about an appropriate threshold</li>
</ul>
<h3 id="client_api_1">client api<a class="headerlink" href="#client_api_1" title="Permanent link">&para;</a></h3>
<h3 id="client_api_2">client api<a class="headerlink" href="#client_api_2" title="Permanent link">&para;</a></h3>
<ul>
<li>the 'file_metadata' call now includes a 'has_transparency' boolean! remember that it will be overly <code>false</code> for a while, until the file maintenance catches up</li>
<li>forgot to mention it last week, but thanks to a user there is a new <code>/manage_database/get_client_options</code> call that fetches a heap of different client options. this exposes a mess that may change with any update, but there may be something neat you can hook into. this week we fixed a thing that was breaking this call for probably all old clients</li>
@ -3480,7 +3533,7 @@
<li>removed some old code that isn't used any more</li>
</ul>
<h2 id="version_551"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v551">Version 551</a><a class="headerlink" href="#version_551" 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_6">misc<a class="headerlink" href="#misc_6" title="Permanent link">&para;</a></h3>
<ul>
<li>thanks to a user, we have a new checkbox under <em>options-&gt;thumbnails</em> that disables thumbnail fading. they'll just blink into place in one frame as soon as ready</li>
<li>after looking at this code myself, I gave it a full clean. the actual thumbnail fade animation is now handled with some proper objects rather than a scatter of variables passed around</li>
@ -3518,13 +3571,13 @@
<li>added some more file/directory pre-checks to all the merge/mirror functions</li>
<li>deleted some old unused code here</li>
</ul>
<h3 id="client_api_2">client api<a class="headerlink" href="#client_api_2" title="Permanent link">&para;</a></h3>
<h3 id="client_api_3">client api<a class="headerlink" href="#client_api_3" title="Permanent link">&para;</a></h3>
<ul>
<li>thanks to a user, the Client API now has a 'generate_hashes' endpoint that returns the sha256 hash (and pixel hash and perceptual hashes of any appropriate image file) of any file you give it</li>
<li>the client api version is now 55</li>
</ul>
<h2 id="version_550"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v550">Version 550</a><a class="headerlink" href="#version_550" title="Permanent link">&para;</a></h2>
<h3 id="misc_6">misc<a class="headerlink" href="#misc_6" 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>if you enter invalid URLs (i.e. non-parsing) into 'manage URLs', the dialog now lets you know they were not apparently good and asks if you want to enter them anyway. previously, it errored-out and disallowed anything that wasn't parsing ok (issue #1444)</li>
<li>when physically deleting files (i.e. deleting from trash or picking 'permanently delete' from the advanced delete dialog), the relevant files are now immediately removed from view. there were some situations where, when physically deleting a lot of files (causing the job to clear in batches), you could subsequently click on a soon-to-be-deleted file, loading it in mpv, and then, if you started a big UI-lag job like loading 'manage siblings', it could cause a crash if the file was deleted during the UI hang (issue #1447)</li>
@ -3557,7 +3610,7 @@
<li>deleting a file from 'all local files' (which happens for repository update files) now correctly updates the UI-level media object to recognise that the file is fully deleted from all local file domains beneath the umbrella, removing the 'delete from x' commands from their menu, and in the right view contexts removing them from view completely</li>
</ul>
<h2 id="version_549"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v549">Version 549</a><a class="headerlink" href="#version_549" title="Permanent link">&para;</a></h2>
<h3 id="misc_7">misc<a class="headerlink" href="#misc_7" 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>optimised taglist sorting code, which is really groaning when it gets to 50k+ unique tags. the counting is more efficient now, but more work can be done</li>
<li>optimised taglist internal update recalc by updating existing items in place instead of remove/replace and skipping cleanup-sort when no new items are added and/or the sort is not count-based. it should also preserve selection and focus stuff a bit better now</li>
@ -3604,7 +3657,7 @@
<li>thanks to a user, newly-IPFS-pinned files are properly aware of their multihashes now (previously you needed a client restart or media reload after a delay) (issue #1328)</li>
<li>thanks to a user, the url and hdd downloaders now have 'stop/abort' buttons, which will stop current work and cancel the rest of the queue. I added a yes/no dialog where you can choose to skip or delete the remainder of the queue and a couple of bells and whistles like disabling the button when the current queue has no remaining work</li>
</ul>
<h3 id="misc_8">misc<a class="headerlink" href="#misc_8" title="Permanent link">&para;</a></h3>
<h3 id="misc_9">misc<a class="headerlink" href="#misc_9" title="Permanent link">&para;</a></h3>
<ul>
<li>fixed an issue with successive drag and drop file exports that gave different files the same filename. previously, the successive files were being replaced with the first instance with the shared name (basically the original files were not being 'overwritten'), but it should be fixed now!</li>
<li>various places that were sorting services pseudorandomly now do so alphabetically (the F9 new page selector was doing this with local file domains (the first buttons in 'file search'), if you had multiple set up. sorry if I mess with your muscle memory here, but things should be more reliable here going forward!)</li>
@ -3620,7 +3673,7 @@
<li>I removed the jank semi-secret 'ctrl+space' hardcoded 'deselect current focused thumbnail' shortcut. that tech will probably return when I figure out more sensible logic and user settings around shift+ and ctrl+ behaviour</li>
<li>this cleanup reduces three different shortcut handling routines down to one, and it particularly clears the last place where I was using ancient grandfathered wx-based 'accelerator table' tech. it should be easier to update the thumbnail shortcuts in future, and I hope to plug the mouse into it also, so you can edit middle-click to launch media etc..</li>
</ul>
<h3 id="client_api_3">client api<a class="headerlink" href="#client_api_3" title="Permanent link">&para;</a></h3>
<h3 id="client_api_4">client api<a class="headerlink" href="#client_api_4" title="Permanent link">&para;</a></h3>
<ul>
<li>after much discussion and personal vacillating, I have decided to include the <code>version</code> and <code>hydrus_version</code> in every JSON Client API response. CBOR responses are not affected. if you need to hook into these numbers for a completely stateless interface, it is now super convenient. I'm not delighted with the spamminess of this, but it is just a handful of characters and it adds value for several situations, so I'm willing to try it out</li>
<li>updated the documentation and unit tests regarding this</li>
@ -3635,32 +3688,6 @@
<li>cleaned up various shortcut code</li>
<li>misc linting cleanup</li>
</ul>
<h2 id="version_547"><a href="https://github.com/hydrusnetwork/hydrus/releases/tag/v547">Version 547</a><a class="headerlink" href="#version_547" title="Permanent link">&para;</a></h2>
<h3 id="mpv_crash_fixes">mpv crash fixes<a class="headerlink" href="#mpv_crash_fixes" title="Permanent link">&para;</a></h3>
<ul>
<li>tl;dr: mpv less crashy now</li>
<li>if mpv fails to load a file but not in an outright 'error' manner (this appears to mean a file using a rare format that a submodule of mpv can't handle), the client now recognises this has happened, either right after the first load, or, if the error takes longer to occur, a subsequent status interrogation, and makes several new steps to restore program stability: disconnecting the mpv window from all commands, freezing the scanbar, loading the default hydrus.png as emergency backstop, and making a popup to let the user know what just happened. previously, Qt would get rapidly unhappy as it asked things to draw on screen over the null-state player, particularly if you show/hid the scanbar several times, and it would, if not removed promptly from screen, typically lead to a program crash</li>
<li>furthermore, the scanbar now never interrogates the mpv window during its paint event. a mysterious interaction of C++ level objects during error state was causing the underlying instability here, and now I cannot reproduce this even if I try</li>
<li>I also hardened the mpv window's 'no-media' state. now, rather than showing 'nothing' when media is unloaded, each mpv player now actually idles on a black png lol</li>
<li>this tech will kick in for more extreme file failures, too, which have a different handler but seem to give the same detectable dump-out state</li>
<li>fixed a silent-but-for-debug-mode error while destroying damaged mpv windows right when the program is terminating</li>
</ul>
<h3 id="misc_9">misc<a class="headerlink" href="#misc_9" title="Permanent link">&para;</a></h3>
<ul>
<li>thanks to a user, we now have import support for 'djvu' files. basically an open source PDF style format</li>
<li>fixed pasting an image into 'system:similar files', which I missed updating in last week's code cleanup!</li>
<li>a light but spammy legacy job that refreshed every search page's empty autocomplete every five minutes (to get updated system predicates/numbers) now only occurs to autocompletes on the current page. relatedly, when you switch to a search page you haven't looked at in five minutes, it triggers the same update immediately. this should save a tiny bit of idle CPU time and, more importantly, clear out the background job queue on larger-session clients</li>
<li>I <em>think</em> I fixed some instances of the media viewer notes window initialising with a gigantic width on some OSes. if you often get a super wide notes window when you first open the media viewer, with it fixing itself when you cycle to a different file and back, let me know if things are any better</li>
<li>when you have a popup message that has a 'show x files' button, usually from a subscription, that routine now excludes files that have been deleted since the button was created. it updates its existing file count on a click, also, to how many files it actually will generate. if you click one of these buttons, delete some files, and then click it again, it should no longer produce ghost files in the new search page. I'm going to add some more tech to optionally handle the system:hash predicate in a page in similar ways, 'locking' it to the current page content and preserving file sort so it works nice with 'remove files' etc..</li>
<li>fixed a stupid typo that was swapping the 'allow non-local connections' server setting when making the interface for IPv6 hosts. there is a secondary check of all client IPs on every request, so I am confident this was not enabling non-local connections when undesired on IPv6, but it was disabling them by deploying the loopback interface when they should have been allowed! sorry for the trouble, and well done to the person who noticed this</li>
<li>while pursing an odd and rare problem where a download job can start even though it should be waiting on a login process, I cleaned some of the login code and logic, lowering the timeout for session cookie expiring from 60 to 45 minutes and smoothing out some confusing status-checking in the pre-login stage. I could never reproduce the problem, though, so if you have had this issue, please let me know more and I'll see if I can reproduce this reliably</li>
</ul>
<h3 id="simple_cleanup">simple cleanup<a class="headerlink" href="#simple_cleanup" title="Permanent link">&para;</a></h3>
<ul>
<li>cleaned up some filetype parsing code that was getting a little messy, also reduced some overhead</li>
<li>unified the thumbnail/file filetype parsing a little, with better fallback states when a hydrus thumbnail happens for some reason not to be a jpeg or png</li>
<li>fixed an out of date menu reference in the 'help my media files are broke.txt' document. 'clear orphan files' is under 'file maintenance' now, not 'db maintenance'</li>
</ul>
@ -3681,7 +3708,7 @@
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">December 13, 2023</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 3, 2024</span>
</span>

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">
@ -5292,6 +5292,7 @@ Accept: application/json
<span class="w"> </span><span class="nt">&quot;hash&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;4c77267f93415de0bc33b7725b8c331a809a924084bee03ab2f5fae1c6019eb2&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;size&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">63405</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;mime&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;image/jpeg&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_forced&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_human&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;jpeg&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_enum&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;ext&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;.jpg&quot;</span><span class="p">,</span>
@ -5346,6 +5347,7 @@ Accept: application/json
<span class="w"> </span><span class="nt">&quot;hash&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;3e7cb9044fe81bda0d7a84b5cb781cba4e255e4871cba6ae8ecd8207850d5b82&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;size&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">199713</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;mime&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;video/webm&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_forced&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_human&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;webm&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_enum&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">21</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;ext&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;.webm&quot;</span><span class="p">,</span>
@ -5462,6 +5464,7 @@ Accept: application/json
<span class="w"> </span><span class="nt">&quot;hash&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;4c77267f93415de0bc33b7725b8c331a809a924084bee03ab2f5fae1c6019eb2&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;size&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">63405</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;mime&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;image/jpeg&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_forced&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_human&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;jpeg&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_enum&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;ext&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;.jpg&quot;</span><span class="p">,</span>
@ -5477,6 +5480,7 @@ Accept: application/json
<span class="w"> </span><span class="nt">&quot;hash&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;3e7cb9044fe81bda0d7a84b5cb781cba4e255e4871cba6ae8ecd8207850d5b82&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;size&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">199713</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;mime&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;video/webm&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_forced&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_human&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;webm&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;filetype_enum&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">21</span><span class="p">,</span>
<span class="w"> </span><span class="nt">&quot;ext&quot;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;.webm&quot;</span><span class="p">,</span>
@ -5497,6 +5501,7 @@ Accept: application/json
<p><code>ipfs_multihashes</code> stores the ipfs service key to any known multihash for the file. </p>
<p>The <code>thumbnail_width</code> and <code>thumbnail_height</code> are a generally reliable prediction but aren't a promise. The actual thumbnail you get from <a href="#get_files_thumbnail">/get_files/thumbnail</a> will be different if the user hasn't looked at it since changing their thumbnail options. You only get these rows for files that hydrus actually generates an actual thumbnail for. Things like pdf won't have it. You can use your own thumb, or ask the api and it'll give you a fixed fallback; those are mostly 200x200, but you can and should size them to whatever you want.</p>
<p>If the file has a thumbnail, <code>blurhash</code> gives a base 83 encoded string of its <a href="https://blurha.sh/">blurhash</a>. <code>pixel_hash</code> is an SHA256 of the image's pixel data and should exactly match for pixel-identical files (it is used in the duplicate system for 'must be pixel duplicates').</p>
<p>If the file's filetype is forced by the user, <code>filetype_forced</code> becomes <code>true</code> and a second mime string, <code>original_mime</code> is added.</p>
<h4 id="tags">tags<a class="headerlink" href="#tags" title="Permanent link">&para;</a></h4>
<p>The <code>tags</code> structure is similar to the <a href="#add_tags_add_tags">/add_tags/add_tags</a> scheme, excepting that the status numbers are:</p>
<ul>
@ -6922,7 +6927,7 @@ This request will also return any cookies for subdomains. The session system in
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">December 6, 2023</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 3, 2024</span>
</span>

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">
@ -2185,6 +2185,7 @@
<h1>Supported Filetypes</h1>
<p>This is a list of all filetypes Hydrus can import. Hydrus determines the filetype based on examining the file itself rather than the extension or MIME type.</p>
<p>The filetype for a file can be overridden with <code>manage -&gt; force filetype</code> in the context menu for a file. </p>
<h2 id="images">Images<a class="headerlink" href="#images" title="Permanent link">&para;</a></h2>
<table>
<thead>
@ -2341,6 +2342,14 @@
<td style="text-align: center;"></td>
<td></td>
</tr>
<tr>
<td>ugoira</td>
<td><code>.zip</code></td>
<td><code>application/zip</code></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td><a href="https://www.pixiv.help/hc/en-us/articles/235584628-What-are-Ugoira-">Pixiv Ugoira format</a>. A zip file containing images with 6 digit zero-padded filenames will be identified as a Ugoira file.</td>
</tr>
</tbody>
</table>
<h2 id="video">Video<a class="headerlink" href="#video" title="Permanent link">&para;</a></h2>
@ -2654,6 +2663,7 @@
<th>Filetype</th>
<th>Extension</th>
<th>MIME type</th>
<th style="text-align: center;">Thumbnails</th>
<th>Notes</th>
</tr>
</thead>
@ -2662,26 +2672,37 @@
<td>7z</td>
<td><code>.7z</code></td>
<td><code>application/x-7z-compressed</code></td>
<td style="text-align: center;"></td>
<td></td>
</tr>
<tr>
<td>gzip</td>
<td><code>.gz</code></td>
<td><code>application/gzip</code></td>
<td style="text-align: center;"></td>
<td></td>
</tr>
<tr>
<td>rar</td>
<td><code>.rar</code></td>
<td><code>application/vnd.rar</code></td>
<td style="text-align: center;"></td>
<td></td>
</tr>
<tr>
<td>zip</td>
<td><code>.zip</code></td>
<td><code>application/zip</code></td>
<td style="text-align: center;"></td>
<td></td>
</tr>
<tr>
<td>cbz</td>
<td><code>.cbz</code></td>
<td><code>application/vnd.comicbook+zip</code></td>
<td style="text-align: center;"></td>
<td>A zip file containing images with incrementing numbers in their filenames will be identified as a cbz file. The code for identifying a cbz file is in <a href="https://github.com/hydrusnetwork/hydrus/blob/master/hydrus/core/HydrusArchiveHandling.py"><code>hydrus/core/HydrusArchiveHandling.py</code></a></td>
</tr>
</tbody>
</table>
<div class="footnote">
@ -2712,7 +2733,7 @@
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">October 14, 2023</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 1, 2024</span>
</span>

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">
@ -2424,7 +2424,7 @@ Then please do this: <ol>
<h2 id="updating">Updating<a class="headerlink" href="#updating" title="Permanent link">&para;</a></h2>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Hydrus is imageboard-tier software, wild and fun but unprofessional. It is written by one Anon spinning a lot of plates. Mistakes happen from time to time, usually in the update process. There are also no training wheels to stop you from accidentally overwriting your whole db if you screw around. Be careful when updating. Make backups beforehand!</p>
<p>Hydrus is imageboard-tier software, wild and fun--but also unprofessional. It is written by one Anon spinning a lot of plates. Mistakes happen from time to time, usually in the update process. There are also no training wheels to stop you from accidentally overwriting your whole db if you screw around. Be careful when updating. Make backups beforehand!</p>
</div>
<p><strong>Hydrus does not auto-update. It will stay the same version unless you download and install a new one.</strong></p>
<p>Although I put out a new version every week, you can update far less often if you prefer. The client keeps to itself, so if it does exactly what you want and a new version does nothing you care about, you can just leave it. Other users enjoy updating every week, simply because it makes for a nice schedule. Others like to stay a week or two behind what is current, just in case I mess up and cause a temporary bug in something they like.</p>
@ -2445,9 +2445,14 @@ Then please do this: <ol>
<li>If the client is running, close it!</li>
<li>If you maintain a backup, run it now!</li>
<li>If you use the installer, just download the new installer and run it. It should detect where the last install was and overwrite everything automatically.</li>
<li>If you extract, then just extract the new version right on top of your current install and overwrite manually.</li>
<li>If you extract, then just extract the new version right on top of your current install and overwrite manually. <em>It is wise to extract it straight from the archive to your install folder.</em></li>
<li>Start your client or server. It may take a few minutes to update its database. I will say in the release post if it is likely to take longer.</li>
</ul>
<details class="warning">
<summary>Be extremely careful making test runs of the Extract release</summary>
<p><strong>Do not test-run the extract before copying it over your install!</strong> Running the program anywhere will create database files in the /db/ dir, and if you then copy that once-run folder on top of your real install, you will overwrite your real database! <span class="spoiler">Of course it doesn't really matter, because you made a full backup before you started, right? :^)</span></p>
<p>If you need to perform tests of an update, make sure you have a good backup before you start and then remember to delete any functional test extracts before extracting from the original archive once more for the actual 'install'.</p>
</details>
<p>Unless the update specifically disables or reconfigures something, all your files and tags and settings will be remembered after the update.</p>
<p>Releases typically need to update your database to their version. New releases can retroactively perform older database updates, so if the new version is v255 but your database is on v250, you generally only need to get the v255 release, and it'll do all the intervening v250-&gt;v251, v251-&gt;v252, etc... update steps in order as soon as you boot it. If you need to update from a release more than, say, ten versions older than current, see below. You might also like to skim the release posts or <a href="changelog.html">changelog</a> to see what is new.</p>
<p>Clients and servers of different versions can usually connect to one another, but from time to time, I make a change to the network protocol, and you will get polite error messages if you try to connect to a newer server with an older client or <em>vice versa</em>. There is still no <em>need</em> to update the client--it'll still do local stuff like searching for files completely fine. Read my release posts and judge for yourself what you want to do.</p>
@ -2556,7 +2561,7 @@ Almost every OS you can name.</p>
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">September 27, 2023</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 3, 2024</span>
</span>

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -18,7 +18,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -34,6 +34,37 @@
<div class="content">
<h1 id="changelog"><a href="#changelog">changelog</a></h1>
<ul>
<li>
<h2 id="version_557"><a href="#version_557">version 557</a></h2>
<ul>
<li><h3>misc</h3></li>
<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>
<li><h3>better hash predicate parsing</h3></li>
<li>`system:hash` labels are a little different now. they'll say `system:hash (md5) is abcd...`, with the algorithm after the "hash". hash is omitted for sha256 (the hydrus default). this eases parsing</li>
<li>`system:similar to data` 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>`system:hash` predicate parsing is now more flexible. you can put the hash type pretty much anywhere now.</li>
<li>`system:similar to` and `system:similar to data` 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>
<li><h3>documentation and cleanup</h3></li>
<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>
<li><h3>client api</h3></li>
<li>the `file_metadata` call now returns `filetype_forced` and, if so, also `original_mime` 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 `file_metadata` requests with `only_return_basic_information=true`)</li>
<li>thanks to a user, the `/add_urls/get_url_info` Client API call now has a cache timeout of ten minutes, and the `/add_urls/get_url_files` 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>
</li>
<li>
<h2 id="version_556"><a href="#version_556">version 556</a></h2>
<ul>
@ -430,7 +461,7 @@
<li>moved the new blurhash methods to a new `HydrusBlurhash` file</li>
<li>moved various normalisation routines to a new `HydrusImageNormalisation` file</li>
<li>moved various channel scanning and adjusting code to a new `HydrusImageColours` file</li>
<li>moved the hydrus image files to the new 'hydrus.core.images' module</li>
<li>moved the hydrus image files to the new 'hydrus.core.files.images' module</li>
<li>cleaned up some image loading code</li>
<li>deleted ancient and no-longer-used client db code regarding imageboard definitions, status texts, and more</li>
<li>removed the ancient `OPENCV_OK` fallback code, which was only used, superfluously, in a couple of final places. OpenCV is not optional to run hydrus, server or client</li>

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">
@ -2460,7 +2460,31 @@
<div class="tabbed-set tabbed-alternate" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Windows</label><label for="__tabbed_1_2">Linux</label><label for="__tabbed_1_3">macOS</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<p>First of all, you will need to install Python. Get 3.10 or 3.11 <a href="https://www.python.org/downloads/windows/">here</a>. During the install process, make sure it has something like 'Add Python to PATH' checked. This makes Python available to your Windows. </p>
<details class="info">
<summary>Git for Windows</summary>
<p>Git is an excellent tool for synchronising code across platforms. Instead of downloading and extracting the whole .zip every time you want to update, it allows you to just run one line and all the code updates are applied in about three seconds. You can also run special versions of the program, or test out changes I committed two minutes ago without having to wait for me to make a whole build. You don't have to, but I recommend you get it.</p>
<p>Installing it is simple, but it can be intimidating. These are a bunch of very clever tools coming over from Linux-land, and the installer has a 10+ page wizard with several technical questions. Luckily, the 'default' is broadly fine, but I'll write everything out so you can follow along. I can't promise this list will stay perfectly up to date, so let me know if there is something complex and new you don't understand. <span class="spoiler">This is also a record that I can refer to when I set up a new machine.</span></p>
<ul>
<li>First off, get it <a href="https://gitforwindows.org/">here</a>. Run the installer.</li>
<li>On the first page, with checkboxes, I recommend you uncheck 'Windows Explorer Integration', with its 'Open Git xxx here' sub-checkboxes. This stuff will just be annoying for our purposes.</li>
<li>Then set your text editor. Select the one you use, and if you don't recognise anything, set 'notepad'.</li>
<li>Now we enter the meat of the wizard pages. Everything except the default console window is best left as default:<ul>
<li><code>Let Git decide</code> on using "master" as the default main branch name</li>
<li><code>Git from the command line and also from 3rd-party software</code></li>
<li><code>Use bundled OpenSSH</code></li>
<li><code>Use the OpenSSL library</code></li>
<li><code>Checkout Windows-style, commit Unix-style line endings</code></li>
<li><strong>(NOT DEFAULT)</strong> <code>Use Windows' default console window</code>. Let's keep things simple, but it isn't a big deal.</li>
<li><code>Fast-forward or merge</code></li>
<li><code>Git Credential Manager</code></li>
<li>Do <code>Enable file system caching</code>/Do not <code>Enable symbolic links</code></li>
<li>Do not enable experimental stuff</li>
</ul>
</li>
</ul>
<p>Git should now be installed on your system. Any new terminal window (shift+right-click on any folder and hit 'Open in terminal') now has the <code>git</code> command!</p>
</details>
<p>First of all, you will need to install Python. Get 3.10 or 3.11 <a href="https://www.python.org/downloads/windows/">here</a>. During the install process, make sure it has something like 'Add Python to PATH' checked. This makes Python available everywhere in Windows. </p>
</div>
<div class="tabbed-block">
<p>You should already have a fairly new python. Ideally, you want at least 3.9.</p>
@ -2470,8 +2494,15 @@
</div>
</div>
</div>
<p>If you are already on a very new version of python, that's ok--you might need to select the 'advanced' setup later on and choose the '(t)est' options. If you are stuck on a much older version of python, try the same thing, but with the '(o)lder' options (but I can't promise it will work!).</p>
<p>Then, get the hydrus source. The github repo is <a href="https://github.com/hydrusnetwork/hydrus">https://github.com/hydrusnetwork/hydrus</a>. If you are familiar with git, you can just clone the repo to the location you want with <code>git clone https://github.com/hydrusnetwork/hydrus</code>, but if not, then just go to the <a href="https://github.com/hydrusnetwork/hydrus/releases/latest">latest release</a> and download and extract the source code .zip somewhere. Make sure the directory has write permissions (e.g. don't put it in "Program Files"). Extracting straight to a spare drive, something like "D:\Hydrus Network", is ideal.</p>
<p>If you are already on a very new python, like 3.12+, that's ok--you might need to select the 'advanced' setup later on and choose the '(t)est' options. If you are stuck on a much older version of python, try the same thing, but with the '(o)lder' options (but I can't promise it will work!).</p>
<p>Then, get the hydrus source. It is best to get it with Git: make a new folder somewhere, open a terminal in it, and then enter:</p>
<div class="highlight"><pre><span></span><code>git clone https://github.com/hydrusnetwork/hydrus
</code></pre></div>
<p>The whole repository will be copied to that location. If Git is not available, then just go to the <a href="https://github.com/hydrusnetwork/hydrus/releases/latest">latest release</a> and download and extract the source code .zip somewhere.</p>
<div class="admonition warning">
<p class="admonition-title">Read-only install locations</p>
<p>Make sure the install directory has convenient write permissions (e.g. on Windows, don't put it in "Program Files"). Extracting straight to a spare drive, something like "D:\Hydrus Network", is ideal.</p>
</div>
<p>We will call the base extract directory, the one with 'hydrus_client.py' in it, <code>install_dir</code>.</p>
<div class="admonition info">
<p class="admonition-title">Mixed Builds</p>
@ -2623,7 +2654,7 @@
<p>To update, you do the same thing as for the extract builds.</p>
<ol>
<li>If you installed by extracting the source zip, then download the <a href="https://github.com/hydrusnetwork/hydrus/releases/latest">latest release</a> source zip and extract it over the top of the folder you have, overwriting the existing source files.</li>
<li>If you installed with git, then just run <code>git pull</code> as normal.</li>
<li>If you installed with git, then just run <code>git pull</code> as normal. I have added easy 'git_pull' scripts to the install directory for your convenience (on Windows, just double-click 'git_pull.bat').</li>
</ol>
<p>If you get a library version error when you try to boot, run the venv setup again. It is worth doing this anyway, every now and then, just to stay up to date.</p>
<h3 id="migrating_from_an_existing_install">Migrating from an Existing Install<a class="headerlink" href="#migrating_from_an_existing_install" title="Permanent link">&para;</a></h3>
@ -2733,13 +2764,16 @@ python hydrus_client.py -d=&quot;/path/to/database&quot;
<li>Get Visual Studio 14/whatever build tools</li>
<li>Pick a different library version</li>
</ul>
<p>Option B is always the simpler. If opencv-headless as the requirements.txt specifies won't compile in Python 3.10, then try a newer version--there will probably be one of these new highly compatible wheels and it'll just work in seconds. Check my build scripts and various requirements.txts for ideas on what versions to try for your python etc...</p>
<p>Option B is always simpler. If opencv-headless as the requirements.txt specifies won't compile in your python, then try a newer version--there will probably be one of these new highly compatible wheels and it'll just work in seconds. Check my build scripts and various requirements.txts for ideas on what versions to try for your python etc...</p>
<p>If you are confident you need Visual Studio tools, then prepare for headaches. Although the tools are free from Microsoft, it can be a pain to get them through the official (and often huge) downloader installer from Microsoft. Expect a 5GB+ install with an eye-watering number of checkboxes that probably needs some stackexchange searches to figure out.</p>
<p>On Windows 10, <a href="https://chocolatey.org/">Chocolatey</a> has been the easy answer. Get it installed and and use this one simple line:</p>
<div class="highlight"><pre><span></span><code>choco install -y vcbuildtools visualstudio2017buildtools windows-sdk-10.0
<p>On Windows 10, <a href="https://chocolatey.org/">Chocolatey</a> has been the easy answer. These can be useful:</p>
<div class="highlight"><pre><span></span><code>choco install -y vcredist-all
choco install -y vcbuildtools (this is Visual Studio 2015)
choco install -y visualstudio2017buildtools
choco install -y visualstudio2022buildtools
choco install -y windows-sdk-10.0
</code></pre></div>
<p>Trust me, just do this, it will save a ton of headaches!</p>
<p><em>Update:</em> On Windows 11, in 2023-01, I had trouble with the above. There's a couple '11' SDKs that installed ok, but the vcbuildtools stuff had unusual errors. I hadn't done this in years, so maybe they are broken for Windows 10 too! The good news is that a basic stock Win 11 install with Python 3.10 is fine getting everything on our requirements and even making a build without any extra compiler tech. </p>
<p><em>Update:</em> On Windows 11, I have had some trouble with the above. The VS2015 seems not to install any more. A basic stock Win 11 install with Python 3.10 or 3.11 is fine getting everything on our requirements, but freezing with PyInstaller may have trouble finding certain 'api-***.dll' files. I am now trying to figure this out with my latest dev machine as of 2024-01. If you try this, let me know what you find out! </p>
<h3 id="additional_windows">Additional Windows Info<a class="headerlink" href="#additional_windows" title="Permanent link">&para;</a></h3>
<p>This does not matter much any more, but in the old days, building modules like lz4 and lxml was a complete nightmare, and hooking up Visual Studio was even more difficult. <a href="http://www.lfd.uci.edu/~gohlke/pythonlibs/">This page</a> has a lot of prebuilt binaries--I have found it very helpful many times.</p>
<p>I have a fair bit of experience with Windows python, so send me a mail if you need help.</p>
@ -2767,7 +2801,7 @@ python hydrus_client.py -d=&quot;/path/to/database&quot;
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">September 6, 2023</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">January 3, 2024</span>
</span>

File diff suppressed because one or more lines are too long

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -2,287 +2,287 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://hydrusnetwork.github.io/hydrus/index.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/Fixing_Hydrus_Random_Crashes_Under_Linux.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/PTR.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/Understanding_Database_Synchronization.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/about_docs.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/access_keys.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/adding_new_downloaders.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/advanced.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/advanced_multiple_local_file_services.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/advanced_parents.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/advanced_siblings.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/advanced_sidecars.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/after_disaster.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/changelog.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/client_api.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/contact.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/database_migration.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/developer_api.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/docker.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_completion.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_gugs.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_intro.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_login.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_parsers.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_parsers_content_parsers.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_parsers_formulae.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_parsers_full_example_api.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_parsers_full_example_file_page.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_parsers_full_example_gallery_page.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_parsers_page_parsers.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_sharing.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/downloader_url_classes.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/duplicates.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/faq.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/filetypes.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/gettingStartedOverview.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_downloading.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_files.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_importing.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_installing.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_more_tags.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_ratings.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_searching.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_subscriptions.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/getting_started_tags.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/introduction.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/ipfs.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/launch_arguments.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/local_booru.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/petitionPractices.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/privacy.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/reducing_lag.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/running_from_source.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/server.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/support.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/wine.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://hydrusnetwork.github.io/hydrus/youDontWantTheServer.html</loc>
<lastmod>2023-12-13</lastmod>
<lastmod>2024-01-03</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -20,7 +20,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">

View File

@ -16,7 +16,7 @@
<link rel="icon" href="assets/favicon.svg">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.2">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.3">