hydrus/help/advanced.html

77 lines
10 KiB
HTML
Executable File

<html>
<head>
<title>advanced</title>
<link href="hydrus.ico" rel="shortcut icon" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="content">
<h3>using flash in fullscreen view</h3>
<p>Flash files are sometimes interested in inputs (like spacebar or mouse-scrollwheel) that mean something to hydrus's fullscreen view, and the libraries I have to use to show flash don't handle these events like normal windows. I now have it set so if your mouse is inside the flash window, the input will go to the flash, and if it is outside, it goes to the fullscreen window.</p>
<p>So, if you want to play a flash game in fullscreen, keep your mouse inside the window.</p>
<h3>exclude deleted files</h3>
<p>In the client's options is a checkbox to exclude deleted files. It recurs pretty much anywhere you can import, under 'advanced import options'. If you select this, any file you ever deleted will be excluded from all future remote searches and import operations. This can stop you from importing/downloading and filtering out the same bad files several times over. The default is off. You may wish to have it set one way most of the time, but switch it the other just for one specific import or search.</p>
<h3>tag censorship</h3>
<p>If you do not like a particular tag or namespace, you can easily hide it with <i>services->manage tag censorship</i>:</p>
<p><img src="tag_censorship.png" /></p>
<p>You can exclude single tags, like as shown above, or entire namespaces (enter the colon, like 'species:'), or all namespaced tags (use ':'), or all unnamespaced tags (''). 'all known tags' will be applied to everything, as well as any repository-specific rules you set.</p>
<p>A blacklist excludes whatever is listed; a whitelist excludes whatever is <i>not</i> listed.</p>
<p>This censorship is local to your client. No one else will experience your changes or know what you have censored.</p>
<h3>importing and adding tags at the same time</h3>
<p><i>Add tags before importing</i> on <i>file->import files</i> lets you give tags to the files you import <i>en masse</i>, and intelligently, using regexes that parse filename:</p>
<p><img src="gunnerkrigg_import.png"/></p>
<p>This should be somewhat self-explanatory to anyone familiar with regexes. I hate them, personally, but I recognise they are powerful and exactly the right tool to use in this case. <a href="http://www.aivosto.com/vbtips/regex.html">This</a> is a good introduction.</p>
<p>Once you are done, you'll get something neat like this:</p>
<p><img src="gunnerkrigg_page.png"/></p>
<p>Which you can more easily manage by collecting:</p>
<p><img src="gunnerkrigg_chapter.png"/></p>
<p>Collections have a small icon in the bottom left corner. Selecting them actually selects many files (see the status bar), and performing an action on them (like archiving, uploading) will do so to every file in the collection. Viewing collections fullscreen pages through their contents just like an uncollected search.</p>
<p>Here is a particularly zoomed out view, after importing volume 2:</p>
<p><img src="gunnerkrigg_volume.png"/></p>
<p>Importing with tags is great for long-running series with well-formatted filenames, and will save you literally hours' finicky tagging.</p>
<h3>export to zip and encrypted</h3>
<p>The export dialog now supports exporting to zip, and, further, encrypting it:</p>
<p><img src="export_zip.png" /></p>
<p>The zip will work as normal. The .encrypted file is essentially a byte-for-byte AES-256 encryption of the zip. It is a hydrus-specific filetype, so is only useful for importing to other hydrus clients. I added it in the case you wish to send files from one place to another, or host them publicly, completely secretly. I would have just used passworded zip files, but my library <i>zipfile</i> doesn't support it!</p>
<p>To move the encrypted file securely, just send it as you would any other way: ftp it, put it on a file hosting service, whatever you like. You don't have to worry about anyone seeing the .encrypted file alone. The important thing is to send the .key file in a private way, either over a known encrypted channel or by passing it using a usb stick or similar.</p>
<p>To import the .encrypted file, just drag it on the client like any other. If the .key file is in the same folder, the client automatically decrypt the .encrytped back to a zip and try importing that. If not, it'll show a dialog where you can manually paste the raw key - which is just 96 characters of hex.</p>
<p>Although I can't guarantee my cyptography is absolutely perfect, I feel fairly confident saying that it will be extremely difficult for someone to see the zip without the associated key.</p>
<h3>custom filter</h3>
<p>Once you are comfortable with the client's tagging and rating, you may be interested in performing a <i>custom filter</i>, which is essentially the fullscreen browser with custom shortcuts. You select it from the regular thumbnail right-click menu. First, it will show you a dialog:</p>
<p><img src="custom_filter_parent.png" /></p>
<p>Which has a sub-dialog to add and edit actions:</p>
<p><img src="custom_filter_child.png" /></p>
<p>You can reassign the default shortcuts for regular things, like archive/delete and opening tag/ratings dialogs, and also add shortcuts for adding/removing a tag or setting/unsetting a rating. Shortcuts do not yet combine; they overwrite.</p>
<p>On the left of the parent dialog, you can save and load favourite patterns of shortcuts.</p>
<p>Once you hit ok on the parent dialog, the fullscreen browser will launch. Navigation and zooming happens as normal with the mouse and keyboard, unless you have overwritten a shortcut! Hitting any of the shortcuts you declared should carry out the action. Tags will pend/rescind pend or petition/rescind petition or add/delete as appropriate to the type of tag service and the tag's status for the particular file.</p>
<h3>finding duplicates</h3>
<p>system:similar_to takes two arguments: a hash and an integer representing max hamming distance (0 means exactly the same, 64 means everything. 5 is good for finding dupes). You can quick-select it from a file's right-click menu. It returns all images that are <i>very</i> similar to the hash. For example:</p>
<p>Here are a couple of duplicates, found despite their different resolution.</p>
<p><img src="similar_gununu.png" /></p>
<p>And some images of similar shape but not colour.</p>
<p><img src="similar_icons.png" /></p>
<p>If you are careful, you can find images that look only <i>somewhat</i> like your hash. You get a lot of false positives with hamming distance of much more than 12, though.</p>
<p><img src="similar_gununus.png" /></p>
<p>I will, <i>sometime</i>, write an algorithm that says 'show me all the dupes currently in the database'.</p>
<h3>PIL errors</h3>
<p>At some point, you will probably encounter a PIL error when importing a file. PIL is the Python Image Library, the code I use to manipulate image files. Some files are kooky, and just won't load with it. I can't fix these errors, since PIL is not mine. Just gotta deal with it.</p>
<p>If the PIL error'ing file is one you particularly care about, I suggest you import it into photoshop or similar and save it again. Photoshop should be clever enough to parse the file's weirdness, and then it'll hopefully save again to a simpler format that PIL, and hence the client, will be able to understand.</p>
<h3>busted up gifs</h3>
<p>Animated gifs are a real pain in the neck. There are several loopholes in the standard that permit odd palettes and colourspaces, and PIL has a hard time parsing it all. I try my best to compensate, but some still break for reasons I can't fathom.</p>
<p>So, some gifs will have a coloured first frame but grey frames thereafter; or they will have odd washy noise all over; or they will just be black. The file isn't broken, the client is just looking at it wrong.</p>
<h3>setting a password</h3>
<p>the client offers a very simple password system, enough to keep out noobs. You can set it at <i>database->set a password</i>. It will thereafter ask for the password every time you start the program, and will not open without it. However none of the database is encrypted, and someone with enough enthusiasm or a tool and access to your computer can still very easily see what files you have. The password is mainly to stop idle snoops checking your images if you are away from your machine.</p>
<h3>the client's server</h3>
<p>The client runs a very simple http server. I want to do much more with it in future.</p>
<p>When you boot the client, it will try to host a service on port 45865, which will respond to /file and /thumbnail requests just like a file repository, but without needing an access key, and only to localhost (127.0.0.1).</p>
<p>For instance, the following image (6c0ae65894c7a5ffd686f54cc052326b8ea188a691a1895b2f88b7c60a07f13f.jpg, in the help dir) is served here from disk:</p>
<p><img src="6c0ae65894c7a5ffd686f54cc052326b8ea188a691a1895b2f88b7c60a07f13f.jpg" /></p>
<p>And here it will attempt to load from the client:</p>
<p><img src="http://127.0.0.1:45865/file?hash=6c0ae65894c7a5ffd686f54cc052326b8ea188a691a1895b2f88b7c60a07f13f" /></p>
<p>For more information, check the image's two urls. It will of course only display in the second case if you import it to the client and have it running when you load this page. You can copy the second image's url and replace the hash with that of any other file in your collection and it should work.</p>
<p>If you run multiple copies of the client, you can change the port number in options.</p>
<h3>a note concerning memory usage</h3>
<p>the client does a lot of caching. It eats plenty of memory, and if you go crazy you can crash the program. A default-sized 4000-strong thumbnail pane is really just a 250MB-ish bitmap once you've scrolled through it all, so leaving a dozen large searches open will start pushing your OS's 32-bit upper memory limits. If you find the client crashing, slow down a little or reduce the max cache sizes and thumbnail dimensions in options.</p>
</div>
</body>
</html>