/hydrus/ - Hydrus Network

Archive for bug reports, feature requests, and other discussion for the hydrus network.

Index Catalog Archive Bottom Refresh
Name
Options
Subject
Message

Max message length: 12000

files

Max file size: 32.00 MB

Total max file size: 50.00 MB

Max files: 5

Supported file types: GIF, JPG, PNG, WebM, OGG, and more

E-mail
Password

(used to delete files and posts)

Misc

Remember to follow the Rules

The backup domains are located at 8chan.se and 8chan.cc. TOR access can be found here, or you can access the TOR portal from the clearnet at Redchannit 3.0.

Uncommon Time Winter Stream

Interboard /christmas/ Event has Begun!
Come celebrate Christmas with us here


8chan.moe is a hobby project with no affiliation whatsoever to the administration of any other "8chan" site, past or present.

(4.11 KB 300x100 simplebanner.png)

Hydrus Network General #2 Anonymous Board volunteer 04/20/2021 (Tue) 22:48:35 No. 15850
This is a thread for releases, bug reports, and other discussion for the hydrus network software. The hydrus network client is an application written for Anon and other internet-fluent media nerds who have large image/swf/webm collections. It browses with tags instead of folders, a little like a booru on your desktop. Advanced users can share tags and files anonymously through custom servers that any user may run. Everything is free, privacy is the first concern, and the source code is included with the release. Releases are available for Windows, Linux, and macOS. I am the hydrus developer. I am continually working on the software and try to put out a new release every Wednesday by 8pm EST. Past hydrus imageboard discussion, and these generals as they hit the post limit, are being archived at >>>/hydrus/ . If you would like to learn more, please check out the extensive help and getting started guide here: https://hydrusnetwork.github.io/hydrus/
https://www.youtube.com/watch?v=i_u3hpYMySk windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v436/Hydrus.Network.436.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v436/Hydrus.Network.436.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v436/Hydrus.Network.436.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v436/Hydrus.Network.436.-.Linux.-.Executable.tar.gz I had a great few days mostly cleaning and fixing things. If you sync with the PTR, update will take a minute this week. macos release polish I cleaned up the new macOS release. It seems to have launched and otherwise generally worked last week, but there was a bug in finding the specific database location macOS users are used to. Without the '--d' launch parameter, it was creating an empty new db inside the app, in the 'db' dir hydrus would normally use (and the really old App used to use, if you remember that), and hence would say 'hey, this looks like the first time you are running the program...' on boot. I have fixed the 'I am running in an app' detection and the ~/Library/Hydrus database path calculation routine, so everything should be back to normal. It also has the old readme and Applications shortcut in the dmg, and the filename should be fixed too. I expect this to be the only macOS release I put out from now on. Let me know if you have any more trouble! miscount fix Last week, I made the number in the 'pending (1,234)' menu title add up in a more efficient way. Rather than counting raw mapping rows every time, it uses a table of pre-computed numbers, the same used for autocomplete results. It turns out there were some legacy (from a long time ago) miscount bugs in there for some users. This resulted in a 'sticky' number that would not go away even after committing. A maintenance routine exists to fix this, but it is a sledgehammer when we need a scalpel. So, I have written a maintenance routine to regen this pending data efficiently and correct these old bugs. It is basically the same as I did a few months ago with the 'display' caches during the siblings and parents work, but for a deeper level of tags. It will be run on update, along with a new thing that forces the menu's count to regen, both of which can now be accessed from database->regenerate menu in case we need them again in future. If you sync with the PTR, it may take a minute or so to finish. I hope this will fix the issue completely, but if you still have a bad count, or if your count drifts off zero again over time, please let me know! underscores After discussion with some users, I have added an experimental setting to options->tag presentation that replaces all underscore characters in tags with space characters, as long as you are in 'front-facing' UI like regular search pages or the media viewer. It works on the same system as the 'hide namespace' option--and siblings--in that you still see the raw truth in manage tags and other edit locations. This setting is experimental since it will add a bit of CPU lag to tag presentation and may result in some seemingly duplicate rows. I have long planned to fix the underscore issue with a really nice system, but I was convinced that adding a hacky system in the meantime would be a good thing to play with. If you care about this issue, give it a go and let me know if you run into any problems.
full list - macOS: - I fixed an issue with last week's Big Sur compatible release where it wasn't finding your old database correctly--it was defaulting to a different location, so without a specific launch command otherwise, it started a fresh db and said 'hey, looks like first time you ran the program'. if you are a long-time user of hydrus, please install and run 436 as usual, it should figure out your old db location correctly as ~/Library/Hydrus without any launch command override needed - If you never ran any of the old macOS builds, and you started using hydrus for the first time on macOS last week with the experimental Big Sur compatible build, your brand new database is in a funky location! don't update yet, or you will delete it! You will want to copy your .db files and the client_files folder from inside_the_435_app/Contents/MacOS/db to ~/Library/Hydrus, which should for most people be /Users/(YOU)/Library/Hydrus. feel free to ask for help if you can't figure this out - fixed a 'this is macOS' platform check for newer macOS releases, which ensures the 'userpath' fallback is correctly initialised to ~/Library/Hydrus - fixed the new macOS github workflow build script to tell hydrus that it is running from inside an App, so it knows to default to the userpath fallback correctly - the macOS build now has the old filename - it also has the ReadMeFirst.rtf file and Applications shortcut - collected the new build-related files in static/build_files, which will likely see more files in future - . - pending tag cache regen: - two new maintenance tasks are added to the database->regenerate menu--one that forces a recalc of your total 'pending' count as used in the pending menu, and one that recalculates the cached pending tag mappings for storage tags (just like the display one added some time ago, but one layer deeper). the menu entries are relabelled appropriately - these routines will be run on database update, and should correct the bad pending menu counts many users discovered last week (the new efficient way that the pending count is calculated exposed some legacy bad cached pending storage mappings entries. we'll see if they come back, or if this is just clearing up bad counts hanging around from ages ago) - the quick pending mapping cache regen routines take a little longer to initialise now, but they now clear out surplus tag data, rather than just regenerating the 'correct' tags - . - misc: - added an experimental setting to _options->tag presentation_ to replace all underscores in tags with spaces. this is just a render rule, so it will only apply in front-facing 'display' contexts (a bit like how siblings work in search pages, but you see the truth in _manage tags_), will consume a little more CPU with big lists, and may result in some duplicate rows, but let's see how it goes. this is basically a quick hardcoded hack until there is a more beautiful solution here - in the two 'Duck' dark QSS styles, removed fixed font size on button labels that wasn't scaling on high DPI screens - the filename tagging panel now shows parents and siblings correctly on the 'tags for all' and 'tags for selected' taglists. I'd like to show siblings and parents in the file list above in future, but it'll be a bit more tricky to do neatly and without megalag - GUGs and NGUGs now report their reasons for not being functional in the downloader selector list and subscription errors. typically this will be a missing url class or an url class missing a matching parser, but more complicated example-url-parsing errors will also be outlined - fixed a bug in the client api in the set-cookies call when no cookies are set, and ensured all cookies added this way are saved permanently (before, some could be lost if that domain was not used in network traffic before the next client shutdown) - the 'refresh account' button in _review services_ now works on the new async system. it presents errors nicely - a repository's current update period is now stated in its review services panel - review services now says 'checking for updates in...' rather than 'next update due...', which is more accurate and will matter more with small update times - fixed some false positive instances of 'this server was not a tag repo' error in the network engine. - the hydrus server now also outputs hydrus specific 'Server' header (rather than some twisted default) on 'unsupported request' 404s and any other unusual 'infrastructure' 4XX or 5XX - if the repository updates in the filesystem are lacking some required file information when calculating what to process, the client now queues those files for a metadata regen maintenance job and raises a cleaner error - just as a safety measure, if a repository ever happens to deliver a metadata update slice with a 'next update due' time that has already passed, the client now adds a buffer and checks tomorrow instead - a new program launch argument, db_transaction_commit_time, lets you change how often the database's changes are committed to disk. default is 30 (seconds) for client, 120 for server - altering the repository update period now prints a summary of the change to the log - updated the ipfs links in the help - updated the main help index.html and the github readme.md with the user-run repo and wiki at https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts next week I may or may not be tied up with IRL stuff for a bit. Once I am back to things, I will keep working on smaller issues and get started on the pre-work for multiple local file services. There are several hundred locations where the 'my files' service is hardcoded as the local file reference, so a decent part of this work, before I get to file service migration and new location import options, will just be putting some time into ancient code.
Just updated to the new version. The ghost-pending-tags issue seems fixed. Thanks!
I found a small problem with watchers. The status column of the watchers list doesn't sort by actual time when you click on it (to sort by status). Instead, it seems to sort by the first number of each watcher in the list, so for example, "15 hours" is treated like it's bigger than "6 days".
>>15854 As far as I know internally the status isn't "updating at X" where X can be sorted, it's "an update is planned at some point in the future"; the sort is then made from the subject, alphabetically. Could this be what you're seeing here? (I'll state here that I personally like this behavior)
>>15855 Actually you're right. Sorting by status doesn't sort by status at all. It's just identical to sorting by subject. I wish there was a way to sort them by status, so that the ones closest to being updated would always be at the top (or bottom) of the list.
can someone make a downloader/parser for https://blacked.booru.org/ please one exists for bleachbooru but not blacked
has there been any consideration about offering an option to compress backups, then decompress upon re-importing (no loss of quality, or hash changes)? realistically, how much space could it save? could it drop a 200gb backup to 150 or 100gb? If so then it's worth it imo, but just dropping it from like 200gb to 290 not so much.
>>15858 i'd also suggest adding progress bars to popups such as backups, maintenance jobs, etc. currently it's just a small box with no indication of how far along the process it is through, or an eta of when it will be done.
>>15858 I use ZFS to compress all files managed by hydrus. Using the zstd-19 (best compression) algorithm, I get a compression ratio of about 1.10. Of course, it depends on what you are actually storing though. gzip-9 was about 1.14. >>15860 see >>15852
Is it completely safe to stop a manually initiated (full) vaccum? There is no stop/abort button, just the Windows X button the close that dialog. Also are there any benefits to doing a full vaccum every now and then? Or are the gains negligible?
>>15861 >I use ZFS to compress all files managed by hydrus. This is actually a great idea, I haven't messed with much outside of the realm of ext4 yet. I planned on using ZFS on my future server build, obviously play around with it a little before hand. But I was always curious use cases for features like this in ZFS, I guess this makes sense. How much of a toll does it put on your CPU and drives? The only issue I see with this, is it's not as universal say for users running Hydrus on Windows. >I get a compression ratio of about 1.10 I'm honestly too stupid to understand compression ratios. Do you have a real world example of a 1.10 ratio? Like xGB becomes xGB?
>>15861 >>15863 Also is it gonna screw with all the hashes of my files? Like if I only compress my backup folder, is the backup file, going to have a different hash after the compression/decompression than the one in Hydrus (or a copy of that file located somewhere else)
>>15863 >Do you have a real world example of a 1.10 ratio? On ext4, 110G of files takes up 110G worth of space on your disk. With their ZFS / zstd config. their 110G of files takes up 100G of space, saving 10G. Look for "data compression ratio" on Wikipedia, it's simply "ratio = uncompressed / compressed". Not trying to start a flame war, but I personally use Btrfs, also with zstd, and I'm "only" getting a 5% (so 1.05) ratio, mostly because of incompressible files. >>15864 No, both ZFS and Btrfs use what's called "transparent compression", meaning that even though the file is stored compressed on your disk, the OS will see it as a normal file with its normal hash. As a side note, this is also known to mess with tools like du (because they count what they see, not what is stored), which you have to replace with compsize on Btrfs for example. Of course, there's a CPU cost to all of this, but my machine is pretty beefy so I'm not feeling it; ymmv.
What can the client API do? I might try to make an automatic reencoder if I get enough free time, but that would require searching for files based on tags and filetype, exporting the file paths, importing files from a folder, mapping tags between files, setting file relations, adding tags, sending files to the trash, and setting file relationships.
>>15858 Compressing images and videos will do jack shit. You may save a tiny bit of space from the few files that can be compressed, though. Maybe 200GB to 199GB or so, definitely not 150GB. Might save another tiny amount by compressing into a single archive file as well, but that's only useful for backups.
I'm planning on transitioning from the Hydrus built in backup to the third-party backup system that I use for my other files, (deja dup) since you said those are better anyway, but I have 2 questions: When running the third-party backup, is it safe to still use Hydrus, or at least have it open, or should Hydrus not be running at all for the duration of the backup? The help section of the Hydrus website mentions a few different things that you need to back up, but it confused me because they seem contradictory. What are you supposed to backup when making a backup of Hydrus? Do you just backup the entire application, or is there a specific directory where the database is stored, and you can just backup that?
>>15867 10% is not something I would call "jack shit", but it really does depend on what data is stored. I have a lot of images and videos and get 10%. Compression and decompression will however take a fair bit of CPU time, so I wouldn't compress it if I had to do it every time I take a backup. But with next gen filesystems, why not? ZFS even checks if the compression would be worth it and doesn't compress files unless a good ratio can be achieved.
>>15862 it's still going bros >.< it says I can't abort it, unless I hard kill hydrus will it fuck up my db
>>15870 I did it multiple times before and nothing happened to mine. I don't know if that means it's safe or if I just got lucky though.
Hi. File permissions in tar.gz for Linux are too broad. Should you maybe do something like this after the compilation? #!/usr/bin/env bash declare -r WD="/path/to/your/hydrus" find "${WD}" -type d -execdir chmod -c 755 {} \; find "${WD}" -type f -execdir chmod -c 644 {} \; chmod 755 "${WD}/db/sqlite3" chmod 755 "${WD}/bin/swfrender_linux" chmod 755 "${WD}/client" chmod 755 "${WD}/server"
>>15853 Thanks m8, had several reports now, it seems my fix covered it all. Please let me know if it comes back. I think it was all legacy stuff, but we'll see! >>15854 >>15855 >>15856 Thank you for this report. Yeah, when I was figuring this stuff out, I hacked in that behind the scenes, the values for DEAD/working/pending/checking in xxx are actually like -4, -3, -2, -1 or something. Since all the -1s are equal, it then secondary-sorts by the columns in order, so basically the subject. The 'checking in xxx' text is actually decoration on a blank 'status' of 'not working atm'. Updating it so the actual check times sort by time due is a great idea, I'll update it. >>15857 If you feel brave, you may be able to figure this out yourself! Check the url class and gallery url generator (gug) dialogs under network->downloader components and duplicate everything for bleachbooru and just update all the url info to the new domain, then manually set the 'url class link', and I think you'll be good! >>15858 >>15867 >>15869 My general policy here is backups/compression/encryption aren't really my wheelhouse, and there is a ton of third party software that does it great already, so I should be very careful putting my own time into reinventing the wheel. If you have a complicated situation or requirement, I recommend you look for other software that can do backup and compression. I have a little guide here: https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#backing_up tl;dr: FreeFileSync is great. As said, lossless compression for media tends to be not great, since it is already well compressed. The database files themselves can be compressed very well, usually at least 50% savings. 7zip is fine.
BTW, to the Anon talking about excess writes in the last thread: thank you for bringing it to my attention. I was skeptical that file imports were causing too much write activity, so I did some IRL tests on my big (2 million file) client. I have noticed on and off that it has sometimes had a bunch of read and write i/o stacked up when I have casually looked, but I always chalked it up to PTR processing. After my tests, I believe bigass clients, particularly those with A) big UI sessions and B) thread watchers or other downloaders doing work, continually changing the session, will result in a whole bunch of excess writes due to 'last session' changing and saving by default every 5 minutes. Please try increasing your auto session save time up to 15 minutes or higher (options->gui pages). I have now started a plan to break up the monolithic session save, which has outgrown the initial object prototype in the same way subscriptions and the bandwidth manager did. I will split up session save to be more granular, saving separate objects per page and only on changes, and I believe this will reduce writes significantly on big clients. Furthermore, this accelerates my longer term plan to have continual lightweight passive CPU and HDD tracking on all jobs, a bit like how your phone will track app battery and data usage, so all hydrus users will be able to load up profile pie charts and we'll get a better idea of where the latest bottlenecks and resource hogs actually are, rather than guessing and testing so much. Thank you again for your comments and help.
>>15862 >>15870 >>15871 It is generally safe to force-quit hydrus. Usually the worst that can happen is losing 30 seconds of work. There's a small chance Hydrus might complain when it boots up again, or take a minute on the boot splash screen to put itself back together, but it'll recover. SQLite is really great at recovery. Nothing should be corrupted by a process kill, the chances are so remote that they aren't worth talking about. Nothing should be damaged. Because of something special I do with the separate database files, there is a small chance (I'd estimate miniscule chance in normal situations, less than 1% if you quit during PTR processing) that some files may get a transaction but others will roll back, in which case hydrus will generally recover fine, but may end up moaning and wanting to do some PTR reprocessing or something. The bad thing you don't want is for your computer to suddenly lose power. All bets are off in this situation, and if your hard drive was busy writing 150MB/s at the time it lost power, it could well corrupt some pages in your database. These are most of the problems I deal with when I help people. Sometimes the damage is completely recoverable with some terminal work in install_dir/db, sometimes is a real pain in the neck and you better hope you have a backup. Get a backup and a UPS for your computer, then you are comfy. I think I am going to disable auto vacuum. It isn't so useful overall, and often ends being more trouble than it is worth. You can turn it off under options->maintenance and processing.
>>15866 I think you can do everything there but file relationships and delete, maybe you'll need some hackery dackery script-side client_files path variable to figure out hard drive path, if you want to read off disk rather that get the file over the API. File relationships and more file action commands will come--I am slowly filling out the API and want to add basically everything to it. Here's the full list of commands atm, I keep this updated with versions: https://hydrusnetwork.github.io/hydrus/help/client_api.html >>15868 Here's my guide: https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#backing_up 1) Turn off the client when you backup. I do it every Wednesday, before I update. Takes about 10 minutes to scan and 10 minutes to update a 2 million file db to an 8TB USB drive. Do not use a cloud service that continually watches and updates a directory unless you can ensure it only runs when the client is off. 2) Back up your install_dir/db folder. If you have moved stuff with database->migrate database, then have a copy of all those places too. As simply as possible, you need to backup: The four client*.db files The 256 'fxx' sub folders under client_files. Which by default are under install_dir/db. If you have copies of them, we can stitch a client back together for you. Note if you are on macOS, your db will be stored in ~/Library/Hydrus instead of install_dir/db. Hit file->open->database directory to see for sure! >>15872 Thank you, I will check out what I do and update my script!
>>15876 >Do not use a cloud service that continually watches and updates a directory unless you can ensure it only runs when the client is off. Does this also apply to the backup directory? For example, will it fuck up if I setup rSync to read only my Hydrus backup directory, to another server
>>15875 >I think I am going to disable auto vacuum. It isn't so useful overall I had ran this manually, I was curious to see if I would see any benefits from doing it. It said only a few hours, but that turned into like 2 days. I just force exited it and things seem fine. I did notice a bunch of errors behind the job dialog before quitting, wondering if maybe it got stuck dunno. I would check if you have some kind of abort if it encounters errors, as well as adding a progress bar. >>15875 >sometimes is a real pain in the neck and you better hope you have a backup. of course, but I am getting to that point where I need to buy a new one lmao. I'm downloading so much.
Wanted to throw this here incase it got lost on the other thread, someone made a new booru client for Android and supports Hydrus. Also FLOSS unlike Animeboxes. https://github.com/NO-ob/LoliSnatcher_Droid
(60.33 KB 882x731 e36.jpg)

why does hydrus show a total of 200gb in how boned, but my backup is 250gb? does how boned not show tag database size stats? can that be added there please. also add an tooltip explanation of what triggers being "boned" or not. also when you click update backup, can a popup show showing how much space the backup is currently using, where it is currently located, and how much it will grow when you update the backup? current backup size: 250gb estimated post backup size: 300gb backup path: /dev/sdb1/backups/hydrus do you want to continue with the backup? yes or no.
>>15880 Boned is how much is in your inbox versus your archive. It doesn't show the extra stuff like thumbnails and tags. Your backup might also be bigger because you've deleted files since then.
I just used PixivUtil2 to download someone's pixiv, to get the ugoira, but in importing, virtually none of it matches the hydrus download of the same pixiv. It's probably reproducible with any account, but PixivUtil2 downloads so fucking slowly, especially in this case, so I will just use the one account I used here. https://www.pixiv.net/en/users/515040 pixiv id:515040 (1,693) 1,739 successful (345 already in db) Only 39 of the files were webms, the rest are just images. Only 345 of all files overlapped between hydrus and PixivUtil2. Hydrus can't download pixiv ugoira at the moment. To me this is an enormous waste of space. Never doing this again. I know it's probably because pixiv removed metadata from their images at some point: https://github.com/Nandaka/PixivUtil2/issues/807 But I didn't expect PixivUtil2 to magically download the old images, where hydrus downloads the new ones. Or maybe something else is happening here to cause it.
>>15881 >Your backup might also be bigger because you've deleted files since then. can't check atm, but I'm almost positive I don't have an extra 50gb of deleted files. if anything like 5gb is deleted files. I usually perma delete stuff when I do. If I delete them in Hydrus, then run an update backup, deleted files should be removed from the backup too. So I have zero idea why the backup would be +50gb
(81.97 KB 331x251 well shit.png)

I assume the hydrus companion browser addon doesn't work with very old firefox versions? I'm using Waterfox Classic, which uses the legacy addons.
>>15884 >I'm using Waterfox Classic Consider Librewolf. https://librewolf-community.gitlab.io/
>>15885 >No Telemetry >LibreWolf is always built from the latest Firefox stable source (which has forced google telemetry)
(18.17 KB 253x255 areyoubraindameged.png)

>>15886 >forced
>>15887 https://archive.li/hF6KB What would you call shipping it with google analytics on because "It is extremely useful to us and we have already weighed the cost/benefit of using tracking."? Sure, after much bitching you can now opt out, but by default it's still forced on the users.
>>15885 Looks like it's based on the new Firefox, which means it has borked mouse gesture support. It doesn't work on all pages, for example an empty tab. Yes that's a big deal for me.
>>15888 "Forced on by default" is quit a bit different from simply "forced". I wonder anon, do you think that variable is turned on or off in a browser that has browser history and persistent cookies disabled by default? Stop being fucking retarded, this faggot is using (((Waterfox))). Librewolf is obviously going to be less cancer.
How about an advanced inbox filter? Basically you designate keys (e.g. number keys) and what each of them do, like archive, delete, set rating, and set tags. Maybe have all other shortcuts that use these keys be ignored within the filiter for simplicity sake. I often sort my files between archive, trash, files I have to crop, and files I have to mess with (e.g. zips and psds), and there isn't a good way to do it currently.
>>15891 >files I have to crop Can you provide context to this one? I have cropped images before too. but was called autistic for it. Didn't know anyone else does this.
>>15892 For the most part it's either watermarks like the second pic or shit that ruins the pic like the first one. Also long videos where I don't care about the overall structure (e.g. JAVs).
>>15893 And for comparison this would be the end result.
>>15893 >>15894 It was an offhand question, but I don't think our use of cropping is comparable at all. First of all, for examples like your right image, I have in the past come across an image that just has a bar the hosting site added, and I never found another source. But I don't remember what the image was by now. But for virtually everything else, I have succeeded in reverse image searching and finding another source. Let alone that for this specific example, when I reverse searched with yandex (clicking the shield top right to switch from "moderate" to "unsecure" for uncensored results), I think I maybe found a source for you of some sort: https://namethatpornstar.com/thread/715670/ >We Live Together – Alyssa Reece, Dani Daniels & Elisa - Touchy Feely Googling that shows a video featuring them in that outfit at the first result, but finding an original source for the image set must be possible with these tags. For "shit that ruins the pic", that requires far too much tact for me to've ever done that. I've stitched images before, though, but to me that's slightly different. I used to just crop habitually, like, so much. I've recently really slowed down on it, but you can see where I once brought it up and was called autistic for it here: https://archived.moe/h/thread/5844953/#5848468 I brought it up again elsewhere and actually wasn't bullied for it: https://desuarchive.org/trash/thread/32822723 But yeah, it's not the same as you at all. For me it's 99% just a plain crop.
>>15895 >that requires far too much tact for me to've ever done that While there's more autistic stuff I have done, a lot are just rectangle select -> crop to selection edits, like this pic for example. >archive Yeah, I'd classify that as autism. I can somewhat understand that given that the area is more focused and therefore tags are more specific it's not like there aren't benefits, but that looks kinda fucky due to the simplistic crop which triggers my autism,, and negates all benefits from third party tagging such as tagging sites and the PTR.
>>15896 Listen mate, I am way too incredibly tired to pretend to give anyone the benefit of the doubt anymore when they use "autistic" as an insult. It literally means nothing but that you're socially unacceptable. That's it. Literal nothing else. To call someone/ something they do autistic is to say you have nothing to say but parrot what's socially acceptable. But to lazily finish the post otherwise, your spoilered sentence is largely incomprehensible to me anyway, and doesn't seem to've made a coherent point besides "and negates all benefits from third party tagging such as tagging sites and the PTR". I don't sync to the PTR, I crop for viewing experience. I also don't see why a crop from a tagged image would lose the tags, I could just copy them over, and not cherrypick what redundant tags to remove. Either way, to me a panel of a doujin is now viewable as if it were any other image. Buzzwords of "autism" super convince me that I'm evil for doing this, man.
(90.09 KB 1872x813 Untitled.png)

I just realized my "url import" page (which I only use via "hydrus companion" > right click > "send to hydrus") hasn't imported a damn thing since I updated hydrus the same day the latest release dropped, six days ago.
Did Sankaku do something to break whatever default download Hydrus uses? All sankaku links are giving me "ignored - could not find a file or post URL" On that note, is it possible to view the default downloaders logic included in hydrus? I know you can import/export downloaders, but I don't see the already included downloaders in the menu.
>>15866 I have some bare bones of an autoreencoder if you want to mess with them. This was a personal project I wrote and only ran once to do a bulk reencode. YMMV, watch your step, slippery when wet, etc. https://anonfiles.com/5bB2t8t6ue/app_js https://anonfiles.com/B3Betft2u2/hydrusconfig_json https://anonfiles.com/P8B3tet6u6/package_json
>>15898 I mean I guess I'll just download these images through other means, I thought there would be a release after 7 days since the last one, which might've fixed this.
I had a good week fixing bugs and cleaning old code. Client performance is improved for large sessions, particularly those that have 'collected' page media, and I got started on multiple local file services by overhauling the core file delete/trash/undelete system. As a neat side-effect, the client now remembers when you delete files. The release should be normal time tomorrow.
>>15898 >>15901 Did the page get paused somehow? Maybe a misclick? It looks like URLs have been queued up, but if they are sitting on that blank 'status', it could be the file queue on that page is paused. There should be a little pause/play icon button on the management panel on the left side of the page. If it is not paused, does the page itself have any status, like 'network traffic is paused' or 'waiting on bandwidth' or 'this domain has recent errors', or similar? If it is just all blank, is there any chance you have more than 10 other very long-running downloaders in other pages running at once?
(1.08 MB 1778x1050 Untitled.png)

(73.28 KB 1778x1050 x.png)

>>15903 I just booted my client normally and kept doing as I ever was before, then only noticed it wasn't working six days after the fact, and made the post complaining right after. I opened a new page of the same type to confirm what the pause/play icon looks like at default, but that didn't matter anyway since if I toggle mines and leave it there for a while, nothing happens. But I do leave it with the pause icon displayed, to match the new page pause/play icon. I don't have any downloaders running, I keep my client open 24/7, so there is lots of downtime where nothing is actively downloading besides subscriptions. When I add something to download, it starts downloading it instantly more often than not. This "url import" page has done nothing since I updated.
I think I just reversed the import order of some offline files I dragged into my hydrus, but I haven't been able to reproduce it. Does anyone know how I did that?
I changed my shortcuts to zoom via scrolling shortly after after updating to this latest version and now it's bitching at me about dividing by zero ZeroDivisionError division by zero File "hydrus\client\gui\ClientGUIShortcuts.py", line 1238, in eventFilter shortcut_processed = self._ProcessShortcut( shortcut ) File "hydrus\client\gui\ClientGUIShortcuts.py", line 1129, in _ProcessShortcut command_processed = self._parent.ProcessApplicationCommand( command ) File "hydrus\client\gui\ClientGUICanvas.py", line 4185, in ProcessApplicationCommand command_processed = CanvasMediaListNavigable.ProcessApplicationCommand( self, command ) File "hydrus\client\gui\ClientGUICanvas.py", line 3971, in ProcessApplicationCommand command_processed = CanvasMediaList.ProcessApplicationCommand( self, command ) File "hydrus\client\gui\ClientGUICanvas.py", line 2514, in ProcessApplicationCommand command_processed = CanvasWithDetails.ProcessApplicationCommand( self, command ) File "hydrus\client\gui\ClientGUICanvas.py", line 1563, in ProcessApplicationCommand self._ZoomIn() File "hydrus\client\gui\ClientGUICanvas.py", line 1223, in _ZoomIn self._TryToChangeZoom( new_zoom, zoom_center_type_override = zoom_center_type_override ) File "hydrus\client\gui\ClientGUICanvas.py", line 1092, in _TryToChangeZoom widths_centerpoint_is_from_pos = ( zoom_centerpoint.x() - self._media_window_pos.x() ) / media_window_width
>>15906 Damn, thank you for this report. Please go back to the old shortcut and I'll see what is going on here.
https://www.youtube.com/watch?v=FfBdUvVQpNQ windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v437/Hydrus.Network.437.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v437/Hydrus.Network.437.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v437/Hydrus.Network.437.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v437/Hydrus.Network.437.-.Linux.-.Executable.tar.gz I had a good week mostly fixing bugs and optimising. It will take a couple of seconds to update this week. all misc this week I reduced a heap of UI lag on clients that have pages with a lot of collected (like 'collect by creator') media. If you often have five or ten thousand files collected and you noticed your client was getting choppy just when running some downloaders, I hope this improves things. Let me know how you get on! I started real work on multiple local file services. Most of it is boring behind the scenes stuff, but as part of it, I overhauled the trash system this week. A heap of logic is improved, it is ready for more than one 'my files' service, and now hydrus remembers when files are deleted. Delete timestamps have never been recorded clientside, and unfortunately we cannot recover old information retroactively, but it is stored for all deletes from now on. Whenever the client wants to say 'this file was deleted', it should now have 'at an unknown time' or a nicer '3 days ago' suffix. A second neat thing with the improved deleted files storage is I hope in the nearish future to let you search deleted files. This is a rare, clever query, like 'all known files', but there will be some kind of button you can press to flip your 'my files' or 'all local files' search to go through what has ever been removed from them. 'system:file service' will get similar improvements. To reduce confusion, I renamed some hydrus network concepts across the program. The 'access key' (secret password for account), 'account key' (account identifier), and 'registration key' (one time token to create an account) are now known as 'access key' (i.e. no change), 'account id', and 'registration token'. There is more work to do here, particularly improving server setup and account management workflows to suit the user (rather than my technical ease), so I will keep at it. In a related topic, the PTR is updating its accounts. The public account is moving more towards a 'read-only' account, and accounts that can upload siblings and parents (and perhaps tag petitions, eventually) will be individual to you and freely auto-creatable in manage services. This is mostly an attempt to make janitorial decisions easier and more accurate, since at the moment everything on that side is merged due to the shared account. Permissions have not been used much in hydrus network yet, and the workflows and user notifications here are bad and buggy. Please bear with me as I iron out the problems and make it all nicer to use.
full list - misc: - hydrus now keeps a track of when files were deleted! this information has never been recorded clientside, and it is sadly not retroactively recoverable, but it is stored for all deletes from now on. on occasion, when hydrus says 'this was deleted from xxx', it will now have 'at an unknown time' or a nice '3 days ago' string attached. it will take a few seconds to update this week as the new table data is created - the 'trash' panel on review services now has an 'undelete all' button - fixed a typo error in manage services when auto-creating a service account when more than one type of account can be created - the thread watcher page now sorts the status column secondarily by next check time (previously, equal status would sort alphabetically by subject as a fallback secondary sort) - I have renamed some network concepts across the program. before we had access keys, account keys, and registration keys--now we have access keys (secret password for account), account ids (identifier for account that jannies may need), and registration tokens (one-time token used to create a new account). I hope this reduces some confusion - reduced some overhead when fetching media results for a search, and when refreshing their tags on major content updates - fixed a 'no such table: mem.temp_int_hash_id_1'-style database error state that could persist for 30 seconds or more after certain rare rollbacks - fixed the FlipFlip link html in the client api help - fingers crossed, I fixed that bad Applications shortcut in the new macOS release - fixed a couple more instances of 'pulsing' progress gauges. now they should be blank - . - more efficient updates in sessions with collected media: - several updates this week should reduce client UI lag when the session contains any pages with a lot of collected media, particularly when you are also running several downloaders (which spam all sorts of content updates across the client): - the content update pipeline now tests collections for their files before content processing, and now filters down to process just the updates in a group that apply - collections' post-content-update internal data regeneration routine now has more options for fine regen (e.g. no need for tags recalc if the update was 'archive file'), ignores updates for urls and notes (for which it maintains no summary), and only falls back to 'just regen everything' on file location changes - the 'selection tags' taglist now retains intelligent memory of its previous selection through collect/uncollect events, which reduces collect/uncollect lag on well-tagged files significantly - . - boring multiple local file services stuff: - I cleaned a bunch of old hardcoded references to 'my files' and related code. it is not very interesting, but there are a few hundred references to clean up and convert to a system that supports 1-to-n local services, and this week I started hacking away, mostly presentation stuff, labels on menus and so on - your 'my files' now has a separate deletion record to the 'all local files' domain. its count shows in 'review services', and for the moment will just be 'all local files' plus the count in trash, but this will become more important when you can have multiple 'my files' - behind the scenes re-jiggering means that the deletion record now records deletion time and original import time. delete and undelete transitions are neater as a result - logically, files are now generally no longer moved to the trash nor undeleted from there, they instead fall there when they are in 'all local files' but no longer in any local domain, and are undeleted back to a specific service. a bunch of awkwardness is cleaned up, and import/delete/undelete content updates are regeared and ready for multiple local file services - a whole bunch of little things have been fixed and changed behind the scenes. I cleaned file service code in general as I went. examples of little things fixed: - - a 'delete and do not keep a deletion record' action now correctly does not change the cached number of deleted files as reported in review services - - the 'clear deletion record and try again' 'remove from trash' component now uses a unified and improved and UI-updating 'untrash' database action, with correct service count changes and UI-side status changes - - the 'clear deletion record and try again' action on downloader import queues now handles mixes of actually deleted files and files just in trash more neatly - - in the very odd situation that you are looking at a non-local file on 'all known files' and it is then imported using 'archive on import', its thumbnail and metadata now fade in correctly as archived - added some unit tests to test the new file delete/undelete transitions - cleaned up a bunch of hacky old db SELECT code next week Next week is a 'medium size' job week. I would like to try putting some time into the ancient image rendering pipeline and related systems like previous/next file prefetch. The basic media viewer has been jank and bad at zooming for too long. I am not sure I can make it beautiful, but I will try to clean some things up. Otherwise, I am afraid I have fallen behind on some messages and other administrative work. It would be nice to put some time aside to catch up on replies, clean up my immediate todo lists, and triage some priority lists, but we'll have to see. I regret that I have had trouble recently doing anything but slinging out code.
>>15909 Thanks for the update! >the thread watcher page now sorts the status column secondarily by next check time What about the 404 threads that I haven't deleted yet? Of course I know they aren't intended to be kept open forever, but now they aren't ordered by alphabetical order anymore (which makes it harder for me to find similar threads); I think they may be in a "last update" order now? Can I request a change on this behavior, maybe the return to the "simple" statuses that we had before only for the 404 / DEAD threads? Thank you!
(2.87 MB 200x234 TerryHiThere.gif)

Please repurpose the tag sibling/parent system for url classes or allow having a single url class match multiple different schemas,ok,thanks. My main motivation is that I have a bunch of files from different nitter mirrors cause they keep dying and it's a huge pain to manually move them to a single instance
>>15904 I wanna add that when I try to close the client when the "pause/play files" button is displaying a pause button, it says "1 page says: This page is still importing". But only when I toggle it can I close the client without any warnings. So it's apparently trying to do it, but it hasn't been able to since, again, I updated to this version (436). I am only restarting for the first time since then to update to the latest version again (437).
Hydrus dev, is there any chance you can properly compensate for the ".ugoira" filetype? https://github.com/Nandaka/PixivUtil2/issues/69 https://www.pixiv.net/en/artworks/69841102 Currently hydrus treats it as a .zip file, which can't be played or even opened externally vie ctrl + E, since even though the filetype has a default setting to open in Honeyview, hydrus opens it in my .zip filetype association default anyway. I added extra stuff I set PixivUtil2 to output alongside the .ugoira file, I dunno if this post can even go through with these but trying anyway.
>>15913 I think 8chan either ate the .ugoira file or I forgot to upload, trying again.
>>15914 Ok... even 8chan treats it as .zip. Maybe I didn't need to reupload, since maybe you can just change the extension, but I uploaded the .ugoira file to my mega anyway: https://mega.nz/folder/fMdAGTrZ#iwjH3qttWolCsCrmIiRpVA I also couldn't upload the "js" file to 8chan, so that's there, too.
>>15912 My "url import" page still hasn't done anything since updating btw. Also I am still partially suffering from the same thing that started/ has maybe been happening on and off since several weeks ago, where the image preview window doesn't display anything, despite an image being selected. But the condition for it this time is the image preview window works for EVERY OTHER IMAGE except the one and only image I had open in my first page. I don't know how to explain it. The first page in my hydrus is a search query that returns a single image. I have it selected, show it show up in the image preview window. It's actually from a doujin, and if I open the doujin in a new page, literally every other page of the doujin can be displayed in the image preview window, but not the single page I had specifically chosen to have displayed in the preview window. I think this happened before, and I restarted my client to fix it. But it's very annoying. My client is unusable for 30 mins to an hour after boot. I guess I will do it again anyway.
(5.92 KB 392x193 kemono.png)

Trying to download stuff from kemono.party, it's showing most ignored, and so far nothing is showing up on the right. Under network > data > session cookies, it shows I have 3 cookies that expire in a year. According to the github, I need to import my cookie.txt for the site, where can I get this in firefox? Are there any easier workarounds for this btw? This seems like a PITA. Also is there any cookie isolation or anything for privacy concerns in Hydrus?
>>15917 >where can I get this in firefox? Btw I meant without the Hydrus companion
>>15917 >>15918 I just tried copying the values from the dev console > storage, manually into Hydrus' cookies area for kemono. Didn't fix the issue. I also tried importing a cookies.txt file from the cookies.txt addon, and it just it doesn't look like a Netscape format cookies file despite it saying it is in the addon. Either way, when I added the downloader, it already had 3 cookies in hydrus so I don't think that's the issue despite what https://kemono.party/patreon/user/18726263 says.
>>15919 I notice it's showing 404 errors now though, not 403 which it was before
>>15916 The weird image preview window thing I was complaining about here did go away for the one image it wasn't working for after I restarted. But also I was terrified of it happening again, so I didn't click on the image at all until like an hour after booting, when I clicked on another image I didn't care about first, to see if it would load. I really don't know why these weird things keep happening only to me but whatever I guess. At least my database hasn't shit the bed or anything yet.
(2.42 KB 419x166 borg.png)

Hi, this is probably not even on anyone's radar but would there be a way to separate the inbox from the archive in terms of folder structure (or maybe an equivalent clever solution)? My use case is that I backup my hydrus database daily (using borgbackup), and I have a lot of subscriptions that autodownload, then I filter/delete them later. The thing is that borgbackup (and most backup solutions) keep daily delta snapshots of the data, so even after I delete the files in my inbox, they persist for an indefinite amount of time within my backups. Over time this can lead to a lot of backup inflation by storing files that I never intended on keeping in the first place. The only other thing I can think of is maybe having hydrus itself automatically back up to a directory (with only archived etc files), and then running borg backup on that new directory.
>>15909 > hydrus now keeps a track of when files were deleted Can you also keep a track/sort by when the file was archived?
>v435 >the client api now supports wildcard and namespace tags in the file search call It just doesn't work and returns an empty file_ids all the time.
(1.79 MB 360x360 1618644690810.webm)

Hydrus does not start when using Wayland on Gnome on Fedora 34. When trying to start from the terminal, it gives this error message: 2021/05/01 09:44:38: hydrus client started Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway. (client:13459): GLib-GIO-ERROR **: 09:44:39.193: Settings schema 'org.gnome.settings-daemon.plugins.xsettings' does not contain a key named 'antialiasing' Trace/breakpoint trap (core dumped) Everything works on X.org on Gnome on Fedora 34. webm unrelated.
(1.38 MB 935x1417 consider.png)

>>15926 >Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Heads up, kemono is broken because all the filies moved over to data.kemono.party
>>15877 You should be good. The problem I am aware of is that google and co may not respect various OS file locks that SQLite relies on, so it may cause bad data to be written while the client is active and talking to the database. Your regular backup files, which are not being actively written to in a clever way, should be fine to cloud backup. >>15879 Thank you, I will add this to the list in the Client API help! >>15880 >>15881 >>15883 Yeah, the boned count is just the total of the files in your 'my files', I think. You also have your thumbnail directory and the four db files themselves in the base install_dir/db directory. More info on the hydrus database structure is here: https://hydrusnetwork.github.io/hydrus/help/database_migration.html If you sync with the PTR, your db will blow up to going on 50GB eventually. >>15891 >>15892 Yes, I would really like to do this. Just generalise the current hardcoded archive/delete filter to a set of different processing rules and then let you change and add your own actions for custom workflows. This will take some time and work unfortunately, but it will get easier as I slowly improve shortcuts (particularly supporting multiple actions, like 'tag with "favourite" and move on to next file'). If you turn on help->advanced mode, you will see 'custom shortcut sets' under file->shortcuts. This was the original iteration of custom filters. They are basically shortcut sets you can turn on and off in any media viewer. Some advanced users mix in shortcut sets into their normal archive/delete, using shortcuts to tag files as they go. One user has rigged up a button-UI interface on a VNCing tablet hooked into autohotkey, to get comfy tablet touch processing while watching TV.
>>15899 I do not know what is going on here. I had this report, reproduced it once, and then my downloader was working ok again. I don't know if they are throwing up a new custom error page like 'please slow your downloads' or something. I will give it another look and see if I can catch the new page data that is being sent. If you want to see the downloaders, check the network->downloader components menu. There's GUGs, URL Classes, and Parsers. Some basic help on the whole system starts here: https://hydrusnetwork.github.io/hydrus/help/downloader_intro.html >>15912 >>15904 >>15916 >>15921 I am sorry for the continued trouble here. I am not sure what is causing that page to not work, but my best guess now is that it somehow got a 'poisoned' id or referral URL or something else behind the scenes, so the downloader system is quietly breaking or similar when the session loads. If you select those pending import items in the queue and right-click, you should be able to 'copy sources' to your clipboard. If you open a new url download page and click the paste button, it'll queue up again. If it is just that page that was somehow deadlocked, they'll start downloading as normal. If so, I recommend you then close the old page. If a new page is also broken, it might be one of those URLs somehow. Let me know how you get on.
>>15910 Thanks, yeah, I see the same in my client too. It is sorting by 'next check time' for everything, which still lingers for 404 and DEAD watchers, even though it is never used. I'll make sure it only does it for active downloaders. >>15911 Yeah. My original plan, a couple years ago when I made the new network engine, was to have a dialog like tags->migrate tags that would act as a 'URL manager' and let you merge and normalise everything in your database. It kept getting put off, because the implications and secondary systems needed by something that complex are something I can't tuck into normal work. I don't know the correct answer here. A different but related update will be going from storing 'http://example.com/post/123456' to ('example.com', 123456), and then URL rendering will happen according to URL Class rules at the time, which could change. At that point, it would be much easier to dupe or convert one set of stored URL location information to another domain, so perhaps this is better put off, as much as that answer sucks. >>15913 >>15914 >>15915 Yeah, the secret of Ugoira is that it actually is a zip file of images, and then a renderer adds in some optional JSON with variable frame timing info and pulls and shows each frame for the appropriate duration. It is the two-file issue that has been the biggest problem here for me. I forget if pixiv still deliver the JSON in a separate structure or if it is all bundled in the zip now (as I would do when I add ugoira support), but proper support here is going to have to wait for me to get stuck into the first phase of CBR/CBZ support, when I will be writing some sort of archive contents inspection system, so hydrus can start differentiating real zips from cbzs from ugoiras from some .docs. Sorry for the delay!
>>15916 >>15921 I am sorry, I hadn't read this properly. To address the preview image not showing and other weirdness, if you are the guy with the large session and many downloaders, I will have to reiterate that my best current explanation for your client's odd behaviour is that it is overwhelmed with tasks to perform and some thread scheduling is getting deadlocked or just choked. This could be a great explanation for why that download page is failing to start. I will keep optimising and improving my thread workers, but closing pages and pausing downloaders is your best strategy for now. >>15917 There are some Add-ons that'll put a button on your firefox bar to export a cookies.txt. There are slightly different formats, and it can be a further PITA to find one that is written so that the hydrus button can understand it. EDIT; ah, yeah <<3817 . For privacy concerns, do a quick read of the cookies.txt you are exporting--it should be human readable, and if it is just one site, it'll be a couple kilobytes at most. I just tested 'cookies.txt One Click' firefox add-on, seems to work well. Just does the current domain, one click to save file to your downloads folder, which drag and drops into hydrus ok.
>>15922 Not yet. A future system I will build will be a 'metadata to property' system, where you will say 'anything archived, give it a thumbnail with blue border' or 'anything with tag blah on PTR and rating bleh, add the same tag on my tags'. Essentially a logical construct that I can spam anywhere we want to differentiate files based on their metadata. When that is available, I'll integrate it into the file storage system, and then you'll be able to migrate files across different locations based on arbitrary metadata producing different score values. I expect the current work towards multiple local file services to play an important role here for several users as well. I think that borgbackup is probably a bad fit for hydrus's file storage. It might work great for the four client.*db files in install_dir/db, but yeah there is no way to curate a 'yes this is all good' file storage yet. >>15924 I am thinking about this. I always shy from storing timestamps for everything since they often just become bloat, but doing deleted turned out neat. The only small additional hiccup here is that the client doesn't actually store an archive, but an inbox, so I'll need a new data structure to store info for 'archived' rows. >>15925 SHIT. Thank you for this report, I will check into it. I thought I had all this working correct and tested, but perhaps I missed something with URL encoding. >>15926 >>15927 Thank you for this report. The different Linux flavours are beyond my expertise. If platform compatibility tricks don't work for you, but you are able to pull Arch packages, this will run you from source, which always improves compatibility: https://aur.archlinux.org/packages/hydrus/ Otherwise, you might be looking at running from source manually, which I have a guide for here: https://hydrusnetwork.github.io/hydrus/help/running_from_source.html >>15928 Thank you, I let the downloader guys know. kemono is pretty popular, so I should think an update will come to the github repo without a huge delay.
I had a gallery import page for importing pixiv artists by ID. The list of IDs was long and it took all of April to download it all. Just to make sure I got everything before setting up subscriptions for the list, I cleared the list of downloaded artist IDs and pasted the same list back in to grab what they had uploaded over the last month. Now I see that for some IDs, 'status' is DONE and 'items' is blank, indicating that the artist deleted his account between me importing last month and me importing now. My question is, how do I find the images belonging to deleted artists? I have the images locally from the first gallery run, but because I cleared the list of IDs, it seems the info that would let me find them is lost. The image tags do not include the artist ID. I would have to run into them in my inbox, or perhaps exclude all of the tags for the artists who haven't deleted their shit and dig through the leftovers. Fucking nips deleting their online accounts.
>>15930 >>15932 I can't really try to work around my deadlocked "url import" page right now, because I added a bunch of stuff to my "gallery downloader" page and that seems to pause for a long time due to bandwidth. But in a few days or so I will try.
>>15924 I was just thinking this the other day. I often import stupid huge amounts of files from several sites at once and then archive by site, and sorting by import time tends to screw with the "chronological" order I have in my head based on when I archived them. It also causes files in a series or alternate files to become "out of order" when a file from another site happened to be imported before all of the related files were.
>>15932 Have you tried the Kemonoparty down loader to ensure this is actually a me issue, and not an issue with the downloader? Or can anyone else test this?
ok so what do I need to set up to be able to see my archive from my phone? The client api and something on my phone to connect to the api?
I found a bug using Hydrus.Network.436.-.Linux.-.Executable.tar.gz I just crossed the 10,000 item count threshold and the filter line "system:everything" is gone. Restarting Hydrus won't fix it.
>>15939 It's an intended behavior. You can disable it in options.
Can I remove the inbox results in the client api on the hydrus side? Blacklisting system:inbox doesn't seem to work.
Can you provide more options for sorting/viewing subscriptions? As it is it is completely removed from the standard viewing experience, and I can't tag subscriptions in any way by saying "this artist does a lot of x subject matter", or anything. I can't just view the last 30 days of imports from any given subscriptions, anything. I can't even view what images are imported under any given subscription with the current way you have to manage subscriptions- it's just lines of text and IDs.
>>15942 > I can't tag subscriptions in any way by saying "this artist does a lot of x subject matter", or anything What do you mean? You can add tags per subscription. >I can't just view the last 30 days of imports from any given subscriptions Just add a tag and search by "time imported < 30 days" and "subscription x". > I can't even view what images are imported under any given subscription Just set it to publish the subscriptions to a page, that way whenever something is imported the client creates a [site]:[query] page with all files under it.
>>15943 I don't know what you thought I meant by saying "I can't tag subscriptions in any way by saying "this artist does a lot of x subject matter", or anything." I was trying to say I can't do exactly that. I want to tag the subscription, not each indiscriminate image the subscription imports. >>I can't just view the last 30 days of imports from any given subscriptions >Just add a tag and search by "time imported < 30 days" and "subscription x". Again, I feel you're completely missing the point of my feedback. Do you realize that in reply to my feature request, you are saying "instead of functionality to do that ever being added, why don't you bootleg it with poorer tools." I wish you at least worded this by acknowledging that what I want was different, and that this is strictly worse, instead of making me have to compare them and explain why it's worse. I don't want every single indiscriminate image from a subscription to have a tag "subscription x". This is abysmal. At this point this is no different from an artist tag. Let alone that my complaint was that this is completely removed from the "manage subscriptions" window, which was my complaint. >> I can't even view what images are imported under any given subscription >Just set it to publish the subscriptions to a page, that way whenever something is imported the client creates a [site]:[query] page with all files under it. I am truly tired. I'm sorry. I don't really want to have this conversation anymore. I just wanted to sort my subscriptions, not strictly have my request ignored completely, then told that I can do something removed from what I wanted, with no context being conveyed at it being removed at all. Nothing of what you said actually has anything to do with sorting the "manage subscriptions" window at all. You didn't even acknowledge that I wanted to sort my subscriptions in any way. My subscriptions, not the images they import.
>>15941 https://hydrusnetwork.github.io/hydrus/help/client_api.html#get_files_search_files There are two attributes in the API call for this, system_inbox and system_archive
>>15940 I found the check box. Thank you.
Tangentially related, but are there any good sites to get your shit tagged? I posted a bunch of pics throughout a few boorus around two years ago and got pretty much no tags out of it. Gelbooru is slightly better but the mods are really gay.
Right now when I select "sort by time imported" and have collections enabled, all the collections are moved to the bottom of the list. Is there a way to incorporate the collection groups into the rest of the list instead of having them grouped at the bottom?
(410.63 KB 644x1054 ClipboardImage.png)

>>15948 I tried it now and it seems to be fucked. For whatever reason collections don't seem to work with some sorts like resolution ratio and time imported. It seems to just throw them out randomly either before the individual images or after.
Is there a way to specify a date range in subscriptions? I know that certain *booru based sites support the date constraint. For example you can specify date:2_months_ago..2_weeks_ago at e621, but it doesn't work at Gelbooru. Is there any universal way to do it?
I had a great week focusing almost entirely on improving media viewer performance. I have overhauled the way images are zoomed and drawn to screen and completely eliminated the additional lag and memory bloat from zooming big images. Furthermore, the caching of rendered image data is greatly improved, so flicking back and forth between neighbouring images or different zooms is, for the most part, now instant. The release should be as normal tomorrow.
https://www.youtube.com/watch?v=LE8QKcriHH4 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v438/Hydrus.Network.438.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v438/Hydrus.Network.438.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v438/Hydrus.Network.438.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v438/Hydrus.Network.438.-.Linux.-.Executable.tar.gz Hey, this causes errors if you are running from source and using PyQt5 (PySide2 is fine)! All the releases above are PySide2, so they are ok! I will fix this for next week, so if you are source+QtPy5, please hold off for now. I had a great week overhauling the media viewer's image rendering. Zooming and navigation should be a lot smoother now! image tiles tl;dr: the media viewer now zooms and navigates with less lag and flicker Zooming in a long way, particularly for large images, has been pretty hellish for as long as the program has existed. Historically, the client drew the whole image in memory at the zoom you desired so it could quickly show you the bit it needed on screen. Of course this meant zooming in to 400% on anything above 4k was suddenly taking a very long time to set up and eating a lot of memory to do it. As images have naturally grown over time, the problem has occurred more often and was starting to affect other systems. My plan to fix this has been to break the image into tiles that then render on demand. The parts of the image off-screen are never drawn, saving CPU and memory and allowing arbitrary zoom. This is a significantly more complicated idea, and rewriting the whole rendering pipeline was always expected to be a multi-week 'big job'. I originally planned to just optimise and tweak the secondary systems and add in some sanity brakes this week, but I ran a couple of small tiling tests and realised if I went bonkers it would be possible to hack in a prototype. So I did! In the media viewer, images now draw in tiles. It works a little like a browseable satellite map, where when you zoom in and pan about you see squares of data fading in (except in hydrus they appear instantly). You should now be able to zoom in as far as you like on an image pretty quick and you won't have any sudden memory needs. Furthermore, I have written a cache for these image tiles. This saves CPU when revisiting different images or zooms, so when you flick back and forth between two normal things, it should now be instant! It still takes 20-200ms to view or zoom most images the first time, but going back to that view or zoom within a minute or so should be really smooth. The cache starts at a healthy 256MB this week. I think that will cover most users very well (in screen real estate, it works out to about 35 x 1080p worth of tiles), but you can alter it under the settings at options->speed and memory. And I did some misc work improving the rendering pre-fetch logic when you browse in the media viewer. Huge files won't stomp all over the image renderer cache any more, which should make browsing through a series of giant images far less jank. If you are feeling advanced, you can now edit the prefetch timing and distance settings too, also under options->speed and memory. I am really pleased with this week's work, but there are some drawbacks: I did it quick, so I cannot promise it is good. The most obvious bug already is that at around 200-500% zoom you start to see tiling artifacts. I know what causes this (interpolation algorithms not getting full pixel neighbour data from my simple tesselating tiles) and have a plan to fix it (adding a tile border pre-resize, and then cropping). There is also an issue when the 'virtual' image exceeds about 32,000x32,000, so I hacked a zoom block for that. There may be some weird files that render with other stitching artifacts or bad tile data. Note also that hydrus's 'Animation' renderer (the soundless fallback if you do not have mpv support) does NOT use tiling yet, so it still sucks at zooming! Please let me know how you get on! If you have a steam-powered GPU or a machine with only 4GB of ram, you might like to wait for 439 so I can address any surprise bugs or performance issues. PTR and account permissions The PTR is changing how its accounts work. The shared public account is transforming to a 'read-only' account that can only download, so if you want to upload, you'll be going to manage services to auto-create your own privileged account. This is being done to improve janitor workflow for the various petitions, which were all being merged together because of the shared account. With the recent network updates, it will soon be easier for janitors to send simple messages back to these individual accounts, like 'that proposed sibling was not approved because...'. Unfortunately, various permission and account-management code has not been tested much until now, so as the PTR guys have been trying this stuff out, I have been working to improve bad notifications and workflows. This week I rounded out account permissions testing with uploading. Hydrus no longer tries to upload content the current account does not have permission for, and if you end up in that situation, popup messages now tell you what is going on. It also catches if your account is currently 'unsynced', with instructions to fix. Similarly, under 'manage siblings/parents', you can now see and edit all tag repositories (previously, they were hidden if you currently had no permission), but you get a label telling you if you don't have permission.
full list - media viewer: - I have hacked in tile-based image rendering for the media viewer. this has always been planned as a larger, longer-term job, but the problem of large images is only getting worse, so I decided to just slam out a prototype in a week. if you have a steam-powered GPU or 4GB ram, you might like to wait until next week to update so I can iron out any surprise bugs or performance problems - images are now cut into tiles that are rendered on demand, so whenever the image is zoomed larger than the media viewer window, only those tiles currently in view have CPU and memory spent on resizing and storage. as you pan around, new tiles are rendered as needed, and old discarded. this makes zooming in super fast and low memory, even for large images! - although I am happy with this, and overall we are talking a huge improvement on previous performance, it is ugly fast code. it may fail for some unusual files. it slices and blits bitmaps around your video memory much faster than before, so some odd GPUs may also have problems. I haven't seen any alignment artifacts (1-pixel thick missing columns or rows), but some images may produce them. more apparent are some pretty ugly tile artifacts that show up between 200% and 500% zoom (interpolation algorithms, which rely on neighbour pixels, are missing border data with my simple system). I will consider how best to implement more complicated but stitch-correct overlapping tiles in future - futhermore, a new 'image tile' cache is added. you can customise size and timeout under _options->speed and memory_ like for images and thumbnails. this is a dedicated cache for remembering image resize computation across images and zooms. once you have seen both situations once, flicking back and forth between two images or zoom levels is now generally always instant! this new cache starts at a healthy default of 256MB. let's see how that amount works out IRL--I think it will be plenty - I tuned the image renderer cache--it no longer caches huge images that eat more than 25% its total size--meaning these images only hang around as long as you are looking at them--and the prefetch call that pre-renders several files previous/next to the current image no longer occurs on images that would eat more than 10% the cache size. this should greatly reduce weird flicker and other lag when browsing through a series of mega-images (which before would stomp through the cache in quick succession, barging each other out of the way and wasting a bunch of CPU). in real world terms, this basically means that with an image cache of 200MB, you should have slower individual image performance but much better overall performance looking at images with more than about 5k resolution. the dreaded 14,000x12,000 png will still bonk you on the head to do the first render, but it won't try to uselessly prefetch or flush the whole cache any more - if you are currently looking at a static image, neighbour prefetch now only starts once the image is rendered, giving the task in front of you a bit more CPU time - new options for prefetch delay and previous/next distance are added to 'speed and memory' - note this does not yet apply to the old hydrus animation renderer. that still sucks at high zoom! - another future step here is to expand prefetch to tiles so the first view of the 'next' media is instant, but let's let all this breathe for a bit. if you get bugs, let me know! - due to a Qt issue, I am stopping zoom-in events that would make the 'virtual' size of the image greater than 32,000x32,000 - . - account permission improvements: - to group sibling and parent petitions by uploader (and thus help janitor workflow), the PTR is moving to a system where the public account is download-only and accounts that can upload content are auto-generated in manage services. this code has not been tested much before, and it revealed some very bad reporting and handling of current permissions. I move this forward this week: - if your repository account is currently unsynced from a serious previous error, any attempt to upload pending data will result in a little popup and the upload being abandoned - manage tag siblings and parents will now show service tabs even if the account for those services does not seem currently able to upload tags or siblngs - if your repository account is currently unsynced from a serious previous error, this is now noted in red text in manage siblings and manage parents - if your repository account does not have sibling/parent upload permission, this is now noted in red text in manage siblings and manage parents. you will be able to pend and petition siblings and parents ok - if your repository account does not have mapping/sibling/parent upload permission of the right kind, your client will no longer attempt to upload these content types, and if there is pending count for one of these types, a popup will note this on an upload attempt - . - the rest: - added https://github.com/NO-ob/LoliSnatcher_Droid to the Client API help! - improved some error handling, reporting, and recovery when importing serialised pngs. specific error info is now written to the log as well - fixed a secondary error when dropping non-list, non-downloader pngs on Lain's easy downloader import window, and fixed a 'no interesting objects' reporting test when dropping multiple pngs - added a 'cache report mode' to help debug image and thumb caching issues - refactored the media viewer code to a new 'canvas' submodule - improved the error reporting when a thumbnail cannot be generated for a file being imported - fixed an error in zoom center calculation when a change zoom event was sent in the split-second during media viewer initialisation - I think I fixed an issue where pages could sometimes not automatically move on from 'loading initial files' statusbar text when initialising the session - the requirements.txt now specifies 'requests' 2.23.0 exactly, as newer versions seemed to be giving odd urllib3 attribute binding errors (seems maybe a session thread safety thing) when recovering from connection failures. this should update the macOS build as well as anyone running from source who wants to re-run the requirements.txt. I hacked in a catch for this error case anyway, just a manual retry like a normal connection error, we'll see how it goes (issue #665) - patched an unusual file import bug for a flash file with an inverted bounding box that resulted in negative reported resolution. flash now takes absolute values for width and height next week Back to multiple local file services. Mostly more backend cleanup and prepping File Import Options and the Client API for talking to multiple locations.
>>15952 with those PTR account changes, does that mean that, going forward, all of your uploads to the PTR will be tied and linked back to an individual account? That sounds like a pretty serious privacy concern, given that tag uploads are also tied to specific files. Also, sometimes I like to make sibling or parent submissions that I know won't actually get accepted, because I just want them for myself. With this new system, will there be a way to just make a parent/child or sibling pair, then choose to not upload it at all, just to have it for yourself? I'm not really looking forward to getting messages back from the PTR janitors saying things like "you're a dumbass" because I uploaded something that I don't really care about them getting anyway. On another note: (and what I originally came here to ask) Is there a way to set watcher pages to only show posts from that watcher that are still in the inbox? I like to archive/delete files from watchers as they come in, but I keep forgetting that files that are archived stay on the watcher page, and it's annoying to have to deselect them before archive/deleting every time.
>>15954 >with those PTR account changes, does that mean that, going forward, all of your uploads to the PTR will be tied and linked back to an individual account? That sounds like a pretty serious privacy concern I also would be heavily against any features/changes if they invade on privacy. I'd honestly prefer to keep it on a paranoid level of privacy respect.
>>15932 I got cookies.txt to import into hydrus, it says it was added. I go to a new tab in hydrus > download > gallery-dl > selected kemonoparty creator lookup > entered the creator id. It's going through and says 4/58 atm. It is showing it has 2 successful and 2 ignored. The pictures are not showing up, and stuff doesn't seem to be downloading. I see no pictures appearing on the side, and it is just lingering at sending request after 4/58. Idk what's going on. I check the file import status, and I see 2 successful status, 2 ignored. The others are empty. The two that have been ignored say 404. As I'm typing this, the downloading bar jumped and says downloading 64kb/196kb so I assume it will show 5/58 if it succeed. It got stuck at 64kb though and is saying incomplete response, was expecting 196kb but actually got 112kb, retrying in X seconds. I also just tried deleting the session cookies for kemono.party in reveiw session cookies, then reimporting the cookies.txt I grabbed for kemono.party. When I import cookies.txt it doesn't add kemono.party to the list, despite saying it successfully added cookies. After giving it a few minutes, it seemed to add 2 cookies to the list, although the txt file shows 4. Idk why it took this long to show even after hitting refresh multiple times. After doing this, and now going back and readding the query to gallery-dl, it shows X/92 now instead of /92. It also seems to be going through them, currently it's at 32/92. But it's not showing any files on the right. It also says 403 on the left, and 15 successful 88 ignored 1 failed. If I check the file import status, I see a bunch of urls, half are ignored and say 403. Other half is successful and say "found X urls". And a few are errors saying: 500: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>500 Internal Server Error</title> <h1>Internal Server Error</h1> <p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p> … (Copy note to see full error) Traceback (most recent call last): File "hydrus\client\importing\ClientImportFileSeeds.py", line 1187, in WorkOnURL network_job.WaitUntilDone() File "hydrus\client\networking\ClientNetworkingJobs.py", line 1541, in WaitUntilDone raise self._error_exception hydrus.core.HydrusExceptions.ServerException: 500: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>500 Internal Server Error</title> <h1>Internal Server Error</h1> <p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p> This is all extremely confusing, and idk what to do. I need to get this working soon, I'd highly appreciate the help please. Thank you.
the instagram downloader seems to not work partially. i tried downloading 3 accounts, all which i can see on the instagram website (public, not private, can see without login). 2 are saying error can't find profile, despite using the username exactly as provided in the url. the third account is working. would prefer not to post the accounts.
>>15956 just woke up, this says 52 successful, 307 ignored, 1 failed. No photos are showing up either. Import status shows 403 on all the ignored. The "successful" ones say "found X new URL's". So idky but I can't get kemono downloader to work. :/
>>15953 >next week >local file services >prepping File Import Options Does this mean that I will be able to import unrestricted file extensions and add a custom thumbnail?
>>15952 >>15953 New zoom is great, but it definitely needs some more work at high zooms, especially for the duplicate filter. See webm.
(27.48 KB 498x427 1.png)

I don't know if it should be considered as a bug, but if you have more than twelve subscriptions, their progress/buttons in message area stop stacking after the 12th one. Though judging by the bandwidth usage as well as the new images appearing in the inbox you see that the subscriptions are still getting processed.
>>15961 What happens if you right(or middle) click to close one?
>>15962 Yep, it closes the button and a new one appears in the bottom, so I guess everything just werks.
I have like 3 questions that may sound retarded but: You know how some tags have specific colors for categories (character = green, series = purple etc)? Is it possible to control and costumize that, like adding new categories or changing their colors? Are there any plans for Hydrus to turn around images or even edit them, even if it's basic MS Paint features? And even more specific but, is it possible to create a folder (that can exist outside the program) of files under a specific tag, whether or not they're copied from the program? The last one is like creating an Hydrus-like organized gallery but as a new folder you make for your desktop Like, another image folder but it was created using Hydrus and you could choose if it would actually bring the images from Hydrus itself or just copy them
>>15964 File > Options > tag presentation
Is it possible to make Hydrus generate names for files based on the tags it has when you begin a drag-and-drop export? I know I can go Share > Export > File and changing filenames to {tags} for example. But this would require me to export the files into a folder first, and then drag them from that folder to whatever place I want to export them to. I was wondering if there's a way to have the program automatically do this when you just drag-and-drop the files from the program.
This is probably an annoying question you get often, but how's Tor support on hydrus? I looked around but couldn't find any info on it. Any way to run it through Tor? Will $ torify hydrus do the trick?
>>15967 >Any way to run it through Tor? Install it on Tails, I guess.
>>15968 not ideal
>>15967 What exactly are you trying to accomplish? Most sites will block TOR exit-nodes, and using TOR with anything but the TOR-Browser will make you easy to identify for other websites (using fingerprinting). Hydrus does support a HTTP-Proxy, which is what you use to route traffic through TOR, so you could just route all your traffic through, but I really don't think you would get that much out of it... You also have to consider your DNS-requests, which would be handled by your operating system, not hydrus itself. The guys at torproject have thought about a lot of stuff that you are giving up by not using their browser: https://2019.www.torproject.org/projects/torbrowser/design/ So, if you want to use tor, use the browser too, otherwise you will be most likely identifiable.
>>15967 $ torify ./client.pyw doesn't work. Tried going to file>option>connection and adding socks5h://127.0.0.1:9050 to the http and https fields after unchecking "none" tried a thread on this v3onionsite as input but connection failed so it got ignored
>>15970 Well at least the ISP wouldn't know what's being downloaded or which specific sites are being accessed. And I want detachment of my identity from being associated with specific sites. Also, strength in numbers; the more people doing the same thing the better. I'm just interested in the automatic downloader tbh.
using v438, got this while switching images in the media viewer BufferError memoryview: underlying buffer is not C-contiguous File "hydrus\client\gui\canvas\ClientGUICanvasMedia.py", line 1778, in paintEvent self._DrawTile( dirty_tile_coordinate ) File "hydrus\client\gui\canvas\ClientGUICanvasMedia.py", line 1677, in _DrawTile tile = self._tile_cache.GetTile( self._image_renderer, self._media, native_clip_rect, canvas_clip_rect.size() ) File "hydrus\client\ClientCaches.py", line 552, in GetTile qt_pixmap = image_renderer.GetQtPixmap( clip_rect = clip_rect, target_resolution = target_resolution ) File "hydrus\client\ClientRendering.py", line 203, in GetQtPixmap return HG.client_controller.bitmap_manager.GetQtPixmapFromBuffer( width, height, depth * 8, data ) File "hydrus\client\ClientManagers.py", line 197, in GetQtPixmapFromBuffer qt_image = QG.QImage( data, width, height, bytes_per_line, qt_image_format )
Sorry I am late back to catching up here. My hydrus situation is an overloaded clusterfuck atm, and then IRL fell on my head for a bit. >>15934 Not sure if I understood correctly, or if this is helpful for your situation, but could you maybe do: Search for 'has url: pixiv', and maybe 'system:imported since 10 days ago' or whatever Collect by creator namespace For each collection, open the front image in the media viewer, then click the pixiv url in the top-right hover to open in your browser Pixiv should let you know if the image is deleted--does it also give the artist id there? If it does, you can then write it down Closer media viewer and hit ctrl+r on that collection to remove it from your list of creators to go through. It depends on what you exactly want--the actual pixiv id, or just the creators that are deleted. If you just want to know the deleted creators, then following known urls through the media should be simple. If pixiv doesn't let you see artist id of deleted content, but you still want it, I know a bunch of the pixiv ids are siblinged on the PTR, so if you sync with the PTR, try right-clicking on pixiv creator tags in hydrus and look up the siblings.
>>15935 I am going to write better thread debugging UI in the next few weeks to better profile some Client API stuff. That will also help your situation--we'll be able to see which workers in the thread pool are choked. Please keep an eye out for when I get to this--and please remind me if doesn't happen--and we can look into this and get some better behind the scenes info. >>15936 Thanks. As a side thing here: My big hope is to finally have 'modified date' population from sites (basically using some 'reasonable' minimum-seen-time logic from site post time), at which point we'll have a nice time-sort based on when files first appeared online. Hand in hand with this will have to be a way to retroactively populate these timestamps with a special downloader for this info, since so many of us long-time users have garbage modified dates for our downloaded files. >>15937 I haven't, and I am afraid I don't know much about it. A downloader guy was not sure about the new data domain and told me that the site is possibly dying, currently only on one server and looking for migration options, so he said we should step back for now and wait to see what happens. >>15938 Unfortunately it is a bit complicated for now, mostly in beta phases for experienced users to play with. If you are comfortable navigating your home network and setting up UPnP or another sort of port forward, check out the overall help and links here: https://hydrusnetwork.github.io/hydrus/help/client_api.html Hydrus Web https://github.com/floogulinc/hydrus-web is probably the 'best' option now for phone browsing.
>>15939 >>15940 >>15946 This confusion has happened a couple of times, thank you for mentioning it. I should make a little congratulations popup when you hit 10,000 files with a note about it. >>15942 >>15943 >>15944 Yeah, I will likely write a history in the database, a table of file | subscription, so you can later load up 'show me everything that came through sub x' in a system predicate. This has been off-limits for a while, since subscriptions were this really difficult to access monolithic object, but since the subscriptions breakup, everything there loads up quick and is generally accessible. It is on the back burner for now, but when I get some time to improve subs again, I'll be writing some better sub access and database integration, and also see about quick functions like a right-click menu option from a downloader page query to show 'this query is in sub x already' or 'add this to sub x' real quick, no need for the edit dialog. >>15947 Linking files to tags is such a generally technically complicated and man-hour intensive job that I ended up writing Tag Repositories (and hence the PTR) for it. I am afraid I am not active in any booru forums/communities in general, so I can't give confident advice on which is better or worse for a certain tagging style. >>15948 >>15949 Thanks, I'll check it out. It sorts the collections internally, so they'll sort by time imported, and then it tries to get an 'aggregate' value for actually sorting the collection thumbnails against each other. For stuff like file size it just gets the total size of the collection, I am not sure what it does for time imported, it might use min value, or it might be borked. I'll have a look and see if I can show what it is doing better somewhere in UI.
>>15950 I don't think so. A subscription is really basically just a gallery download page that isn't in a page. You'll have to see what meta tags the booru supports. Some sites just don't support some search tags because it adds a bunch of CPU on their end when doing the search and pagination. If you missed it, this seems to be their page: https://gelbooru.com/index.php?page=wiki&s=&s=view&id=26263 Some sites support an 'id:>123456', which can be useful to emulate a date search, but I don't see it there unfortunately. >>15954 >>15955 I am thinking about this. While these issues are an important part of the program, I also don't want to end up in a rabbit hole and end up fighting ghosts. In general, with the proposed account changes, I believe the worst privacy fears do not change, but the best case fears do. I have plans to mitigate the best case fears. I'll try and be complete with my current thoughts, sorry for going on for a long time: All I can guarantee is what the client does, and in the process of making an account, the client submits no data about you except your IP address, obviously, implicitly in your request. The server, operating as my code says, forgets that, and should never store IP address for any interaction on a tag repository. When a janitor leaves a message on your account or does any other action, they change a bunch of pseudonymous keys, the 64-character hex strings you see around the account UI, which is all random. So no one normally can determine anything about you as a person from account data on its face. The fear as you say is that mappings and tag siblings and parents being isolated to one account could feasibly identify someone al la the https://en.wikipedia.org/wiki/AOL_search_data_leak . Thinking about scenarios for this, I think it would have to be something like if you were an artist and tagged your images before they were uploaded somewhere. Or the old scenario of tagging pictures of your girlfriend. A server admin going through their database could feasibly connect your identity to your account id based on that info and link it to other submissions. The mitigation I want to add--for servers that are running correctly--is a kind of 'null' account, where all submissions of a certain age (say, 90 days kind of time) will get moved to the true anon account, all mixed up with each other. This helps some other stuff I am working on, where I want to revive an old 'superban' system that allows an admin to remove an account and all their submissions, to curtail future troll/complete-dumbass behaviour, but which is technically more difficult if I set the range of the superban back to the server's start date. There's also a timing attack with the shared key that I have already mitigated where simply you uploading things together at the same time means they probably came from the same client, so a malicious observer could differentiate different uploads into 'probably this all came from the same dude' chunks. Saved timestamps are now merged across an update period, so someone potentially picking through the database has no greater upload time resolution than an update period (for the PTR, that's ~28 hours, 100,000 seconds). So a properly running server should be immune to an after-the-fact timing attack on a sufficiently busy server, which the PTR certainly is. But of course I can't guarantee anything beyond what a client does. If a server admin is malicious, they could change the source code and capture your IP and use session data and timing attacks to isolate uploads from the shared key already. These attacks, though esoteric, have always been true of the shared account, and are ultimately probably true of any sort of server if you imagine a powerful enough adversary who could infiltrate TOR or whatever other mitigation you could imagine. Therefore, the 'worst case' privacy implications of moving to multiple accounts do not, I think, get any worse. The best case privacy implications (i.e. a server running my source code) will be practically mitigated by the merged anon account, I think. You can mitigate the IP Address attack, of course, by using a VPN. One pretty good mitigation if you are worried about individual accounts is to generate one and then share the access key with five people. All your submissions are then merged in database records. You could also generate yourself a new account every ninety days or something. My aim is to have at least the kind of privacy you get with an imageboard. Although we work on accounts rather than IP address, the accounts are nonetheless pseudonymous, so I am overall content. The best and most practical rule for hydrus, as with any site, is don't upload anything that would identify you personally. You stop being Anon if you post your credit card or face in a thread, so don't do that. Tag common files that have already been uploaded somewhere, nothing private, and no one will ever figure out who you are, even if, in an edge case, they pour a bunch of man-hours into figuring out that you anonymously like both pictures of korean pop stars and stinky feet. Let me know what you think.
>>15954 To answer your questions about siblings off the PTR, with the new siblings and parents options, you can add some siblings or parents to 'my tags' (or any other local tag service you create--you might like to create a separate empty one just for siblings and parents), and then under tags->manage where tag siblings and parents apply, you can set that service's siblings and parents to apply whereever you like, including a preference order so you can overrule (or eliminate completely) whatever the PTR wants if you like. For watchers, I am not sure you can do exactly that filter. The 'presentation' options under 'file import options' is closest to what you want, but they only offer 'new' or 'already in and currently inbox/archived', not 'new and currently inbox/archived'. I don't want to get super complicated with those options, but would it make sense to split that into 'show new/already in' and 'show inbox/archived'? That would solve your problem, since you could say 'show all, but only inbox'. Are there any situations where someone would want to show 'new and inbox' and 'already in and archived' at the same time? I don't think so, so I think I can simplify the options while also giving them more use.
>>15956 >>15958 As here >>15975 , I think the current status of kemono is in doubt, so even if the hydrus downloader actually is working great, it seems their server is giving 500 errors (which means 'serverside error') and other problems (and very slow downloads, it looks like), so it may just be dying or overloaded. Try clicking on the 'file import status' icon button on the downloader page. That'll bring up a big table window with all the import items. If the 'ignored' files have 'note' column information that is like 'could not connect' or '500 blah blah blah', you can try selecting and right-clicking them and hitting 'try again'. If they say something like 'the parser could not find anything!', then that could have been a text post or it could be the parser failing. I am afraid I do not know much about the site or the current downloader, so I can't offer any confident advice. Since it got that 58, seems like the gallery parser is working at least. >>15959 I am afraid not. The 'big job' I am currently working on is 'multiple local file services', which will be letting you split your 'my files' into separate partitions that you can search separately or merged. It'll allow you to make a client with clearly separated sfw and nsfw (and other) partitions. The next step in this job is to prep File Import Options and the Client API's file import to specify a designated local file service destination(s) for an import to go. Arbitrary file import and custom thumbnails are a big job and a medium job respectively that will come in the future. >>15960 Thank you, this is helpful. I'll see if I can improve that when I work on better tiling. There are also a couple of crashes which I will try hard to identify and fix this week. I also had to hack in the 32,000 pixel zoom limit at the last minute last week that I'd love to have a fix for. >>15961 >>15962 >>15963 Yeah, there is a hard limit of ten messages at once in the popup toaster. If you are advanced enough to have lots of subscriptions, I recommend you check out your subs' 'presentation' options in their edit panel. It can be helpful to have your subs not make the buttons but instead publish their files automatically straight to named pages, so the files populate nicely in the background without you having to click each button, and it frees up your toaster space.
>>15964 For custom file rotations, I have thought about it a long time. I already do some EXIF rotation stuff automatically, so I have some of the tools ready for it. It will likely come one day, but I can't say more confidently. To create an external folder, check out file->export folders. You can set up a particular file search in hydrus to be repeatedly synced with an external location, so you can set up cellphone wallpapers or a comic or a 'reactions' meme folder or something that is continually repopulated as you change tags or whatever clientside. There are a lot of ways of setting it up and it is powerful, so have a careful play with it. There is a complicated system for setting nice names, too, which is the same phrase system as the one in the thumbnail right-click->share->export->files. Just a thought, but in your case you could set up an export folder that moved anything with 'fix rotation' tag on 'my tags' to an external folder and then check 'delete files from the client after export'. You could then fix the rotation manually using GIMP or whatever and then re-import. >>15966 Yep, check options->gui, 'discord drag-and-drop filename pattern', I added it recently. You need the discord bugfix on (which is really just a 'copy files before export' command, which then allows the rename before DnD). >>15967 >>15968 >>15969 >>15970 >>15971 >>15972 Sorry, I don't know enough about TOR to say well. The proxy settings in the connections rely on underlying python 'requests' stuff and have been pretty borked for us in the past. I know that your typical consumer VPN solutions, which install system-wide TAP network devices, work seamlessly with hydrus, since the network bypass is being handled invisibly to hydrus system side, so if TOR offers anything like that, an OS-level redirection, maybe with an application filter on hydrus's client executable, I think that's your best bet. >>15973 Thank you! This is really useful. I got this once myself, also on a transition, and then a crash. I regret it, but it thankfully seems rare. I really want to stamp this out this week. I encountered it briefly while coding the new tiling system (basically I was resizing a bitmap in GPU space that I should have copied first), but I thought I fixed it. At least I know the basic nature of the problem. It could just be some particular kind of file, or it could be a logical rarity. I am going to chase up the whole pipeline and see where it could still be happening. Please let me know how next week's release works for you.
(37.92 KB 648x490 kemonoparty-hydrus.png)

>>15979 >Try clicking on the 'file import status' icon button on the downloader page. The ignored ones are all 403's. Retrying it just brings back a 403. The successful lines say "found 2 new URLs". No pictures/videos have been downloaded, so it seems all files are failing. Could anyone more familiar with this try to offer some help? This is something I'd really like to get working soon >.>
>>15977 >You could also generate yourself a new account every ninety days or something. I'm a little confused. You say that Hydrus servers forget IP addresses that send the request to make an account, but couldn't someone just notice something like "This account stopped uploading stuff, then right after, this new account was created then started uploading stuff" or would the legitimate flow of account creation and uploading essentially make deducing something like that impossible? Will you be able to use multiple accounts in alteration for uploading to the PTR? I could see you switching between 2 accounts to upload at random being a way to get around that. Regardless, that planned feature you mention of uploads forgetting the associated account after a certain number of days calms most of my fears. So thanks for that! So far, it seems like I'm still able to upload using the shared PTR account, despite it saying that it's read-only now. I'm not sure if you're in control of this, but It'd be cool if it could still have write permissions until that "null account" feature gets implemented. >>15978 With overriding PTR relationships using "my tags", are you able just remove a PTR relationship. e.g. just have a way to say "no that parent/child relationship doesn't apply" in "my tags" then have it over rule the PTR locally, but still leave other relationships from the PTR that you do like alone? I'm not sure what you mean by the new presentation options you're considering, but as long as they allow me to do something like "show me all files the watcher found that are in the inbox, as long as they aren't in the trash or deleted" then that'll solve my problem.
Dev anon, is there any way you can introduce the ability to import files, without duplicating them, and without moving them? Jellyfin does this I believe by simply mapping the directory location. The reason is, for some files that are larger, or directories that are organized nicely on a filesystem level, you can't really import them into hydrus because if the dir is large, you essentially duplicate it (100gb turns into 200gb, then also the backup is 300gb for the same directory). If it moves it, then it's kinda stuck in hydrus. Implementing this, would allow other programs to access the filesystem nicely, but also allow hydrus to do its thing with them. I've heard a few other people desire this as well. This is my biggest gripe with Hydrus currently really, although I love it. Thanks.
>>15983 I'm pretty sure the dev said he doesn't want to implement that because it can lead to all sorts of funky stuff. Currently you can sort of do the opposite in a clunky way with symlinks (import files, export symlinks with original names, and replace) though.
>>15930 >>15930 I'm having this problem right now, and seems like any images with the contentious_content tag won't download, even if I can see those images (when I'm logged in with my account, since they're hid from guests), and Hydrus seems to be using my credentials correctly.
I had an ok week. I improved the new image rendering system, cleaning up instability and errors and mitigating the tiling artifacts. I also fixed some other issues and optimised some database queries. The release should be as normal tomorrow.
>>15972 Again, if you care about automatic downloading, you will not be happy with TOR. There is a public list of TOR exit nodes: https://blog.torproject.org/changes-tor-exit-list-service Most sites will block you if you come from one of those IPs, and there are no workarounds for this, so you will be anonymous, but the only thing you download will be error pages. If you use HTTPS (you should), then your ISP can only see the domain you are visiting. For example, your ISP can see that you are connecting to https://8chan.moe, nothing more. If you want to have privacy from your ISP, use a VPN that you pay anonymously. Then, only the VPN provider can see what you do online, same as the ISP, but they can't link it to your real bank account. >Also, strength in numbers; the more people doing the same thing the better. Why? You can set user agents, there might be different versions of libraries out there, etc. I highly doubt that every hydrus client sends the same metadata. You would only be using up bandwidth from the TOR network. Hydrus is not built to be anonymous, and you won't make it anonymous by just piping all traffic through TOR. The same thing for torrents over TOR, see https://blog.torproject.org/bittorrent-over-tor-isnt-good-idea.>>15972
>>15987 It's 'Tor', not 'TOR'. Did you notice how the official website never once refers to it as TOR? >Most sites will block you if you come from one of those IPs That is true, but almost all of the sites I download from in Hydrus do not. >but [the VPN provider] can't link [your traffic] to your real bank account But they can link it to your bare IP address. You can't just connect to the VPN with Tor to hide that either, that would not only make you easier to track but also absolutely kill your speed. >The same thing for torrents over TOR For a completely different reason, being that Tor doesn't support UDP and that constantly connecting to many random IP addresses to transfer small bits of data over sometimes differing ports is slow. That post was written over a decade ago, so the "network can't handle it" argument wouldn't apply here, especially since Hydrus basically does one of the things that Tor was meant to do, download web pages.
https://www.youtube.com/watch?v=CyPKxkH3vB8 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v439/Hydrus.Network.439.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v439/Hydrus.Network.439.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v439/Hydrus.Network.439.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v439/Hydrus.Network.439.-.Linux.-.Executable.tar.gz I had an ok week. The new tiled renderer is improved. tiled renderer The new image drawing system generally worked well! There were a couple of bugs, and it still has some limitations, but in general it really improved zoom and precache performance. For the bugs, first of all, there was a rare crash, I think triggered by loading a very unlucky coincidence of tile and image size. Then clipboard bitmap copy threw an error, tiny images could not deal with extremely small zoom, and clients under heavy load could sometimes have trouble initialising the viewer. I have fixed them all, but let me know if you have any more trouble! There was also a problem with PyQt5, an alternative version of the Qt UI library that some 'running from source' users use. It was an object handling difference between PyQt5 and PySide2 that broke the tile caching system. I think I have fixed it, so if you are running PyQt5, please give this version a go. Beyond bugs, there were tiling artifacts visible at higher zooms. Essentially, where the tiles lined up, there were small disagreements in resize math, resulting in little lines of mismatching colour gradients along tile borders. I worked on the tiling algorithm and have significantly mitigated the problem--I mostly only see artifacts at extreme zooms now, about 2000%. Since people are suddenly zooming more, users who have mouse-centered zooming were having more images accidentally flying off screen too. I've hacked in off-screen rescue after a zoom, sliding it back to the nearest border, so the image should always stay in view. If people like it, I may patch this in for all media for dragging events too. There's not much need for non-visible media, and when it does happen it can sometimes be a pain dragging around to find where it went. I hope this basically makes the tile render a complete '1.0' now. In the future, I would like to rejigger some of the virtual geometry, since at the moment a limit in Qt means I cannot zoom higher than a 'virtual' 32,768x32,768 canvas (e.g. 4k at about 800% zoom). I'll also replicate the tiling for my native Animation widget, which displays gifs and video when mpv is not available. full list - tiled image renderer improvements: - I believe I fixed the 'non c-contiguous' crash issue with the new tile renderer. I had encountered this while developing, but it was still happening in rare situations--I _think_ in an unlucky edge case where a zoomed tile had the same resolution as the full image rotated by ninety degrees! there is now an additional catch for this situation, as well, to catch any future logical holes. - fixed a bug in the new renderer when copying an image to clipboard - I greatly mitigated the tiling artifacts with two changes: - - zoomed in tiles are now resized with a padding area of up to 4 pixels, with the actual tile cropped afterwards, which allows bilinear and lancsoz interpolation to get accurate neighbour data and have gradient math line up with neighbouring tiles more accurately - - on resize and zoom, media canvases now dynamically change tile size to 'neater' float/integer conversion dimensions to reduce sub-pixel panning alignment artifacts (e.g. if your zoom is 300%, the tile is now going to have a dimension that is a multiple of 3) - I hacked in a 'rescue offscreen media' calculation after any zoom event. now, if the window is completely out of view after a zoom, it'll snap to the nearest borders, lining against them or overlapping into a buffer zone depending on the zoom. let me know what you think! - I fixed a PyQt5 specific object tracking bug, I think the new renderer now works ok for PyQt5! - cleaned up some ugly code in the resize section that may have been resulting in incorrect interpolation algorithm choice in some situations - fixed a divide by zero issue when zooming out tiny images hugely (e.g. 32x32 at 1%) - media windows now try to have at least 1x1 size, just to catch some other weird error situations - similarly, tile and native sample sizes will have a minimum of size 1x1, which should fix issues during a delayed startup (issue #872) - cleaned up some misc media viewer and tile renderer code - . - the rest: - I started the next round of database optimisation tech, mostly testing out a pipeline upgrade. autocomplete fetching and wildcard file searching for very large queries should be a little faster to cancel now, and in some situations they should be a little faster. they may be slower for very small jobs, but I expect it to be unnoticeable. if you feel autocomplete is suddenly slow and laggy, let me know! - I optimised the basic 'ideal sibling normalisation' database query. this is used in a lot of places, so the little saving here should improve a bunch of work - I greatly optimised autocomplete sibling population, particularly for searches with a lot of tag results - I brushed up the tag import options UI: changed the 'use defaults' checkbox to a dropdown with clear labels for both modes; renamed the 'fetch tags even if' tag import options to 'force page fetch', which is a better description, and added tooltips to describe their ideal use; added tooltips to blacklist and whitelist; and hid the 'load from defaults' button if not set to view specific options - added a 'imgur single media file url' File URL Class, which points to direct file links without a referral header, which should fix some situations where these urls were pointed to by other site parsers - collections now store the _most recent_ import timestamp of their contents as the aggregate for time imported. previously they had no value, so would sort randomly with each other. collections therefore now sort by time imported reliably with each other, even if there is no 'correct' answer here
[Expand Post]- these new timestamps and service presence generally, and aggregated archive/inbox status, (all of which can update thumbnail display) is now recalculated when files are removed from the collection. so, hitting _right-click->remove->inbox_ will now update collections with a mix of archived and inboxed to remove the inbox icon immediately - as the "Retry has no attribute..." network errors have appeared in new forms, I gave the core of the problem another look. we could never really figure this out, but it seemed to be a network version thread safety issue. I think I have ruled this out, and I now believe these may have been occuring during faulty pickling during network session save/load. I fixed the problem here, so with luck this issue will not reappear--if you have had this a lot, let me know how you get on! - I broke the requirements.txt into several variants based on platform. we are going to try to pin down good fixed versions of python-mpv and requests/urllib3 for each platform - I also updated the 'running from source' help significantly, moving everything to the requirements.txt and making sections for things like FFMPEG and libmpv - Also updated the source and contact help around my work style and contact preferences - the test.py file now only does the final input() confirmation if there is an interactive stdin to respond next week Next week is code cleanup and some little jobs that have slipped through the cracks. Nothing too clever, but I want to fit in some misc boring work. Thanks everyone!
>>15973 >>15989 problem fixed on my end, thanks!
>>15989 The original PyQt5 crash is fixed but zooming into pic related(largest(in dimensions though not in filesize) picture I have) and dragging around causes the following to be spammed into console,if I exit out of the image viewer things restablize but keeping on with the zoomed drag causes a crash: 2021/05/13 01:44:34: Uncaught exception: 2021/05/13 01:44:34: ZeroDivisionError integer division or modulo by zero File "/opt/hydrus/hydrus/client/gui/canvas/ClientGUICanvasMedia.py", line 1804, in paintEvent dirty_tile_coordinates = self._GetTileCoordinatesInView( event.rect() ) File "/opt/hydrus/hydrus/client/gui/canvas/ClientGUICanvasMedia.py", line 1772, in _GetTileCoordinatesInView topLeft_tile_coordinate = self._GetTileCoordinateFromPoint( rect.topLeft() ) File "/opt/hydrus/hydrus/client/gui/canvas/ClientGUICanvasMedia.py", line 1759, in _GetTileCoordinateFromPoint tile_x = pos.x() // self._canvas_tile_size.width() 2021/05/13 01:44:35: QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
>>15990 Great! >>15991 Damn, thank you for this report! I'll fix it up for next week. You'll want to restart the client after getting a torrent of that 'endpaint' stuff--Qt doesn't like to be interrupted by errors in that phase.
pic related breaks the media viewer.
Evening, friends. I'd like to ask, is there anything wrong with the danbooru downloader? When I try sending it pages through the URL or gallery downloaders, it gives me a "could not find a file or post URL to download!" error in the logs, and I have no idea what could be causing it.
>>15988 >VPN companies can see my IP What exactly is your threat model here? Do you want to hide something from the glowies or just your ISP? The VPN companies have your IP, but nothing else. If you want to have a better setup, get 2 different VPNs and route one through the other. What are VPN companies going to do with a random IP if they have no other info about you? > Torrents don't work because it's UDP I was implying that a "badly" (in privacy terms) implemented software will absolutely leak some information about you, and hydrus uses libraries that will probably have different fingerprints across different versions. Hydrus does it's own thing, it's not meant to keep you or your IP anonymous from anyone. The Tor network is meant to keep you anonymous, but that requires effort on your part too - don't run js, use the Tor browser, don't log in, etc. You can't just throw all your traffic over Tor and assume that it's private because of that.
>>15977 >you anonymously like both pictures of korean pop stars and stinky feet OH SHIT YOU'RE ONTO ME!
Bug: Hydrus won't boot OS: Mac 10.13 Version: 439 <timestamp>: hydrus client started <timestamp>: hydrus client failed <timestamp>: Traceback (most recent call last): File "~/Hydrus Network.app/Contents/MacOS/hydrus/hydrus_client.py", line 215, in boot from hydrus.client import ClientController <omitted 20 lines> File "~/Hydrus Network.app/Contents/MacOS/lib/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import return original_import(name, *args, **kwargs) ImportError: dlopen(~/Hydrus Network.app/Contents/MacOS/lib/cv2/cv2.cpython-39-darwin.so, 2): Symbol not found: ____chkstk_darwin Referenced from: ~/Hydrus Network.app/Contents/MacOS/lib/cv2/.dylibs/libavutil.56.70.100.dylib (which was built for Mac OS X 10.15) Expected in: /usr/lib/libSystem.B.dylib in ~/Hydrus Network.app/Contents/MacOS/lib/cv2/.dylibs/libavutil.56.70.100.dylib <timestamp>: hydrus client shut down 438 works fine
>>15981 still no werk, can anyone else test pls >.>
maybe bug? this happened one time but not other times booting gui… [GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device shutting down gui…
(3.72 MB 1500x1405 Born of root and void tea.jpg)

>>15981 >>15998 403 is access denied,the server is refusing to serve you the thing.It is most likely not on your end but try grabbing cookies with Hydrus Companion if the website works for you,it might be tripping on some kind of ddos protection.
>>15989 >>16000 >hydrus companion can we PLEASE submit this shit into the firefox add-ons server btw please. https://extensionworkshop.com/documentation/publish/submitting-an-add-on/
Feature request / idea: watcher auto-rules: - Set specific actions for rules that would match the domain, regex of the path or the watcher's title - Rules can (for example) auto-set tags ("if URL ~ '^\/h\/', add 'medium:drawn' to the tags"), set the checker's refresh rete ("if domain == 'boards.4chan.org' and URL ~ '^\/b\/`, set refresh rate to once per minute)", auto-remove (or open in a new page) the watcher once you get to a 404 / DEAD thread (because for example you've auto-tagged already), select a filetype to download ("no gifs, only webm")... What do you think?
Found a bug. If you hide the pages tag in the tag display for single files sorting by pages breaks. It doesn't seem to be completely random, just some fuckups along the way (e.g. pg 1, 3, 4, 5, 7, 6, 2).
>>15982 Yeah, I think there's a general problem having anon of any sort on a server with not many users. As you say, the PTR is a busy server with, I don't know, probably at least a thousand users. Trying to pull any history apart here is probably realistically impractical, but if you made a server for you and two friends, and suddenly you noticed a bunch of 'diaper' tags, it may not take the biggest database detective to unwind who of the three was doing what when. I am not sure when I can get that null account done. I am overwhelmed at the moment, and the server work is still pending a tag filter and a complete overhaul of the petitions processing system. If it helps, the null account will be retroactive. Please keep reminding me, if it doesn't get done. Even if I can't guarantee something nice and quick, I don't want it to fall off my plate. The normal user account can still upload because I had long-time fucked up some clientside UI regarding permissions, and when we tested turning permissions off for the normal account, suddenly people seemed able to upload siblings when actually the server was discarding them. It should be fixed now, but I'm not in a rush to push the PTR guys to make these changes. We had bugs with auto-account creation as well, when we tested that. Most of this code is running for the first time at large scale, so a bit of my time is reworking stuff either just to fix bugs or to work properly for humans. There's no way to choose one by one to 'un-apply' a relationship (although I've long wanted something like this, although real-world single-row management of 170,000 rows is probably impractical), but if you apply an overriding relationship on 'my tags' when it has higher precedence than the PTR, then the thing in the sibling/parent 'tree builders' will skip the logically incompatible rows. e.g. if you have siblings: my tags - A -> B PTR - A -> C You'll get A->B. Siblings are n->1, and since A is already mapped by 'my tags', the invalid A->C will be skipped over. Same for parents and cyclical trees. Basically set what you want in 'my tags', and that should come out, one way or another. I agree 100% though that the workflow and comprehension here is hell. Pairs is technically easy, but it isn't the way to view this data. If I had a hundred hours, I'd write a visual graph control and have you dragging and dropping arrow relations around and do the difficult math behind the scenes. Something I'll have to plan for in the future. The duplicate system has similar shapes and suffers from the same usability problems.
>>15983 >>15984 My best writing on this is here: https://hydrusnetwork.github.io/hydrus/help/faq.html#external_files There's some other stuff in that FAQ about filenames too, if you want to see a bit more of where I am coming from. Hydrus is a little different to something like Jellyfin simply by the sheer number of files we are normally talking about. I am usually managing collections larger than we can really get a handle on. I recommend hydrus for all mixed up imageboard-tier files, but I don't recommend it for paged comics or larger 500MB+ movies. Anything that has a simple and obvious filename schema like comics, or anything where you have less than let's say a thousand objects, like movies, you can store and manage efficiently with a human brain. Anything where there is no obvious filename and you have more than 10,000 files, the location storage is best handled behind the scenes. If you have a small number of particular files you want to keep external, I recommend you keep them that way. Advanced users can also set up some external folders that hydrus will keep populated with a subset of files (e.g. if you want to export cellphone wallpapers somewhere), and with a bit of work you can even give those files nice filenames. As I say in the help in a couple of places, if you are uncertain about hydrus, give it a go with a few hundred files, see if you like it. Many people find they don't miss external filenames at all, since the full magnitude of managing their tens or hundreds of thousands of files is such a bigger problem overall. But perhaps not. It isn't for all file types, and it isn't for everyone. No worries if you don't want to buy in to the storage system at all.
>>15985 The last thought I can offer is the User-Agent as set under network->data->manage http headers. Some CloudFlare problems can be solved by matching that to your browser as well as cookies, so maybe sank has a similar thing. I'll be adding automatic http header editing to the Client API so Hydrus Companion can copy this for you in future. It is a pain at the moment. But if it is related to that tag, definitely sounds like a credentials issue of some sort rather than the site failing. Thanks for letting me know. I'll be interested to know if you discover any more, if User-Agent fixes it or anything else. >>15993 Thank you for this report and the example file. I am sorry to say that most of these problems with the new tile viewer are based on local conditions, particularly unlucky combinations of zoom options and media viewer size. That image loads fine for me, but I imagine that 6 in the 506 is somehow creating an odd tile for you, or maybe your client has some bad metadata. Does that image crash your client, or do you get an error? If you get an error traceback, can you paste it to me here? I have several errors with '!ssize.empty()' in the main text, and I have a plan to fix it. I'll also be writing a more general error catch and try to deliver black tiles or something for future errors to put a cap on these crashes. >>15994 Sorry, it seems to work here when I do a quick simple search. Any chance you are searching for content that is only available to a logged in user, or other 'contentious content' problems like the sankaku guys are having? If you are feeling brave, you can try pasting a danbooru url into the test panel once you dig into network->downloader components->manage parsers. That'll show the full text of the 'empty' page, and maybe shine some light. Might be an error message.
(87.04 KB 1772x469 client_21-05-16 137.png)

>>16006 I'm not quire sure I did it right, but here's the result of trying to run this URL https://danbooru.donmai.us/posts/4516636?q=parent%3A4209825 Through pic related's interface, which outputted this as a result https://pastebin.com/Pwhqw5td I hope it can be of some help!>>16006
>>15997 I am sorry for the trouble here. I am not a huge expert on macOS, so I cannot talk too confidently, but it looks like a library updated somewhere, maybe that libavutil, and your 10.13 is missing some newer tech to go with it. The only thing I changed in the requirements script last week was a limit on some networking libraries, which this is not talking about, so I think it must be those libraries updated last week. Some brief searching leads to items like this https://stackoverflow.com/questions/63221290/how-to-resolve-missing-symbol-chkstd-darwin-in-libsystem-b-dylib-osx But that doesn't explain why 438 would work for you. One of the reasons I moved to the new cloud-built macOS build was because my old 10.12 laptop was aging out and unable to build anything compatible with Big Sur. Forgive my ignorance, but is 10.13 starting to be a bit old, or should it still be considered supportable? I will examine the builds and see if I can spot the differences and figure out what I can change in my build script to get you working again. I can't promise anything however, as I am still learning this. Please fall back to 438 for now, obviously.
(29.42 KB 547x488 python_RycwFdr0hg.png)

>>16007 Hmm, yeah, that's the correct thing you did. If you click that 'test parse' button, it'll run the parse and tell you what it pulled. When I do that on the page you pulled, seems like it is finding good downloadable URLs and tags. I notice in your list though that you have a couple of parsers for danbooru (that one with the '(1)' after it), so could it be you have updated your danbooru parser in the past, maybe through the Lain easy drag and drop import system? If that new parser is failing to get good info from the same data, and it is set as the parser to use under network->downloader components->manage url class links, that could be the problem here. Setting the 'link' back to 'danbooru file page parser' may get you working again.
>>16009 I have definitely imported downloaders in the past, probably danbooru ones as well. Setting the parser association with class links has seemingly fixed the issue, thank you, friend. Just to make sure, is there an easy way to get rid of any nonfunctional downloader/parser components I may have gotten in the past so I don't keep the useless data around cluttering the interface?
>>15999 Wow, thank you for this report, I have never seen it before. My best guess is that is something clever from mpv or Qt when initialising some UI stuff. I think it may be beyond my paygrade. Do you have a laptop with two GPUs or any other GPU driver issues? If it doesn't happen again, I think you can chalk it up to some weird OS blip. Let me know if you get any more info. >>16001 The guy who makes the Add-On has had a bad experience getting his stuff approved reliably and prompty, and through the official Chrome system, and I think he has basically sworn off it at this point. Although it sucks, a lot of hydrus stuff is going to be ad-hoc dev-mode ghetto code. >>16002 Yeah, I'd love a way to keep up with certain Generals. Making this would be neat, but any automatic system I make will need a lot of checks and brakes to stop it spinning out of control in edge cases. I always underestimate the work required on this sort of thing, so I won't build a system like it without reserving a lot of time to get it right. The best solution for now is to just check yourself every day and drag and drop the URL on your client, or rig up your own script that checks this data how you want and queues it up via the Client API: https://hydrusnetwork.github.io/hydrus/help/client_api.html The API will eventually get extensions to edit and remove threads and queries from downloader pages, so the ability to remove 404 will come in time. But for now you basically have to babysit them once a week or so. >>16003 SHIT, thank you for this report. I must be grabbing the wrong tag display type for this test! This actually explains a different sorting issue I was looking at today, thanks.
>>16010 Unfortunately, the system and its UI is still all shit technical prototype that I first made a couple years ago, so you have to do it by hand. You can just delete anything that doesn't work, and rename things to nicer names as needed. This is a consistent source of headaches for anyone who edits and updates things, so the next version of the downloader system will have proper unique ids for downloaders and versioning, so updates will smoothly know what to replace, ideally a way to check a remote location for updates, and better UI to handle how this all happens. The picture in my head is like how the old Nexus Mod Manager used to do Oblivion and Skyrim game mods, if you ever used that.
>>16012 Well you have a lot of plates spinning, and Hydrus is already a magical godsend I love dearly as is, so it's not like that is a problem at all, thank you! One last question that I just remembered, though, is the "Danbooru & Gelbooru tag search downloader" a native Hydrus downloader, or is that something I also downloaded at some point before? And if it is native, could you tell me if it has any means of preventing the downloading of exact duplicates between the two sites, so that only one of two exactly identical images that is found on both gets pulled? I could test it myself, but since I'm already here... Also, my experience with Bethesda modding completely predates the NMM, and from that I jumped straight into MO2, but I can visualize exactly what kind of structure you're talking about, and I wish you good luck when you get to it!
(952.18 KB 1354x699 Peek 2021-05-16 00-05.gif)

Bug found. Using Hydrus.Network.439.-.Linux.-.Executable.tar.gz I have a crash when switching from a video playing in the preview viewer located at the left button, to an image which I double click to see it in full screen. This crash keep happening ONLY with these particular files and not others, as I tried with others but I couldn't reproduce the crash. The steps to reproduce the crash are: 1 - Single click on the video file to play it in the preview viewer 2 - Double click on a image file to show it in full screen 3 - Crash
(2.25 MB 1240x689 Peek 2021-05-16 01-06.gif)

(241.08 KB 683x1063 003,712 - source.png)

>>16014 UPDATE After more tests I found that the crash can be narrowed and blamed only to the image file, as is not necessary to click any other file to cause the crash. I attach video and the guilty file.
(195.33 KB 1366x768 Screenshot_20210516_014447.png)

>>16015 Another update. This time that .PNG file gave me an error output.
>>16006 I can confirm that matching the header from the browser fixes the issue, for 24h~ at least. Not optimal, but absolutely manageable once you get the hang of it. Looking forward for the http header editing :V thanks.
>>16008 Thanks for your comment. I installed from source and so far it works. Well, I still need to migrate my db somehow, but the client runs without errors. Apple support for macOS 10.13 was ended per December 2020. All new Macs will have Big Sur which only runs 64-bit programs. As you can imagine, this breaks a bunch of games.
is it possible to migrate all tags of one file, over to a new one? for example, to append all tags from a file you have that is low quality, to the same file you recently imported but is higher quality? (without finding the file through the duplicate filter)
>>16011 >Although it sucks, a lot of hydrus stuff is going to be ad-hoc dev-mode ghetto code. This is not great imo, and should be attempted to be worked upon heavily.
can anyone with the skill and time help work on the hydrus network mode in lolisnatcher droid? even minor contributions help. The app works for hydrus, but it seems to be lacking some features (this is also due to Hydrus's client api being incomplete itself which sucks), and there's a few small bugs. The dev doesn't seem heavily interested in hydrus atm, I don't think he uses it he said he didn't like that you couldn't leave files where they are and add them to hydrus (without copying them). It's really the only FLOSS app we have for android. https://github.com/NO-ob/LoliSnatcher_Droid
>>16011 devanon, can you add some kind of PTR reference area, where you can see all your previous contributions, and see what has been accepted, or denied. Also is there a reason when you submit a tag to the PTR, it doesn't apply locally immediately so you can see the changes? Realistically, if it is further denied in the PTR it should be undone locally, (or maybe an option to keep it locally). But this all would be able to be viewed by my suggestion of the PTR reference area above.
>>16019 You can manually hit F3 on the old file, hit copy all tags, then hit F3 on the new one and hit paste tags. Wouldn't copy other metadata though. Or, you could set up the "this file is better" to move/copy all tags from the worse to better, and use the right click menu to mark one better than the other. I think that second one works, at least. >>15850 With the arguing about Tor here, what if Hydrus Companion had a "download current tab through browser" button? Anon could use the Tor Browser to open a page, then hit this button that sends the raw HTML (tags, URLs, etc) and full-size image file to Hydrus, without Hydrus actually connecting to the site being downloaded from. This works around the 'Tor not being anonymous without the browser' thing.
>>16023 >Or, you could set up the "this file is better" to move/copy all tags from the worse to better This is what I was trying to figure out, where exactly is this option though?
>>16024 >>16023 Ok, I found it it was kinda hidden. "Set as better". I changed the default settings to copy between both so the tags gt applied to both. That being said, after I set the image as better, I notice zero changes in the tags that are applied to either of the images? So I don't think it's working. I tried two pairs of images, same issue.
https://teddit.net/r/rule34/ Can anyone please make a downloader for Teddit? Reddit would work too, but I can't get it to display searches as NSFW without logging in. There is already a subreddit search downloader for Hydrus, but I want to do a specific search within a subreddit, instead of just downloading the entire subreddit. It works with simple downloader partially, if I run a search for example https://teddit.net/r/rule34/search?q=the+little+mermaid&restrict_sr=on&nsfw=on&sort=top&t=all it only downloads the first page worth, instead of going through all the pages.
>>15989 >tiled renderer Works a lot better now in the duplicate filter, at high zoom levels. The issue in previous posted webm is not noticeable anymore from what I can see. The issue still persists to a small degree in certain situations, for example when comparing an image zoomed out and an image zoomed in: Image A is larger than screen (2048x2261) and reduced in size to fit screen (1440p), image B is smaller than screen (815x900) and zoomed in to fit screen. Switching between them, the left half of the smaller image gets shifted a few pixels to the left, and the right side a few pixels to the right, compared to the larger image. They are the same images, just different dimensions.
>>>/hydrus/15114 That place is a dysfunctional mess.
>>16027 sirs right click on the picture click on save image as put name yo want for image and press ok
Why does the 4chan watcher save file-urls to the known urls list for files it downloads. Won't these urls be forever useless (or worse, end up being the url for a different file later) after the thread dies?
I had an ok week, but my work time was unfortunately cut short by IRL. I might not normally do a release, but I'd like to get some neat fixes out for the new tiled renderer, which has additional protections in 440 and should no longer crash. There's also some misc cleanup and quality of life. The release should be as normal tomorrow.
Can you save the tweet comment for a twitter image as a tag and automatically add it to images downloaded from that tweet?
>>16032 Also a timestamp?
Hi, I'm post # 2743 from the first general. https://archive.ph/JwSO1#2743 >>2743 (if I have my imageboard linking methods right) I'm popping in to check on whether the feature I was asking about was added. The feature was an ordered grouping of images, like an image set, or a set of variations of the same image. I called this a "gallery" of images, but that's apparently not the convention when it comes to discussing boorus and other large sources of images in general. When I asked about this, post #2744 and a dev post #2815, said that the ETA was some time later this year. It's later in the year. Has this feature been implemented in some form yet? For future reference, is there a keyword I can use to quick-search this thread to find information on this feature? I can talk about it, but having different words to describe the same idea makes quick-searching difficult.
>>16034 When Hydrus threads die, they go to >>>/hydrus/ heaven; your post is >>>/hydrus/15458 and that's why your >> link isn't working.
https://www.youtube.com/watch?v=mO1j6xx2HhQ windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v440/Hydrus.Network.440.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v440/Hydrus.Network.440.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v440/Hydrus.Network.440.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v440/Hydrus.Network.440.-.Linux.-.Executable.tar.gz I had an unfortunately short week, but I did some good work. The tiled renderer has nice fixes. tiled renderer I regret the tiled renderer, while good most of the time, had crashes when it did go wrong. To stop this with any new errors that might pop up, the whole block now has an additional layer of error catching around it. If a tile fails to render for any reason, you now get a black square, and if some coordinate space cannot be calculated or a portion of the image is truncated, the system will now print some errors but otherwise ignore it. A particular problem several users encountered was legacy images that have EXIF rotation metadata but were imported years ago when the client did not understand this. Therefore, hydrus thought some old image was (600x900) when it then loaded (900x600). In the old system, you would have had a weird stretch, maybe a borked rotation, but in my new tiled system it would try to draw tiles that didn't exist, causing our errors-then-crashes. The client now recognises this situation, gives you a popup, and automatically schedules metadata regeneration maintenance for the file. some misc You can now set a custom 'namespace' file sort (the 'series-creator-volume-chapter-page' stuff) right on a page. Just click the new 'custom' menu entry and you can type whatever you like. It should save through your session and be easy to edit again. This is prep for some better edit UI here and increased sort/collect control, so if you do a lot of namespace sorting, let me know how you get on! I prototyped a new 'delete lock' mode, which prohibits deletion of files if they match a criteria. I am starting with if a file is archived. You can turn this mode on under options->files and trash. It mostly just ignores deletes at the moment, but in future I will improve feedback, and maybe have a padlock icon or something, and eventually attach my planned 'metadata conditional' object to it so you'll be able to delete-lock all pngs, or all files with more than four tags, or whatever you can think of. new builds to test This is probably just for advanced users. If you would like to help test, make sure you have a backup before you test anything on a real database! A user has been working hard on replicating the recent macOS build work for the other releases, cribbing my private build scripts together into a unified file that builds on github itself from the source, as well as rolling out a Docker package. I have had a look over everything and we agree it is ready for wider testing, so if you would like to help out, please check out the test v440 builds here: https://github.com/hydrusnetwork/hydrus/releases/tag/v440-test-build These should work just like my normal builds above--the scripts are using PyInstaller and InnoSetup as I do on my machines, so it all assembles the same way--but we are interested in any errors you nonetheless encounter. We may need to hammer out some stricter library version requirements for older machines, since until now we've basically been relying on my home dev environments staying static until I next remember to run pip update. Once we have these working well, I'd like to use this system for the main build. It makes things easier and more reliable on my end, and should improve security since the builds are assembled automatically in clean environments with publicly viewable scripts rather than my random-ass dev machines using my own dlls, batch files, and prayers. Who knows, we may even defeat the anti-virus false positives. Also, if you would like to try the Docker package, check it out here: https://github.com/users/hydrusnetwork/packages/container/package/hydrus I don't know much about Docker, so while I can't help much, I'll still be interested in any feedback. If and when we are ready to switch over here, I'll be updating my help with any appropriate new backup instructions and links and so on.
Please also remember that running hydrus from source is also always an option: https://hydrusnetwork.github.io/hydrus/help/running_from_source.html As we went through this process of automating builds, we've improved the requirements.txts, and I've learned a bit more about automatic environment setup, so I hope I can also add some quick setup scripts for different platforms to make running from source and even building your own release much easier. full list - tiled renderer: - the tiled renderer now has an additional error catching layer for tile rendering and coordinate calculation and _should_ be immune to to the crashes we have seen from unhandled errors inside Qt paint events - when a tile fails to render, a full black square will be used instead. additional error information is quickly printed to the log - fixed a tile coordinate bug related to viewer initialisation and shutdown. when the coordinate space is currently bugnuts, now nothing is drawn - if the image renderer encounters a file that appears to have a different resolution to that stored in the db, it now gives you a popup and automatically schedules a metadata regen job for that file. this should catch legacy files with EXIF rotation that were imported before hydrus understood that info - when a file completes a metadata regen, if the resolution changed it now schedules a force-regen of the thumbnail too - . - the rest: - added a prototype 'delete lock' for archived files to _options->files and trash_ (issue #846). this will be expanded in future when the metadata conditional object is made to lock various other file states, and there will be some better UI feedback, a padlock icon or similar, and some improved dialog texts. if you use this, let me know how you get on! - you can now set a custom namespace sort in the file sort menu. you have to type it manually, like when setting defaults in the options, but it will save with the page and should load up again nicely in the dialog if you edit it. this is an experiment in prep for better namespace sort edit UI - fixed an issue sorting by namespaces when one of those namespaces was hidden in the 'single media' tag context. now all 'display' tags are used for sort comparison groups. if users desire the old behaviour, we'll have to add an option, so let me know - the various service-level processing errors when update files are missing or janked out now report the actual hash of the bad update file. I am chasing down one of these errors with a couple of users and cannot quite figure out why the repair code is not auto-fixing things - fixed a problem when the system tray gets an activate event at unlucky moments - the default media viewer zoom centerpoint is now the mouse - fixed a typo in the client api with wildcard/namespace tag search--sorry for the trouble! - . - some boring multiple local file services cleanup: - if you have a mixture of trash and normal thumbnails selected, the right-click menu now has separate choices for 'delete trash' and 'delete selected' 'physically now' - if you have a mixture of trash and normal thumbnails selected, the advanced delete dialog now similarly provides separate 'physical delete' options for the trashed vs all - media viewer, preview viewer, and thumbnail view delete menu service actions are now populated dynamically. it should say 'delete from my files' instead of just 'delete' - in some file selection contexts, the 'remote' filter is renamed to 'not local' next week I had a run of IRL stuff eating my hydrus time, but I think I am now free. I'll catch up on smaller work and keep grinding at multiple local file services.
(46.88 KB 640x360 43f7.jpg)

>>16037 >the tiled renderer now has an additional error catching layer for tile rendering and coordinate calculation and _should_ be immune to to the crashes we have seen from unhandled errors inside Qt paint events I'm the anon who reported a crash at >>16014 >>16015 and >>16016 I report that the crash has been effectively fixed in v440. Thanks OP.
(51.89 KB 297x261 Harada Good Display.png)

>>16037 Can report >>15991 is fixed.
>>16032 Never mind, figured it out.
Whenever I open a new media viewer instance I get a popup message in the bottom right that says "A window that wanted to display at "PySide2.QtCore.QPoint(-960, 9)" was rescued from apparent off-screen to the new location at "PySide2.QtCore.QPoint(10, 10)". Anyone know how I can prevent just this pop-up from coming up? Or fix whatever the underlying issue is.
>>16022 >devanon, can you add some kind of PTR reference area, where you can see all your previous contributions, and see what has been accepted, or denied. Yep, it would be super cool to have it.
(51.04 KB 504x490 smug.jpg)

>>16041 Switch to PyQT5 :^)
How would i go about adding resolution ratio to a custom sort by tags?
(12.93 KB 303x478 ClipboardImage.png)

what the hell happened? there's no phillomena logins anymore for derpibooru, twibooru ect, things were working before I updated from hydrus 330s to 340s.
(209.47 KB 1872x1033 1.png)

(206.78 KB 1872x1033 2.png)

(248.78 KB 1872x1033 3.png)

>>15975 >I am going to write better thread debugging UI in the next few weeks to better profile some Client API stuff. That will also help your situation--we'll be able to see which workers in the thread pool are choked. Please keep an eye out for when I get to this--and please remind me if doesn't happen--and we can look into this and get some better behind the scenes info. I have some really annoying/unfortunate feedback. First of all, the reason I took so long to get back to you was because I kept adding stuff to my gallery import page, occupying all my bandwidth, so most of that time was spent with hydrus not doing anything, because it ran out my bandwidth cap, I guess. But today I was on my last one, so I figured I would do what you said, and paste the urls in a new page. It worked (and it downloaded all to finish instantly). But, also, I unpuased the deadlocked url import page, and it imported there, too. First of all, I'm still on version 437, and I see the latest is now 440, released 4 days ago. Had I read your reply first, I would've tried updating first, in case the "thread debugging UI" you spoke of got added. But secondly, I wish I unpaused the deadlocked url import page first, instead of copying the URLs and pasting them in a new url import page. Maybe it didn't matter either way, because upon noticing they were frozen, I downloaded the images via a gallery page, so maybe that was why it worked in the previously deadlocked page. But then for good measure as I was formatting this, I added a new URL not currently in my database, and it worked in the same previously deadlocked page. So there doesn't appear to be any problem anymore, somehow. I remember my hydrus crashing once between my original post and now, since my 5400RPM hard drive decided to render me unable to do anything, despite being able to move the mouse etc., for over a minute, while a video was playing, and I had an input (or several) buffered. So when it unfroze, hydrus just crashed. Maybe having to boot hydrus again was what made the page work. I don't know.
>>15932 >To address the preview image not showing and other weirdness, if you are the guy with the large session and many downloaders, I will have to reiterate that my best current explanation for your client's odd behaviour is that it is overwhelmed with tasks to perform and some thread scheduling is getting deadlocked or just choked. This could be a great explanation for why that download page is failing to start. I will keep optimising and improving my thread workers, but closing pages and pausing downloaders is your best strategy for now. I just updated to version 440 (latest) from 437, and I think this stopped happening to me (the preview image not showing up). It didn't show up for a few minutes, but now it does. I remember it not showing up ever, not showing up for hours, only showing up for every image but a specific image, etc. I remember having to avoid having an image selected as the client booted, because that seemed to prevent it from being able to appear in the preview window until I restarted and tried again. So this is much better than before.
Hey, sorry, I am late again! >>16013 The Danbooru and Gelbooru thing is actually a clever thing, something the advanced users have played with, and a system that sometimes steps in for sites like Hentai Foundry, that actually combines multiple single sources you already have listed. I call the object that turns 'samus_aran' into a search URL a Gallery URL Generator (GUG), and then another system allows you to bundle these together into a Nested GUG (NGUG). That D&G NGUG is just the default danbooru and gelbooru downloaders--when you enter 'samus_aran', it queues up to starting search URLs, rather than just the one. I suspect future versions of the program will do more in this realm. Many experienced users pull a set of particularly favoured creators from five or more sites at once, trying to catch things that fall through the cracks on one site or another. But as you suggest, figuring out how to save bandwidth on files you have already is a big issue. There's a little background info here: https://hydrusnetwork.github.io/hydrus/help/faq.html#hashes Basically, there are mathematical ways of id'ing files using short names, called hashes. You may have heard of 'md5'. Most of the bigger boorus offer md5 or another hashing standard on their file pages, and hydrus downloaders will generally pull this info. After downloading the web page, Hydrus can then cross-reference with its private store of known hashes and figure out if the file is 'already in db' or 'previously deleted' or 'possibly new', and in the former two cases, skip the actual file download and move on immediately. In hydrus, this works if the files are byte-for-byte duplicates. One changed pixel, or any optimisation or metadata stripping, will not match in this system, and you'll get two very similar files that hydrus will eventually start to detect as similar looking duplicates in the 'duplicates' system (which is ok but mostly unfinished, if you haven't checked it out yet). Hydrus does a similar check, but slightly less confident logic, or previously visited URLs. Run the same search on the same site twice, the second time it should blitz through, only downloading the original search ('gallery') pages. If you are interested, click the icon button on your download page to see the 'file import status'. Anything with 'already in db' or 'previously deleted' will have a little note next to it describing how hydrus made that decision. On typical booru or imageboard downloads, a mature client will get some nice hash and url matches.
>>16014 >>16015 >>16016 >>16038 -and- >>16039 Thank you for these reports! I now have a couple occasional thin black bars to fix here, but in general, the crashes should be gone. I am sorry for the trouble. >>16018 Check out here for more hydrus db background reading: https://hydrusnetwork.github.io/hydrus/help/database_migration.html If you moved from the App, your old db is going to be something like ~/Library/Hydrus , but running from source it will try to stick it in install_dir/db. Everything is completely portable, so the basic routine is: Go to install_dir/db and move any the client*.db files and the client_files directory somewhere safe. (you can delete it later if this all works ok) Copy that stuff from ~/Library/Hydrus to install_dir/db Boot the client. (it should now be running off your old db) But that document will give you more options depending on your situation. Many advanced users use the -d launch parameter to move their db folder location around. Always good idea to make a backup of everything before you do any migration, just in case.
>>16020 I'm an idiosyncratic guy working strictly alone on some fringe imageboard software, I am afraid I just cannot promise too much professionalism. While I am slowly improving my own coding standard, my weird workflow works well for me, and I haven't yet fully burned out in about eight or ten years of banging out weekly releases, so I am happy to stay at it. If you highly rate a pleasant/easy experience, you may have a better time looking elsewhere. >>16022 >>16042 The short answer is: maybe, in the future. The long answer is: if I do this, I'll probably have to do it by remembering a copy of what you upload, or flagging it somehow specially in the database. I've designed the PTR to generally merge and anonymise content uploads, so even where there is some record of which account did what, there isn't a record of which computer did it, and the database tables aren't tuned for those requests too much. But having a clientside memory/copy of uploads is already in the back of my mind as it will solve some other problems as well. I'll likely do work on a petition workflow sooner, something like 'you uploaded this tag sibling ... and it was (accepted/denied/got a note attached)!' The PTR janitors want this, to get some more convo back and forth, so it will be a logical extension to have your client being involved in that. >Also is there a reason when you submit a tag to the PTR, it doesn't apply locally immediately so you can see the changes? This actually should be behaviour for all uploads. You should see 'samus aran (+)' become 'samus aran' when you commit. Do you get otherwise in some cases? Tag siblings and parents still have some borked logic with some of this, and awful UI to work with, but they should generally apply when you set pending and perhaps a little more firmly when you upload. >>16023 That TOR thing sounds like it would plug into the Client API best. The TOR Add-on or whatever (like Hydrus Companion) could do whatever in the browser environment, then make a connection to localhost and spam files and metadata at it. Not sure about Hydrus starting the action though. Given how much work all this is, I may just get around to improving the per-domain proxy settings here first. There is probably some proxy daemon you can run on a system that'll pipe certain requests to the TOR service that'd solve this better, given how jury rigged other solutions sound. >>16024 >>16025 If you end up doing this a lot, check out options->shortcuts->media, there should be some commands 'file relationships: xxx' that'll let you fire this off on the current selection, making the current highlight (the one in the preview viewer) the 'best', with just a key press.
>>16027 Thanks. I am glad it is working better. I'll get my Animation canvas working on the same system and finally merge my interpolation code, and then review more options and little alignment fixes. >>16030 Hydrus remembers all Post/File URLs associated with a file download. How that URL is treated and whether it appears in human-friendly lists generally depends on the 'URL Class' definitions under the network->downloader components menu. Anything that doesn't match any URL Class is generally kept but hidden (treated like a 'default' File URL). There is an option not to store, so you could try defining a URL Class for each File URL type in your downloader and then explicitly telling hydrus not to save it, but in general this is more work than it is worth. Most boorus have persistent storage URLs, so it can be useful at times to have that raw URL to rely on for URL logic checking, but then also sites sometimes just change CDN and the whole file format changes, so they aren't super easy to pin down long term either. So pretty much, in 4chan's case: it doesn't really matter that the download is tokenised by the timestamp, so expect that's why it didn't get explicitly removed. It is probably an oversight. It definitely wasn't a conscious choice. My next big plan for URLs will be en masse database URL control. I want you to be able to choose a URL format and mass transform all instances of it (e.g. a clever merge of all legacy http records to https), so if this becomes a storage bloat issue, we'll likely deal with it then, when we have a nice tool to deal with it. >>16032 >>16033 Note parsing is coming hopefully this year, as is pulling post times from sites into the 'modified' date for downloaded files. >>16034 Sorry, nothing nice yet! Q1 was some emergency server fixing work, and now in Q2 I am doing multiple local file services. I should be able to fit in two more 'big' jobs for Q3 and 4, which I will poll the users for, and I still expect the file alternates expansion to win one of those votes. Can't promise anything though, everything is on fire all the time and everything takes longer than one expects.
>>16041 >>16043 Thanks, have you changed your monitor layout recently? You'll have to dive into some hellish UI here, but check options->gui->frame locations. There's a list there with some deeper settings you can edit. When that window is booting, it is using the settings for 'media_viewer', presumably it has 'remember position' False but a saved position that is borked. See if there is an easy fix there to get it remembering the last set location again or something, and it shouldn't try to spawn off screen again. If the fix isn't obvious, or it keeps going in the wrong place, please let me know. It could just be my coordinate calculation is messed up in your setup for some reason. Stuff like multiple monitors differing UI scales can be a pain in the ass to get correct here. >>16044 You can't mix the metadata sorts with the tag sorts yet. But I've been working on this stuff recently and I'm seeing a path opening up. The solution for your specific case is probably going to be the editable 'secondary sort' I'll soon be exposing on all pages. >>16045 Hmm, I am not sure. That dialog should give you all your login scripts, even if one is validity borked in some way. If you check network->downloader components->login scripts, is it gone from there? I haven't touched the login script defaults in quite some time, so I am not sure if I did this by accident in some update. EDIT: Looking again at your versions, are you actually 330? If this is two year old updates, I'm afraid I can't remember what was going on. I may have cleared out old login scripts that don't meet some criteria, or some bitrot update may have done the same. Best solution is re-import the login script in the dialog above. If this is 430->440, I don't think I did it. Same thing though: re-import the login script, see if it maps ok. We'll have to chalk it up to one-time weirdness for now. Let me know if that doesn't work, or if it happens again.
>>16046 >>16047 Yep, sounds like the thread workers were choked from lots of things going on at once. Once the client slowly had its background work reduced, whatever was soft/deadlocking that downloader page's worker freed up. I don't have the thread debug UI available yet. I'm afraid I am spread thin a bit right now. I am glad you were able to clear things out of your session. I should also have the big session breakup ready for v442 in a couple weeks. EDIT: Now I think of it, the new tiled renderer and image neighbour pre-caching logical improvements may have cleared out some image cache-related CPU waste in your situation, which may be why preview viewer stuff is working better for you overall. I'll continue to be interested to know how things change in future for you! The GUI session breakup should be a relief for a lot of big client users.
(16.23 KB 481x265 ClipboardImage.png)

>>16052 >network->downloader components->login scripts doesnt exist at least in this menu. I would update from time to time usually months apart because it usually doesnt have a huge noticeable difference and I was pretty content with its function and stability. I was using 422 before this and downloaded it around nov last year, so half a year ago, it warned me about datarot with updating 10+ versions so I went and updated to 330s then 340s
(14.16 KB 1106x74 ClipboardImage.png)

>>16054 >>16052 woops i meant 430s. the old exe file was still in my trash after updating and delteing. in either case, the logins are nuked and I have to rebuild them but have no idea what im doing here. think i need a cookie but i dont know where to get it
I had an ok week. I did a mix of different small work and added some new commands to the Client API, including something that should help some difficult login situations. The release should be as normal tomorrow.
Upgrade warning for users on Linux using releases – this week, a new directory structure has appeared. We went from hydrus network/<content> (no caps, classic Hydrus dev) to ubuntu/Hydrus Network/<content>. This broke my upgrade process; don't let it break yours! Hydrus dev, is this intended / meant to stay like this or is this something that'll be fixed next release?
>>4200 >>16057 Sorry about this, I only realised it was still in this morning when I was doing an extra compatibility check! This is one final thing I need to update in the build scripts, but I didn't want to change it last second for master and then screw up. I'll make a branch next week and do a test side build. I will move it back to 'Hydrus Network' as the directory at the base. I hadn't realised the Ubuntu build was lower case. The Windows and macOS builds have always used caps--you can see how messed up my old mess of scripts was. I'll harmonise to 'Hydrus Network', please check for it next week.
https://www.youtube.com/watch?v=EJLNLWv-nmM windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v441/Hydrus.Network.441.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v441/Hydrus.Network.441.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v441/Hydrus.Network.441.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v441/Hydrus.Network.441.-.Linux.-.Executable.tar.gz I had an ok week. Not as much as I wanted, but there are some nice Client API improvements. all misc this week The test builds from last week seem to work ok, so they are now master. The built clients now use Python 3.8, and the security libraries (like OpenSSL) are all much newer--and will reliably stay up to date in future--so a whole bunch of things across the client should have slightly better performance. There are no special install instructions, they seem to work on an existing install just as normal. Let me know if you do run into any problems! I fixed some more bad tiles calculations for the new tiled image renderer. Some files that seem to have little black lines on an edge at some zooms, or previews that just turn up black, should be fixed! Error reporting is also nicer. The Client API can now do a couple more things. Particularly, it can now set your client's global User-Agent, which should help fix some difficult CDN and login problems in future. Please watch this space. For advanced users, if you have help->advanced mode on, then setting a namespace file sort now allows you to choose which 'tag context' the sort works on. If you hide certain tags in single or multiple media view (as set in tags->manage tag display and search), then those hidden tags will not count for the sort. This is obviously advanced, so if you hadn't thought of it, you can just set 'display tags' to keep 'normal' behaviour. full list - misc: - after successful testing, all the master builds are now made on github rather than my home dev situation. the clients now work off python 3.8, and several security libraries (e.g. OpenSSL) are now always going to be latest, so there should be several quiet performance and reliability improvements across the program. there are no special install instructions--normal update seems to go fine--but let me know if you do have any trouble. big thanks to the user who did the leg work on developing the workflow build scripts here - if you are in advanced mode, namespace file sorting now allows you to set the 'tag display context' on which it will sort. this appears as a new menu button or a button list selection dialog wherever you edit namespace file sorts. if you are not in advanced mode, the default is the 'display tags' I switched to last week (i.e. before any tags are hidden by your tag display options) - namespace sort has some related code cleanup. the 'defaults' object is updated and moved to the newer options object - the new tiled renderer now checks for rounding errors in zoom calc, which in some cases was giving a single extra (non-existing) native pixel row or column on rightmost or bottommost tile samples - the new tiled renderer now double-checks clip regions for validity before attempting to crop - improved the reported error information when a tile fails to render - when pasting an uneven number of tags into manage siblings/parents, the error is now a nicer popup dialog. I'm pursuing a related error here--if you get this a bunch, please let me know what more info you discover - when repositories fail to fetch the update hashes to process, they now force a metadata resync. any processing error should force a metadata resync now - added a default url class for the new pixiv _artist_ page format - fixed a recent typo bug with ipfs pinning - . - client api additions: - the client api has a new /manage_headers/set_user_agent call, which is a simple hack for now for external programs to set the 'Global' User-Agent. it should allow for some CloudFlare solutions when just copying cookies is not enough - the client api has a new /get_services call, which talks about more services and also exposes service_keys for the first time, which are likely to be useful in future. check out the help for an example. the old /add_tags/get_tag_services call is now deprecated, please move to the new call - the client api /version call now responds with 'hydrus_version' as well, which this week will be 441 - the client api now has a semi-experimental /manage_database/lock system, just like the server's. a new 'manage database' permission is added for this. don't play around with this system idly. - the client api should now support sha256 hash parameters if they start with a type prefix like 'sha256:0123789abcdef...' - the client and server's database lock commands now wait up to five seconds for the database to finish disconnecting to respond - expanded client api unit tests to cover the above - the client api version is now 17 - . - boring multiple local file services work: - the main search object now stores the file domain using a new 'location context' object that will in future hold multiple file services and can say whether we should search files currently in a domain, or those once deleted from it. a variety of back-end search code has been updated to deal with this more flexible situation - removed more static references to the single 'my files' domain in db and related code. in a couple places, like mr. bones, it now fetches 'all local files', but this will likely be updated in future to a new umbrella 'all non-trash, non-repo-update-files local files' service
[Expand Post] next week I've had some real trouble keeping up recently, but that's ok. A bunch of it is out of my control, so I'll keep pushing anyway. Next week is due to be a 'medium' job week, and I would like to break up the gui session object into smaller pieces. Instead of saving the whole thing, it'll track and save and share individual pages. This will greatly reduce the random CPU lag and HDD use on any client with a large session, let crazy users to store more than 500,000 files in a session at once, and allow us to save changes more often. Basically the same improvement I made to subscriptions and the network objects in the last year, but for gui sessions. I'm due to take my vacation week in two weeks, so I'll aim to have a simple 'clean' release week after next.
If you use a script to automatically extract the Linux or Windows release, check this >>4200 . Sorry for the trouble this week!
Linux client and server binaries also don't have execution permissions, so they don't start unless you set it.
can a focus be made on the client api in the next update or two? it's a big part of hydrus imo, as it's what users do to view their files. if they're not looking at it directly in the client, they're looking at their files through the client api. it seems to lack a lot, for one proper security, and a guide for setup over nginx reverse proxy. it doesn't reply with tag types, system tags can't be searched, tags don't get replied (for suggested searches in apps, like if I type "lin" and there's a tag for "linux", "linux" would show up to click on). I also would focus on any other networking security holes or concerns that may be related when the client api gets exposed. with that update, the client api can at least he setup securely outside, people have a decent guide to follow with nginx template, and it's secure. i'd love to be able to control hydrus network client from another machine running hydrus network client too. i'd also suggest considering changing the name of the programs, because hydrus network server seems to confuse people and make them think that is what is needed to run the client api when it's not. there's also not a good section in the docs actually going over hydrus network server.
any thoughts on providing a script downloader and parser list like the one on the github, but build it into hydrus so it can remotely grab the list alongside the ptr updates, and then users can see all available scripts and just download them from within hydrus instead of needing to import them? they'd also be able to check for updates, and update scripts with this.
>>16063 sirs to download you do press right click end select save - as button you put name of file you save want and select ok
what's the current size of the ptr? i'm getting nowhere fast tagging by hand but I don't want to have more room taken up by fucking tag mappings than images
>>16065 Mine is a bit over 50GiB.
>>16065 >>16066 I really wish there was some way to have the PTR only have mappings for files you have, so that you don't need to carry around the mappings of every file that was ever on it, just to get the mappings of the 2,000 or so files you actually have. Maybe the PTR could download everything, but then just delete the ones that apply to files you don't have, that way there won't be a privacy issue. The problem with that though is about what to do if you get a file that Hydrus already deleted the PTR mappings for. If it asked specifically for those mappings now, it would be a privacy issue again, but if it didn't, then having the PTR is useless for that file now.
(17.05 KB 785x406 db.png)

>>15850 to migrate my entire hydrus database to a new drive due to lack of space on the current, is this the correct procedure (the options are confusing, as are the docs). Also why does one show portable and the new drive doesn't? Go to migrate database dialog, add a new location for files, select the new desired drive and folder, then click what? Do I need to set the weight or anything? Or just hit "move entire database and all portable paths"?
>>16067 Developer-kun said that at some point he'll make some changes resulting in the DB deflation. I doubt though it'll become that minimalistic.
>>16053 I'm the same guy you responded to here. Unfortunately, after updating to latest (441), the same thing I was describing before happened, where image previews didn't work for a long time on boot, and when they did eventually work, the search I had open in my first page (which is only a single image I have selected, to view in the preview window, as a homepage of sorts) doesn't show up in the preview window, despite being selected. But every other image shows up in the preview window when selected. So all I can do is restart my client and not select any image until it finishes booting, again, because after booting, given my 5400RPM HDD, the client lags, and buffers inputs for several seconds before doing anything, it's weird. It returns to normal after about 30 minutes since booting.
>>16062 Some other idea that would be nice for the API: Get relationship information for a file Create a new blank page Set and modify the search query of a page Move/reorder a page Refresh a page Not sure if this is possible, but it would be nice if the API could return the total number of occurrences of a tag in the database without having to do the more expensive and slow metadata search.
>>16067 I think this would be a privacy unfriendly way to do this, as you'd have to hash match every single file you import remotely. Hydrus doesn't do this currently correct (remote hash matching), I assume the point of the local db is to have it all localized, yes?
>>16062 >>16071 >tags don't get replied (for suggested searches in apps, like if I type "lin" and there's a tag for "linux", "linux" would show up to click on). this. lolisnatcher app is great, but I can only search for tags i remember because of this issue. also when this is implemented, i hope it recognizes tag siblings and stuff. for example if I type person:anya taylor or anya taylor, but in hydrus the master is set to person:anya josephine marie taylor-joy, it should still show up as a suggestion when i'm typing person:anya taylor or anya taylor. This way you don't have to worry about typing in the wrong sibiling spelling and the tag not showing up or some shit.
please add a search bar to the select gallery (for downloader). it's impossible to find stuff when you have many downloaders installed.
>>16066 Damn, probably still not worth it then, I only have 25gb of files.
>>16075 You'll lost on time spent to manually tag all your files, if not on disc space.
devanon Ran into a problem, hoping you can provide some insight. I was running version 430 of Hydrus. I did a full system update (Arch linux) and now I get an error when launching Hydrus. I am running Hydrus from source, and it was working fine. I tried using the latest version of Hydrus, but I still get the same error when launching the program. Here is the error message: :0: UserWarning: You do not have a working installation of the service_identity module: 'No module named 'service_identity''. Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied. Without the service_identity module, Twisted can perform only rudimentary TLS client hostname verification. Many valid certificate/hostname mappings may be rejected. 2021/05/29 15:06:54: hydrus client started 2021/05/29 15:06:55: hydrus client failed 2021/05/29 15:06:55: Traceback (most recent call last): File "/mnt/hydrus/hydrus/hydrus_client.py", line 215, in boot from hydrus.client import ClientController File "/mnt/hydrus/hydrus/client/ClientController.py", line 28, in <module> from hydrus.client import ClientCaches File "/mnt/hydrus/hydrus/client/ClientCaches.py", line 15, in <module> from hydrus.client import ClientFiles File "/mnt/hydrus/hydrus/client/ClientFiles.py", line 21, in <module> from hydrus.client import ClientImageHandling File "/mnt/hydrus/hydrus/client/ClientImageHandling.py", line 6, in <module> import cv2 ModuleNotFoundError: No module named 'cv2' Any insight or feedback you could provide to help troubleshoot or resolve would be greatly appreciated.
>>16076 I have obscure enough tastes that I'm not really sure how much of it would even get hits from ptr to begin with. I used iqdb-tagger and it only managed to tag about 5% of what I gave it(, and with such shitty tags that any time saved was spent cleaning them up and setting up siblings).
>>16054 >>16055 Sorry, it is now moved to the 'logins' section of that menu, just below 'downloader components'. I looked through my update code since 430 and there doesn't seem to be anything related to login scripts. I really haven't touched this system in a while, let along three months. I am sorry for the trouble. If the login script is a 'normal' one, you shouldn't need a cookie, just your normal username/password, which you put in the login dialog, also under that 'logins' menu. Basically: (manage login scripts) -add the script (manage logins) -link it to the domain if it isn't already -set your username/pass and activate it -it should make sure you are logged in whenever you get anything from that site >>16061 Thank you! This is fixed for next week. Sorry again for the trouble. >>16062 >>16073 >>16071 Thank you for your comments. Unfortunately I am always crushed for time, so I can't get much done at once, and I always have five big fires to put out, so it is difficult to schedule focus on one area, particularly something that can be iterated on in small parts. I've been trying to fold little Client API updates into my regular weekly work. Wildcards got added to search recently, and I improved service fetch and the User-Agent call this past week. I am not happy with my current rate of Client API work, so I hope to kick out more updates regularly. If you are interested, you can see how badly I am doing at keeping up with this nice masterlist: https://github.com/hydrusnetwork/hydrus/issues/656 As you say though, I can prioritise, so the next thing I'd like to push on is tag autocomplete (typing 'sam' and getting 'character:samus aran' and other results).
>>16063 Yeah, that's my dream update for the next big network engine push. If you ever used Nexus Mod Manager with the old TES games, that's what I have in my head. I want lists of available mods (downloaders) that is fetched from one or more remote locations that your client can check, and then I want proper unique ids and versioning for downloaders so the client can see 'oh blahbooru updated to v3.1, want to get it?', and then it all updates with no fuss. I regret there is no versioning atm. The current system is easy-ish to expand with new things, but hell to update with fixes. >>16065 >>16066 >>16067 >>16069 >>16072 >>16075 >>16076 >>16078 It is about 1.2 billion tag mappings, using 70 million unique tags and 23 million files. And yeah, the total db investment, which practically has to be SSD, is getting too huge for 'lite' users. That said, all those tags are useful in many situations typical imageboard lads have, and if you want to distribute 1.2 billion tags, I'm really happy with the efficiency and privacy of my implementation. >>16067 The problem with this is it boshes the mappings for files you don't yet have. I could store a 23 million row database table of all the files the PTR has tags for, and then any time you imported a file on that list (hence we needed to add those tags), process those tags. But then I'd need to look up every update regarding that file, which means I'd need a 23 million * n table of file->update_numbers, and we'd also not have the 'all known files' domain for when you enter tags in manage tags. It would ultimately be a much more complicated system than we currently have, and the current system is already difficult enough to wrest under control. Although the current table is gigantic, it is simple. Ultimately, my plan is roughly a mix of different mitigations: - serverside tag filter so we can clear out shit en masse (e.g. purge all filename tags) - clientside tag filter so you can choose just to sync with series/character/creator (etc...) if you want - definition recycling tech so the PTR can age-out really old and duplicate content - improve janitorial workflow and user permissions, see where that takes us (e.g. maybe in several years, only some users are able to commit 100,000 automatically parsed mappings in one go) - once the janitorial side is working better, discuss breaking the PTR up into multiple servers that store specified roles, e.g. 'anime boorus', 'furry content', 'real stuff', 'reddit', 'memes', etc... and then users can choose what they are interested in - some misc stuff like better statistical sampling and viewing of what we have (e.g. 'what percent of the PTR is filename tags?'), so we are making more informed choices In general, the clientside tag filter is the best solution here for users who are more concerned about SSD space. series/character/creator are about 33% of the PTR, unnamespaced is about 33%, and the rest of the namespaces are about 33%. It'll all take a bunch of work, unfortunately. But I'm happy with how efficient the PTR is at processing now. Now I have to work on managing all the stuff we have collected.
>>16068 Yes, that looks great. Now you'd hit 'move files now'. The client may freeze up once or twice while it transfers, but just let it work. Try increasing the 'weight' of your E drive location and you'll see what it does. Should go 67% : 33% and then 75% : 25%. Thank you for the feedback on the terms. This has always been a too-technical dialog, I'll brush it up to be more user-friendly. 'portable' just means 'beneath the db dir', it isn't something most users need to care about. I have plans to rework how a lot of this works, with better rules than 'weight', and supporting background transfer. >>16070 Thank you for the feedback, I'll keep working. >>16074 Thanks, this is a great idea. I don't have a widget yet for this 'quick filter a list', but this would be a good thing to start on. >>16077 It looks like you are missing a python package, which shouldn't be too big a deal to fix. Since you are on Arch, are you using the Arch package here? https://aur.archlinux.org/packages/hydrus/ I don't know much about how this works, beyond it essentially automatically setting you up to 'run from source'. Now I look at that page, I see that 'python-opencv' is in red--could that have maybe been removed from Arch in some way? Make sure you have a backup of your db before messing with any of this! In any case, if you are running from source, your 'solution' by the book would be to run: pip3 install python-opencv But don't do that just yet. If you are running from source yourself, you'll need to activate your virtual environment first. If you are on the Arch package, you'll have to activate that however it does it, which I am not familiar with. If there is a 'venv' directory in your install, you can try prefacing the pip3 line with: . venv/bin/activate If you set up to run from source in the old Arch and never had a venv, then my bet is the new Arch moved up to python 3.8 or something, and your old (system) python environment was lost. In this case, check my newest 'running from source' help. It is a lot easier these days, just set up the venv and then install from the requirements_ubuntu.txt: https://hydrusnetwork.github.io/hydrus/help/running_from_source.html Let me know how you get on. I see twisted is also moaning about 'service_identity', so it sounds like your whole python environment may have been cleared out.
>>16078 You know, thinking about this more, even though it is probably an idle thought, It'd be neat to have a 'tag browser' where a user could preview what kind of tags they'd see with the PTR. The guys who contributed to the PTR have a lot of really obscure tastes too, legit weird shit, so many people who think they wouldn't find their stuff tagged are pleasantly surprised when they do catch up in processing. That said, if a user previously ran batch optimisers or file resizers on their files (so their personal collection has no shared hashes with what's on the boorus etc...), then there usually is a zero hit rate. I guess it would be a website hooked up to a future client api of a client that was fully synced, which is probably just too much work for the value of it. Maybe the server itself could optionally offer that service--upload a file/hash and get back the current tags (although the server isn't really tuned for this kind of lookup, so it might be computationally unreasonable).
Is it possible to configure the downloader page's right click context menu to allow the removal of only the archived pictures that are selected? If not then would it be possible for this feature to be easily implemented? Perhaps it could be designed to only trigger if multiple pictures are selected. My use case is that when running a query I like to determine how many of the pictures in a given range were already archived and add that to the number that I archive when I manually archive/delete filter my way through them, to determine the most recent % of pictures that I'm keeping. So for example I might determine that I kept 20% the first 500 pictures the query returned, but only 10% of the second 500. I run most of my booru queries with the order:quality tag, so this is a common occurrence since on average the better art is the higher its quality rating is. When the percentage I keep drops too low I stop using the query.
>>16082 for me it's not weird fetishes so much as mainly collecting fanart of things I like and often scraping the very bottom of the internet for crumbs. It's not a "I only like fat orc girls shitting" thing, it's a "I only like this game from 20 years ago that was never translated and I even have fanart of it from old dead fansites". Technically the tag browser idea would answer that though, since it would tell me if there's even mappings for the series/characters to begin with. The main solution I'm interested in is just getting character/series/creator tags from ptr since 90% of the time when I search for something it involves just those tags. I'm slowly adding content tags to things I really like, but I also have 9k images without character tags, and countless missing creator tags (I really love how easy Hydrus makes it to preserve source/creator details, and I heavily mourn all the images I lost track of the origin of).
>>16084 >I really love how easy Hydrus makes it to preserve source/creator details Does it? It personally annoys me that there's no equivalent to the wiki that danbooru has.
Devnon,I don't generally like coming in to drop feature requests,but I have recently felt the lack of two (relatively)minor things and thought I might as well throw them out here just in case you happened to wish to feel some dopamine actually crossing things out of your todo list for once since these are both just a specific alternate of something that already exists :^). *Would appreciate a binary/boolean type rating that just exists and responds to system:has/no rating without extra data associated.,You can currently emulate this pretty well by setting a numerical rating with a max of 1 but that is still ends up being clunky in usage.I am currently using the numerical emulation version of this to set things for exportation to other parts of my system(ie wallpaper rotation) *Could we mayhaps get a version of "system:filetype is animation" that only shows things that actually animate,that is,have more than one frame? Hydrus already seems to differantiate them since the single frame gifs and such don't have the play icon on their thumbnails. These are both mostly feel-good features rather than functional ones so feel free to ignore this if you have something else you want to focus on.
>>16085 significantly better than folders for it, since with folders you'd need to sacrifice how easy it is to find shit to better preserve these things tag wiki might be nice but if the artist hasn't deleted their shit I can just follow the source link back to their social media, or otherwise search them out using the name I have for them.
>>16081 >Try increasing the 'weight' of your E drive location and you'll see what it does. Should go 67% : 33% and then 75% : 25% Still not entirely clear as to what this is doing, it's a bit confusing. I want to move my entire hydrus db over to the F drive (to use the E drive for other stuff), currently it's showing a weight of 1 on both, and ideal usage shows 107gb 50% on each drive. Do I have to keep clicking increase location weight on the F drive, until it shows 0% on the E Drive, and the full 214GB on the F drive? Also unrelated, but is it possible to use regex to search? For example to search for "hairy*" and it would conduct a search for the tag "hairy" as well as any tags like "hairy armpits" "hairy pussy" etc. This would be easier then typing in every tag you want. Also what about delimiters, for example typing in "hairy*" then another tag "-*armpits", so it searches for all hairy tags, except for anything with armpits in the tag. Sorry if my regex sucks, I am still garbage at it lmao. But I'm sure you get my point. Of course this could be extended to the client api too.
>>16077 >>16081 Thanks devanon. Resolving the python-opencv dependency fixed the problem. I don't use the package from AUR, I just pull from hydrusnetwork github. I never did setup a venv, I have just been relying on system dependencies. Thank you for your help with this. And thank you for all the work and time you put into the project. I enjoy your software, it's pretty cool. I owe you a beer.
>>16088 >Still not entirely clear as to what this is doing, it's a bit confusing. I think I see, I just had to remove the E drive, then click move and it moved it all over.
>>16079 Wildcard searching in the API is great. Thanks a lot for the addition of this feature!
Is there a way to clear deleted tag records? I made a mistake with some pool and page numbers (can't tell the correct and incorrect ones apart), so I had to delete all those tags, but when I try to re-download them fresh, the correct tags don't get added again.
Is the number of times a picture with a specific tag was archived or deleted stored somewhere? If not would it be reasonable to implement that tracking statistic? Ideally I would love to be able to see the % of pictures with a given tag that I archived instead of deleted and be able to view a list of tags sorted in descending order based on that statistic. This would allow me to easily identify which tags I like the most which would improve the quality of my future searches.
devanon I upgraded to 441 from I think 437 and hydrus no longer launches when on a mapped network drive in windows. Even a fresh unzipped copy fails to launch, the client.exe process starts, takes about 400mb of memory, and spins 1 thread at 100% indefinitely (hours at least). This worked fine previously and version 441 runs fine when located on a local drive in my system. What do?
why does hydrus client not load results dynamically? if I search for a tag, and there's 5k results, it tries to load them all before showing anything.
Is it possible to tell a gallery search to stop after a specific number of pictures and then, after having reached that limit, override the limit and have it continue returning pictures?
>some data was not uploaded unfortunately your account (public user: read only) does not have full permission to upload all your pending content of type (tab siblings, tag parents)! did something change with the ptr? or was I banned from uploading siblings and parents? ._. I can upload tags no issue. siblings and parents also worked about a week ago I last tried.
>>16090 this morning I woke up, and when I click database, it shows an option saying database is complicated. It opens the migrate dialog and says the database is in two different places. Apparently it was 60gb left on the other drive I assume it ended early because I set it to a max of 1hour. I just moved the rest over and it showed 0 left on the E drive, and 100% on the new drive. However, it still shows the database is complicated error, and errors saying the database is spread along multiple places. I'm trying to update my database backup and it won't let me. The database all now should be residing on the F drive, so idk if this is a bug or what?
(18.82 KB 998x406 db.png)

>>16099 forgot text lmao it showed there were still some thumbnails, so i clicked move files now, and it brought it down from 300mb in thumbnails to 169, why tf isn't it just moving it all over to the F drive? the weight is literally n/a and the ideal usage is nothing.
>>16100 ok jeez, i ran it once again, and it finally removed the E line and shows everything is on the f drive. I restarted hydrus, and it still won't show the backup database option, it still shows the database is complicated thing. ._.'
I had a great week. I succeeded in overhauling the client's GUI sessions, greatly reducing the storage and write I/O required for sessions. This particularly benefits clients that have sessions storing many files or URLs. The release should be as normal tomorrow.
>>16088 >>16090 >>16098 >>16099 >>16100 >>16101 I am sorry for the confusion, I did not realise you wanted to move everything over to F. It sounds like you have it sorted now. For the backup, I have made the decision that I cannot write a clever multi-location backup system better than the many third-party options available, so my in-client backup only works on a simple install where everything is tucked under the 'db' directory. Since you are now an advanced user, please check out my help here: https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#backing_up FreeFileSync is great, I highly recommend it. As for >>16088 , I am afraid there is no regex search. I may not be able to feasibly provide it on any large scale with current tech, since SQLite does not offer fast text search for regex. Asterisk wildcard (e.g. 'sa*an' giving 'character:samus aran') works in several ways, though. You can alter the complex wildcard rules under tags->manage tag display and search.
>>16083 Ah, this is an interesting and clever thought. At the moment, the remove->archived options on the current right-click menu are a little shallow, but if in future it worked algebraically, I suppose you could nest it into some sort of selected->archived, although I don't know how nice the UI would be to handle that. Unfortunately, before I can think of expanding them, I need to do some background work on select/remove to get them working in the shortcuts system. This may or may not fit in your workflow, but if you select the first 100 files in your page, the status bar at the bottom of the main window should say like '100 images, 65 archived, 35 inbox'. If what you are aiming for is a quick count from a selection, does that maybe do it? >>16084 Thanks for explaining, that's interesting. I'd say hesitantly that you might want to wait for me to eventually get around to these clientside tag filters. You are the use-case I am thinking of, and I'd really like it to be easy for you to say 'yeah, I want the PTR, but only character/series/creator'. I am not sure when I will get to this work, but I really want it done this year. It'll likely be a 'medium-size' job week, or a couple in a row, once I have done the serverside filter and the janitor workflow improvements. >>16086 Thanks. Check out the 'like/dislike' rating services. You can add them in services->manage services just like the numerical, and they are just a single rating bubble you can click on or off (actually, they support like/dislike/off with different clicks, but I never personally use the dislike). I use several myself for favourites of different sorts, and 'read this later', and 'this works as a good reaction image'. Just basically clickable tags. For 'filetype is actually an animation', if it isn't inconvenient, can you try adding 'system:duration' as well? I use 'system:has duration' a lot as a catch-all for all types of video, and if you really want to get finicky, the duration panel also has a 'system:number of frames'. >>16089 Great, thanks for letting me know! I am glad you like my program.
>>16092 Yeah, but it is complicated. Hit tags->migrate tags, which is a power tool for doing big complex jobs. Make sure you read the whole dialog, make a backup before you fire a job off, and then you'll be doing something like: mappings | my tags | deleted/my files/all tags | clear deleted record | my tags But if you know this is just page and pool tags, you might want to change the filter to just 'page:' and 'pool:'. >>16093 Yeah, I want to add a bunch of stuff like this. There's a super-prototype version of this in manage subscriptions, maybe only in advanced mode, that'll fetch the archived : deleted ratio for a particular query to let you know whether the sub query is good or not. This is on my mind, and as I get around to adding tag metadata tech (i.e. metadata about tags), I'd like to show this. This is beyond what you are talking about, but there are potentially similar topics in machine learning. I'd like in 2022 or 2023 to start early experiments in neural networking tech, and I hope that will harvest some interesting info too, like 'images you favourited tend to have this tag'. Once we have this knowledge, there are many ways of phrasing it (e.g. 'show me stuff I am likely to like') to help future workflows. >>16094 Ah, damn. The new build on github must be using one of the versions of PyInstaller that cannot handle network drive executables. I had been refrained from updating my own PyInstaller version for precisely your issue. I can't look into it now, but I'll try to check into this issue and see what the situation is with this old bug, it may be fixed by now. Github was already bitching at me for using PyInstaller 3.5 in my requirements.txt. Please roll back to 437 for now, or see if you can figure out a temporary local install. I am sure you know, but just in case you don't, you can point to a db somewhere else with the '-d' launch parameter: https://hydrusnetwork.github.io/hydrus/help/launch_arguments.html >>16095 I experimented with loading results in in batches some time ago, and ultimately (at that time), there was much more CPU involved in successively updating the 'selection tags' list (and various other aggregate stores of the current page) with new batches than there was in just computing it once when everything was loaded. It also makes various things more complicated. Note that unlike a booru, which is tuned for paginated fetching, I can't deliver any results at all in the first phase of search. When you see in the status bar it thinks a bit, and then it starts building up results in batches of 256, that first bit is where it actually does the search proper. So even if I loaded dynamically, the only time I would be saving would be the time it was fetching 256 at a time, and then there would be the additional merge CPU cost. I may revisit this, but overall I've been putting my time into improving the speed at searching and result loading works behind the scenes and generally advising people to use system:limit as much as they reasonably can anyway. >>16096 Sort of, although not in a pretty way. If you set a 'file limit' on a gallery, it'll stop searching at that point. Then, when you revisit it, if you bump up the file limit and then click on the 'gallery log' button, and then right-click the last fetch, you can say something like 're-do this page and keep searching'. That'll then keep going until it hits the new limit. When I do what you are talking about, I tend to babysit my queries, usually in batches. I'll let a couple of gallery pages fetch for a creator and then pause the gallery search. When I come back half an hour later, the 84 files or whatever will have downloaded and I can see if that preview seemed good, and then delete the query or let the gallery search continue depending on what I think.
>>16097 We've been slowly working to a new account format for the PTR, with a public account that can read, and multiple accounts created by users that can write. I started talking about it here: >>15952 but then we had some technical problems that I had to figure out. Please forgive the roughness--this is the first time a lot of this code and UI has really been used on any scale since hydrus started, and I still have a ton of janitor workflow to improve and some sibling/parent maintenance code to catch up on. There's some longer additional convo about privacy implications starting here >>15954 . tl;dr: I think we're still good overall. Did the error message you got talk about maybe making a new account under services->manage services? That's going to be the way we're generally going, although I need to work on workflow and improve the help as we figure out what works. In any case, to fix your actual problem, please hit services->manage services, then find your PTR entry, and in that click 'check for automatic account creation'. It should let you generate your own account that can upload parents and siblings. When the janitors look at the stuff you upload, it will be just that (before, with the public key, all the good stuff and the shit was mixed together because it was just one account, and it was increasingly difficult to sort through).
(15.75 KB 965x406 db.png)

>>16103 >For the backup, I have made the decision that I cannot write a clever multi-location backup system better than the many third-party options available I get that, but if I am moving EVERYTHING over to the new drive, I don't have any multi-locations. So I fail to understand why it's giving me this issue.
Are there any plans for a "group by" option in media list? Similar to the current collect option but still keeping the results expanded rather than collapsed, and then doing a line break and some padding between grouped rows. Would be great for organizing broad searches like a certain series, then grouping by artist or character. Thanks as always for your work on this, amazing project.
>>16107 The database counts as a THING. Put your files inside the db folder
Is there a way to limit the simultaneous connections per domain? Sometimes I want to download a bunch of tags from various sites, but I know that with sankaku I can only have ~2 queries going at the same time. Currently I either have to manually pause and unpause or just leave it and have a bunch of galleries stuck because sankaku is hogging all the slots.
>>16109 I don't understand what you are trying to tell me, all the files are in the db folder. It says 214gb is media.
>>16111 Have a read of this to learn more about the structure of hydrus's database: https://hydrusnetwork.github.io/hydrus/help/database_migration.html As well as your files, there are also some .db files where all your settings and subscriptions and file lists and tags etc.... are stored. On that migrate dialog, see where it says 'database : E:\...' up top.
https://www.youtube.com/watch?v=bpEFn3MFyfA windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v442/Hydrus.Network.442.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v442/Hydrus.Network.442.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v442/Hydrus.Network.442.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v442/Hydrus.Network.442.-.Linux.-.Executable.tar.gz I had a great week. An important part of GUI Sessions is overhauled, which should save a lot of hard drive time for larger clients. gui sessions I always encourage a backup before you update, but this week it matters more than normal. If you have a client with large sessions with many important things set up, make sure you have a backup done before you update! I feel good about the code, and I try to save data on various failures, but if your situation gives errors for an unforeseen reason, having the backup ready reduces headaches all around! Like the subscriptions and network objects breakups I've done in the past year, I 'broke up' the monolithic GUI Session object this week. Now, when your session has changes, only those pages that have changed will be saved, saving a ton of CPU and HDD write I/O. Furthermore, sessions that share duplicate pages (this happens all the time with session backups), can now share that stored page, saving a bunch of hard drive space too. Like with subscriptions, some users are pushing multiple gigabytes of session storage total, so there is a good amount of work to save here. You don't have to do anything here. Everything works the same on the front end, and all your existing sessions will be converted on update. Your client should be a little less laggy at times, and client shutdown should be a bit faster. If any of your old sessions fail to load or convert, a backup will be made so we can check it out later. Let me know if you have any trouble! Advanced stuff: Another benefit is the old limit of 'sessions fail to save at about 500k session weight' now applies to pages individually. Please don't immediately try to nuke your sessions with five million new things, but if you do end up with a big session, let me know how other performance works out for you. Now this bottleneck is gone, we'll start hitting new ones. I believe the next biggest vulnerability is thread starvation with many simultaneous downloaders, so again please don't paste-spam a hundred now queries (for now). If you have been tracking session weight (under the pages menu), I am rebalancing the weights. Before, the weight was file = 1, URL = 1, but after all our research into this, I am setting it to file = 1, URL = 20. In general, I think a page will fail to save at the new weight of about 10 million. If you are in advanced mode, you can now see each page's weight on page tab right-clicks. Let's get a new feeling for IRL distribution here, and we can aim for the next optimisation (I suspect it'll eventually be a downloader-page breakup, storing every query or watcher as a separate object). Since URLs seem to be the real killer, too, see if you can spread bigger downloads across multiple download pages and try to clear out larger completed queries when you can. the rest I did a bunch of little stuff--check the changelog if you are interested. I have also turned off the interval VACUUM maintenance and hidden the manual task for now. This was proving less and less useful in these days of huge database files, so I will bring it back in future on a per-file basis with some UI and more specific database metadata. EDIT: Thanks to a user submission, yande.re post parser is updated to pull tags correctly if you are logged in. I hoped my update code would move the link over from the old parser correct, but it did not. I'll fix this for next week, but if you download from yande.re while logged in, please hit network->downloader components->manage url class links and move 'yande.re file page' from moebooru to 'yande.re post page parser'. We fixed a couple more problems with the new builds--the Linux and Windows extract builds have their surplus 'ubuntu'/'windows' directories removed, and the Linux executables should have correct permissions again. Sorry for the trouble! And after some tests, we removed the .py files and the source from the builds. I long-believed it was possible to run the program from source beside the executables, but it seems I was mistaken. Unless you are running the build-adjacent source pretty much on the same machine you built on (as my tests years ago were), you get dll conflicts all over the place. If you want to run from source, just extract the source proper in its own fresh directory. I've also fleshed out the 'running from source' help beyond setting up the environment to talk more about the actual downloading and running of the program. I'll continue work here and hope to roll out some easy one-and-done setup scripts to automate the whole thing.
full list - gui sessions: - gui sessions are no longer a monolithic object! now, each page is stored in the database separately, and when a session saves, only those pages that have had changes since the last save are written to db. this will massively reduce long-term HDD writes for clients with large sessions and generally reduce lag during session save intervals - the new gui sessions are resilient against database damage--if a page fails to load, or is missing from the new store, its information will be recorded and saved, but the rest of the session will load - the new page storage can now be shared across sessions. multiple backups of a session that use the same page now point to the same record, which massively reduces the size of client.db for large-sessioned clients - your existing sessions and their backups will obviously be converted to the new system on update. if any fail to load or convert, a backup of the original object will be written to your database directory. the conversion shouldn't take more than a minute or two - the old max-object limit at which a session would fail to save was around 10M files and/or 500k urls total. it equated to a saved object of larger than 1Gb, which hit an internal SQLite limit. sessions overall now have no storage limit, but individual pages now inherit the old limit. Please do not hurry to try to test this out with giganto pages. if you want to make do a heap of large long-term downloaders, please spread the job across several pages - it seems URLs were the real killer here, so I am rebalancing it so URLs now count for 20 weight each. the weight limit at which point a _page_ will now fail to save, and the client will start generally moaning at you for the whole session (which can be turned off in the options), is therefore raised to 10M. most of the checks are still session-wide for now, but I will do more work here in future - if you are in advanced mode, then each page now gives its weight (including combined weight for 'page of pages') from its tab right-click menu. with the new URL weight, let's get a new sense of where the memory is actually hanging around IRL - the page and session objects are now more healthily plugged into my serialisation system, so it should be much easier to update them in future (e.g. adding memory for tag sort or current file selection) - . - the rest: - when subscriptions die, the little reporting popup now includes the death file velocity ('it found fewer than 1 files in the last 90 days' etc...) - the client no longer does vacuums automatically in idle time, and the soft/full maintenance action is removed. as average database size has grown, this old maintenance function has increasingly proved more trouble than it is worth. it will return in future as a per-file thing, with better information to the user on past vacuums and empty pages and estimates on duration to completion, and perhaps some database interrupt tech so it can be cancelled. if you really want to do a vacuum for now, do it outside the program through a SQLite intepreter on the files separately - thanks to a user submission, a yande.re post parser is added that should grab tags correct if you are logged in. the existing moebooru post parser default has its yande.re example url removed, so the url_class-parser link should move over on update - for file repositories, the client will not try to sync thumbnails until the repository store counts as 'caught up' (on a busy repo, it was trying to pull thumbs that had been deleted 'in the future'). furthermore, a 404 error due a thumb being pulled out of sync will no longer print a load of error info to the log. more work will be needed here in future - I fixed another stupid IPFS pin-commit bug, sorry for the trouble! (issue #894) - some maintenance-triggered file delete actions are now better about saving a good attached file delition reason - when the file maintenance manager does a popup with a lot of thumbnail or file integrity checks, the 'num thumbs regenned/files missing or invalid' number is now preserved through the batches of 256 jobs - thoroughly tested and brushed up the 'check for missing/invalid files' maintenance code, particularly in relation to its automatic triggering after a repository processing problem, but I still could not figure out specifically why it is not working for some users. we will have to investigate and try some more things - fixed a typo in client api help regarding the 'service_names_to_statuses_to_display_tags' variable name (I had 'displayed' before, which is incorrect) - . - build fixes: - fixed the new Linux and Windows extract builds being tucked into a little 'ubuntu'/'windows' subfolder, sorry for the trouble! They should both now have the same (note Caps) 'Hydrus Network' as their first directory - fixed the new Linux build having borked permissions on the executables, sorry for the trouble! - since I fixed the urllib3 problem we had with serialised sessions and Retry objects, I removed it from the requirements.txts. now 'requests' can pull what it likes - after testing it with the new build, it looks like I was mistaken years ago that anyone could run hydrus from source when inside a 'built' release (due to dll conflicts in CWD vs your python install). maybe this is now only true in py3 where dll loading is a little different, but it was likely always true and my old tests only ever worked because I was in the same/so-similar environment so the dlls were not conflicting. in any case the builds no longer include the .py/.pyw files and the 'hydrus' source folder, since it just doesn't seem to work. if you want to run from source, grab the actual source release in a fresh, non-conflicting directory. I've updated the help regarding this, sorry for any trouble or confusion you have ever run into here - updated the running from source document to talk more about actually getting the source and fleshed out the info about running the scripts - . - misc boring refactoring and db updates: - created a new 'pages' gui module and moved Pages, Thumbs, Sort/Collect widgets, Management panel, and the new split Session code into it - wrote new container objects for sessions, notebook pages, and media pages, and wrote a new hash-based data object for a media page's management info and file list - added a table to the database for storing serialised objects by their hash, and updated the load/save code to work with the new session objects and manage shared page data in the hashed storage - a new maintenance routine checks which hashed serialisables are still needed by master containers and deletes the orphans. it can be manually fired from the _database->maintenance_ menu. this routine otherwise runs just after boot and then every 24 hours or every 512MB of new hashed serialisables added, whichever comes first - management controllers now discard the random per-session 'page key' from their serialised key lookup, meaning they serialise the same across sessions (making the above hash-page stuff work better!) - improved a bunch of access and error code around serialised object load/save - improved a heap of session code all over - improved serialised object hashing code next week I have one more week of work before my vacation. There's a ton of little jobs I have been putting off--checking new downloaders users sent in, some more help docs to work on, and magically growing multi-column list dialogs--as well as emails and other messages I haven't got to. I'll try to tidy up those loose ends as best I can before I take my break. I'll also deal with any problems with these new GUI Sessions.
>>16105 Brilliant. I was able to bump up the file limit on gallery searches using your method, with a little modification. For anyone curious, before going into the gallery log and selecting "try again" for the query, you need to change the file limit and click the "set options to queries" button. Then after trying the query again via the gallery log just unpause the search then the files and it will work. This is very helpful for my workflow. Now I don't need to worry about leaving queries running for too long and getting too many pictures. I'm also the guy who asked about removal operations working on only the selected pictures. Somehow I hadn't noticed those stats on the bottom of the screen, that's helpful as it effectively allows me to double the number of pictures I can search at once. I can search say 200 pics, and then determine the statistics for the first 100 and second 100 separately using that info. I've already been enjoying the archived : deleted ratio in manage subscriptions, very much appreciated! I'm excited to see how neural networks eventually improve your program (and boorus in general) in the future. I have little doubt that I'll still be using hydrus network in a decade so I can wait as long as it takes.
>>16112 I already looked at that, I see what you are saying though. I am still confused on how I'm supposed to go about doing it though. How exactly do I move that db folder over to where I migrated the rest of the files (F/Docs/HydrusNetwork)? I see the option to "move entire database and all portable paths", (I guess I should have used this originally) but it asks for a location to migrate, and I can't choose the one I already migrated everything too (F/Docs/HydrusNetwork) because it has the already migrated files in it, and it tells me to select an empty folder. I'm assuming forcing it will fuck up shit so I'm not going to.
>>16116 Yeah, since you are already broken up, I think I'll recommend that you just do it outside the client: - shut the client down - make sure you have a full backup of everything - move install dir with its db to a new location on F - boot the client. it'll most likely complain that it can't find your files and give you a dialog to remap the locations. set them up so you are good - go back into migrated db dialog and make sure all the paths are where they seems like they should be. if you want, move the media files back inside the db dir to make them 'portable' again, the move should be quick this time since it is inside the same partition - you should be good. make a new shortcut if you need to to the new install dir Let me know if you run into any more trouble.
>>16113 A minor hiccup. After decompressing "Hydrus.Network.442.-.Linux.-.Executable.tar.gz", the folder's name changed the "N' of network to Uppercase. Not a deal in Windows but it may cause trouble to unskilled Linux users.
>>16117 For clarity in this post, F/HydrusNetwork is the new directory that I migrated, and E/HydrusNetwork is the old directory I'm trying to move to F/. >move install dir with its db to a new location on F the install dir is the "Hydrus Network"/ folder that contains all the other folders and files such as bin/, db/, hydrus/, static/, certifi/, cv2/, client.exe, etc. correct? Also the new Hydrus Directory currently is empty, except for a bunch of folders (with the media) with the arbitrary names such as f0, f8, a0, c0, etc. Do I just copy all the folders and files out of E/HydrusNetwork as mentioned above, then drop them into the new F/HydrusNetwork directory root alongside all those files with arbitrary names? >it'll most likely complain that it can't find your files and give you a dialog to remap the locations will I give it the directory of the F/HydrusNetwork just for clarity? Just wanted to ensure I had the correct folder placements. Thanks.
(8.52 KB 178x72 asdfgerg.jpg)

I know it's experimental but "replace all underscores with spaces" option is kind of useless if you're not gonna merge the two tags
>>16120 pretty sure that option is simply a gui one rather than a database operation mate,the assumption is that you would have them all with underscores,I reason. Set up tag siblings if you are grabbing from a source that keeps fucking it up.
>>16121 The problem is the PTR is full of them, too many to sibling I don't use underscores on my local tags
>>16120 >>16122 >merge the two tags >ptr I originally suggested this when suggesting the underscores to spaces toggle, I completely agree that is an issue. I am also sick of needing to add siblings with underscores and spaces for the same tag. This will massively clean up the db.
an idea would be to have collections, and also be able to view files with text over them. Collections would be cool to group together files that are related or part of a series of similar files (say a photoshoot). The ability to view and add text over files would be cool with things like JOIP (jerk off instruction pictures). It could go an added step to allow downloaders to automatically fetch text added alongside images on sites like imgur, twitter, etc.
I know you're probably not testing for this dumb edge case, but I had an issue upgrading to 442 with large sessions (20 of them to convert) _and_ being short-ish on disk space (something like less than 10G available). It crashed while converting the sessions because it ran out of available disk space, and I got back to the "welcome to Hydrus" screen on next open, with everything empty (not even files available), config back to what seemed 0. Fortunately I always backup right before upgrading, so I lost nothing. This also means that I have no logs for you as my rsync erased the log file back to before the issue, sorry; I should have thought about it before restoring.
>The query something for the subscription something hit its periodic file limit without seeing any already-seen files. What does this mean? Is it bad?
>>16126 The subscription normally stops when it sees the the newest thing from the last time it checked so that it doesn't grab things multiple times for no reason. There is also an option(on by default) while setting up subscriptions to stop after a certain number of files are grabbed at once,since they are intended to continiously get new stuff rather than grab everything that gallery has,for which the actual gallery downloader is better equipped. That message is telling you that that specific subscription hit this limit (and thus stopped checking) before it saw last time's stopping point,this is intended behavior,so nothing bad has actually happened,It's just that you might have missed some files within that gallery.In which case you might want to run the gallery downloader on that link if getting all the files is important,which is why it's telling you.
>>16127 Thanks, that's fine then.
Haven't followed the threads much,but had a Feature idea - built in image converter/compressor. How big of a hassle would it be to implement that?
>>16117 I'm still trying to figure this out, I think I fucked up my dirs. I was moving stuff, and it never complained it couldn't find any dirs because I had originally moved the files already to that folder on F so it already knew the mapping. I then tried just clicking migrate entire db and all portable paths, and assumed it'd take EVERYTHING including my media, and move it over to whatever dir I choose. I guess not, because it only moved like 4 .db files to the new folder. When I went back into Hydrus, it reset all my settings and everything. It still had my media folder mapped though, but like my theme was reset and everything. So I'm very confused. Now I'm just saying fuck it, and I'm trying to move everything to a new folder, and move the media files folder into the Hydrus Network/db/client_files folder which is where I think they belong? Idk anymore. But this process is really tedious, there should be a simple button for users who literally want to move their install, db, and media files to a new directory. Just click, it moves everything automatically. Also the docs aren't very helpful for this either. I'd highly suggest considering streamlining this process, and rephrasing some of the terms in the dialog, and going over this page on the docs.
(17.68 KB 932x406 dbn.png)

>>16117 Ok so I ended up needing to restore from the backups, I placed the db and install folder I had on the E drive into a new location on the F drive, then I placed all the media folders that I had migrated within hydrus in the F drive with all my media files in it into the db/client_files. Upon starting hydrus it asked and I set the new location. However, it's showing there are two locations still, when it should only show one.It also shows one is portable and one isn't. Although I now have the option to update my database backup, so the option seems semi-fixed. I just need to figure out how to merge those two mappings into one, seeing they all are on the same folder.
>>16108 Yes, I'd like precisely that--some way of having multiple 'blocks' of thumbnails that I can separate by arbitrary boundaries, like filetype or ranges of filesize or as you say maybe play with tags too. At the moment, there are three limitations to sort/collect/group: - I am still slowly converting my sort/collect stuff to newer code. I have been able to improve this in recent weeks though, so I am feeling better about tacking on new options and tag contexts. - My thumbnail code is probably the oldest thing in the program and it is horrible. The foundation is all duct tape and bad ideas, and I need to completely overhaul all of it. It has two problems: -- It can't deal with a file appearing more than once in its media structure, which stops things like collections-by-single-tag, where you might collect by every separate 'creator:' tag, and then a file that has two creator tags could appear in two collections on the same page. -- It can't deal with anything more complicated than one list. So we can't do groups easily. Extending the data structure behind to do groups won't be super difficult, but my thumbnail drawing code is all custom and needs a similar overhaul. So, basically I need to do to thumbnails what I recently did to taglists to allow flexible tree-like sibling and parent display. It'll just take scheduling, once I am doing updating sort and collect objects and exposing all the logic here (like secondary sort) in UI. >>16110 Not yet, there's just the global value in options->connection. My plan here is to write 'domain manager' UI, which will be the one-stop location to review which domains have had recent errors, what proxies to use for which domain, maybe moving domain bandwidth options and downloader objects in there, and then additional per-domain stuff like num simultaneous connections. >>16118 Thank you. I always thought the Linux extract was the same capital letters as the Windows one. I've decided to harmonise, so please forgive any confusion in this transition, I hope this to be a one-time switch, and now we are going to stick with "Hydrus Network" going forward. ( >>16058 )
>>16119 Yep: Install = The 'Hydrus Network' folder with the executables, dll files, and folders like 'cv2' and 'static'. DB = The four client*.db files, which are default under install_dir/db. Media = The 256 'fxx' folders and 256 'txx' folders, which are default under install_dir/db/client_files. Since you are moving all to the same drive, if you have not already sorted it, I think you should do this: Move "Hydrus Network" ('install dir') to "F:\Hydrus Network" or whatever If the four db files weren't already in "F:\Hydrus Network\db", put them there. Put the 512 fxx and txx media folders in a different location on F, let's say "F:\hydmedia" (I'd say don't put the media folders inside \db\client_files in this step, just for some technical reasons related to boot-heal) Then run client.exe. It'll likely throw up the 'hold up, where the jpegs?' dialog on boot, asking for new media folder locations. Correct it by just giving it "F:\hydmedia", and it'll fill in all the gaps. It will then finish boot and load. Click on some search pages to make sure your thumbs and files are indeed all loading correct. Then hit up migrate database again, which will probably (due to the boot-heal), have some weird ideas of where files 'should' be. Just add "F:\Hydrus Network\db\client_files" as a new location, and 'remove' any other locations, and then hit up 'move files now', which should be fast across the same disk partition. It'll move all your files and thumbs 'back' to \db\client_files. Once you are done, you have a fully 'portable' install on F:\, all with 'default' locations. You should get the 'backup' command available in the database menu again.
>>16120 >>16121 >>16122 >>16123 Yeah I agree. It needs a hardcoded rule in the siblings system, but I'll have to write efficient mass-sibling logic first to get it to work in non-insane time, which will be a big step. Once that system is available though, we should also have 'rename all artist: tags to creator:' tech! >>16124 Yeah, do you mean like the translation text boxes some boorus support? I have it on my whiteboard to finally figure out 'note parsing' in the downloader system one of these 'medium size job' weeks (which I do once every four weeks). When we have that tech, I know some of the parser lads are going to try parsing that data in some standard json format or whatever, and then I can think and play around with actually displaying it. For 'collections' as I think you are talking about, please wait for later in the year, when I fully expect to flesh out the current stub 'file alternates' system. I want arbitrary file connections (e.g. 'this file is a costume change of this file', 'this file is the subsequent file in a photoshoot series to this file', and then proper thumbnail-bundling and media-viewer-browsing tech to employ that metadata. >>16125 Ah shit, I am sorry! It may have backed up a bunch of your old sessions to JSON in your 'db' directory, although I think in this special case since it was short disk space, that may even have failed. And your rsync would have wiped them, so not applicable. I am worried about your being reset to 'welcome to hydrus' like a first boot. That suggests your db files were actually wiped or truncated to zero bytes. I would obviously never do this intentionally, I have no code that deletes any db file. I think this must have been an unusual file truncation back to 0 bytes caused by the emergency situation of hot database files and no disk space. Well done for having the backup. I do the exact same as you, backup right before I update. Then you don't have to worry about anything. I have some 'check free disk space' tech in my old vacuum code. I will make a weekly job to see if I should do a pre-update check for certain amount of free space, and dump out of the attempt if it is too small. Sorry again for the trouble, and thank you for the report.
>>16126 >>16127 >>16128 Yeah, it means one of: - Someone went on an upload spree and spammed 150 pictures to that query in three days. - The site changed URL format, so the subscription thinks it is seeing a load of new stuff, when really it is the same content but with different URLs. The limit is to catch the latter situation, and the popup message is to let you check for the former. I'll update the text to be more human friendly. The remedy here atm is to run that query again in a downloader page to catch the gap you missed. I'd like to have a button that sets this up for you automatically, that would be most human friendly I think.
>>16129 It is a complicated subject. Briefly: Changing file content is a headache for various hash-based technical reasons that matter whenever you grab or communicate about files with other computers (e.g. boorus, the PTR). Compressing or converting files tends to not save all that much space overall. Normally 5-10%, and less for video, and can produce multiple conversations on what is the 'best' way to do it. (JPEGXL may be a silver bullet here, with ~50% lossless savings) I don't want to hardcode this stuff. So, what I plan to do is write an 'external executables' system for hydrus where you can set a variety of different pipeline algebras, for instance: waifu2x upscale | exe path | takes an image file using these launch parameters | produces a converted duplicate image file in this temp location ffmpeg to webm high quality | exe path | takes a video file using these launch parameters | produces a converted duplicate video in this temp location youtube-dl | exe path | takes a url using these launch parameters | produces a video for that URL in this temp location etc... Then, with that input/output algebra, I can plug those pipes into hydrus (e.g. right-click on image->convert using 'waifu2x upscale') and let users define and share all sorts of conversion and file/URL generation scenarios. Youtube-dl and Gallery-dl would obviously be great to plug in to the downloader system. Automated conversion to JPEGXL or whatever else you want would be a schedulable mass job I could pack into the existing file maintenance system, while preserving appropriate metadata across the dupes. This is a little way off, but that's my plan.
>>16130 >>16131 Thank you for the updates, I am sorry it has given you trouble. I agree that this technical dialog and the ugly help need a complete overhaul. I hope to make this all more user friendly in future. I think I should add some more red warning text to the top of this dialog in the meantime. Since you are several steps in, you can ignore my post I made earlier at >>16133 In your image in >>16131, I assume you want those media files to stay in "F:\Documents\Hydrus Network\Hydrus Network\db\client_files"? Is that the full path of that second location? It looks like hydrus has a memory (likely confused from an automatic healing routine) of them being in the "F:\Documents\Hydrus Network" location, and it thinks it should be moving them over there, so let's fix it: Click the good location with 0 weight. Click 'increase location weight' once Click the bad location with 'nothing' current usage Click 'remove location' The dialog should now have the one location, still 'portable' since it is inside your db directory, with current usage at 100% and ideal usage at 100%. Let me know if you still have any trouble.
Does that "related tags" suggestion feature in the "manage tags" area consider what tags are NOT often seen with each other? I see the related section suggestion a lot of tags that don't really make much sense together, and sometimes suggest tags that are mutually exclusive, like "solo" and a post that's already tagged "duo" for example. It would be much more useful if the statistical algorithm used here would consider tags NOT being seen often together in its suggestions as well.
(131.01 KB 1280x720 yay.jpg)

>>16134 >I want arbitrary file connections (e.g. 'this file is a costume change of this file', 'this file is the subsequent file in a photoshoot series to this file', and then proper thumbnail-bundling and media-viewer-browsing tech to employ that metadata.
Have there been any progress with ICC color profile management? I was searching for this issue, and found some posts from 2019, but after that I see nothing.
It would be cool if there was an option to have automatic search result fetching as you type, but disabling autocompletion, and instead having that be bound to a shortcut. For me, fetching exact results (ideal siblings, for example) is quick, but autocompletion is slow. I wish the was an option to enable the former, but not the latter, and have that be activated by a shortcut, like how you can do that fetching results using ctrl+space right now. This is probably easy to implement, and it would make adding tags to a bunch of files one after the other a lot easier for me, since I wouldn't have to deal with Hydrus constantly freezing for 30 seconds, but I would still automatic adding of an ideal sibling upon entering an un-ideal sibling, from the "exact" result fetching, and the shortcut would mean that I could still have actual autocompletion when I need it.
>>16050 >There is probably some proxy daemon you can run on a system that'll pipe certain requests to the TOR service that'd solve this better, given how jury rigged other solutions sound. There is already a Tor daemon that allows a SOCKS5 proxy, and I'm fairly certain you can route it through the Tor Browser's connection as well. I think the main problem is that when Hydrus makes a request, it looks a lot different from what the Tor Browser does to the server. I may be wrong, but in my understanding Hydrus just scrapes the HTML/API of the site, grabs the tags and image URL, and then downloads the image. Meanwhile, the Tor Browser would render the site in just about the same way for anyone using it, making it much more anonymous. If you use a Tor proxy in Hydrus, only your true IP is hidden from the server and your ISP cannot tell what server you connected to. They can still likely guess you're using Hydrus from HTTP headers or user agent and whatnot, along with selectively not downloading things that regular browsers do. This is better than nothing in my opinion but not nearly as anonymous as using the Tor Browser. Setting up some browser add-on to download through the browser and pipe to Hydrus would only really work for whatever image was on the page at the time. I'm not sure how subscriptions or download pages would work when called from within Hydrus without causing Hydrus dev a lot of work.
Reminder to check your backups. I had to restore from backup, and after a day of fucking around with various backups with corrupted databases the most recent working one I had was a month old.
>>16143 how do we check our backups to ensure they're okay? without restoring from it I mean. Also if there's not already, maybe it would be a good idea to implement a feature that compares the current db with the backup db to ensure it isn't corrupted and fully functional.
>>16144 It depends on how you back up. I've been making encrypted archives once a month instead of the built-in "copy everything to X folder" button, and the one I made on June 1st was corrupted. A separate daily automatic backup for some reason ignored my Hydrus folder most of the time and corrupted the databases when it didn't. I'll probably change to making a backup of the encrypted version of my Hydrus directory instead of an encrypted archive of the unencrypted data.
I had a great week working on small quality of life issues. A couple of bugs are fixed, some UI lag is reduced, and I worked on some layout too. Just a mix of cleanup before my vacation next week. I have some unavoidable IRL tomorrow, so the release may be a bit later than usual.
>>16143 >It depends on how you back up built in backup manager >>16146 >I had a great week working on small quality of life issues thanks devanon. >I have some unavoidable IRL tomorrow, so the release may be a bit later than usual. man live your life, no need to be online 24/7, unplug for a day or two. It's good for your health and feels good. we appreciate your work. just preferably let us know before you ever plan on abandoning the project :p thanks for your work!
(1.27 MB 3571x2678 aee7tg48.png)

>>16147 >just preferably let us know before you ever plan on abandoning the project :p Don't give him ideas.
(28.84 KB 658x901 photo_2021-06-09_14-33-52.jpg)

Is there a downloader for Endchan? I don't see it. So I can add an endchan catalog to my subscriptions.
>>16146 Could you consider adding a proper log/info area to see all errors from all the various things that are happening in hydrus? Like ti see subscription success and errors, watcher success and errors, any db issues, etc. Also does the backup database do any verification or anything? And can we get an option to run a manual verification on the backup to ensure it's proper even if it does? Relevant to >>16144 Thanks
>>16151 >Could you consider adding a proper log/info area to see all errors from all the various things that are happening in hydrus? Have you looked at db/client - <year>-<month>.log ? Because I think that's exactly what you're describing. Which reminds me – devanon, could you consider adding 0 padding to the month (stored in current_month, set with a tm_mon) for the log's filenames, please? My OCD gets sad when it sees 12 before 2. Thank you!
>>16152 I meant an internal viewer, in which the user could also easily filter/sort by type of error (for example, backup errors, PTR errors, etc.) Or sort/filter then export only those filtered lines to a temporary file to view it in whatever editor the user pleases.
>>16146 I'm that anon that was having the database migration troubles (E drive to F drive). All seemed to be working good, however currently I am trying to update to a newer version of Hydrus on Windows. >Update Issue/My Process Now, I used the installer as I have always done in the past, and I clicked install, and I clicked through and then it finished. I opened the client, and it was a fresh install of Hydrus. I went back into the installer, and think it tried to install it under the E drive and I didn't notice. So, I tried clicking browse in an attempt to change the install directory to the already installed one on F drive. I navigated to the install folder on the F drive, clicked it, and it prompted me with a message stating that "The folder: F:\Docments\Hydrus Network\Hydrus Network" already exists. Would you like to install to that folder anyways?; Yes; No". I selected no for now, and just canceled the install on that dir.. because I am unsure if this is going to overwrite that directory, or it's just stating it will update that directory (I would suggest clarifying this in the installer btw). >New Folder Also upon doing that first install, it created a Hydrus Folder in the E drive, I'm assuming this is safe to delete. It also changed my system shortcut (windows search) for hydrus to that E drive instead of the one on my F drive. If I manually go into my F drive at F:\Documents\Hydrus Network\Hydrus Network\client.exe and launch it, my original database is there and looks fine. So it seems like it created a new client and database on that E drive where Hydrus used to reside before I moved it to that F drive. >So I'm not sure what to do..? I just want to update my Hydrus on the F drive, and in the end the ONLY Hydrus install (and ALL the folders for Hydrus) that should reside on this system in that "F:\Documents\Hydrus Network\" folder.
A cool idea: fetch media from jellyfin and nextcloud and just parse the tags (don't download the files) So users can import their porn libraries but without having double of all their files (it basically streams right from Jellyfin through Hydrus). Hydrus would just store the url, and any file information such as the hash of the file and what not, then the user could apply any tags to it. It just wouldn't download the file.
https://www.youtube.com/watch?v=NgYIIPszZjA windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v443/Hydrus.Network.443.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v443/Hydrus.Network.443.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v443-macos/Hydrus.Network.443-macos.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v443/Hydrus.Network.443.-.Linux.-.Executable.tar.gz I had a great week doing nice cleanup and quality of life work. Hey, we had a problem getting the macOS release to build this week. The macOS link above goes to a build using a simpler and faster method. It should work fine, but please let me know if you have any trouble. As always, back up before you update! highlights Popup messages can now launch complex jobs from a button. The first I've added is when a subscription hits its 'periodic' file limit. The situation itself is now better explained, and a button on the popup will create a new downloader page with the specific query set up with an appropriate file limit to fill in the gap. The second is if you try to upload some content to a repository that your account does not have permission for (this is affecting sibling- and parent-uploading PTR users as the shared public account is changing), the popup message that talks about the issue now has a button that takes you straight to the manage services panel for the service and starts automatic account creation. Subs should now be more careful about determining when they have 'caught up' to a previous sync. Small initial file limits are respected more, and the 'caught up' check is now more precise with sites that can give multiple files per URL or very large gallery pages. I gave options->speed and memory a full pass. The layout is less crushed and has more explanation, the options all apply without needing a client restart, and the new, previously hardcoded cache/prefetch thresholds are now exposed and explained. There's a neat thing that gives an example resolution of what will be cached or prefetched, like 'about a 7,245x4,075 image', that changes as you fiddle with the controls. The client has recently had worse UI lag. After working with some users, the biggest problems seemed to come in a session with lots of downloaders. I traced the cause of the lag and believe I have eliminated it. If you have had lag recently, a second or two every now and then, please let me know how things are now. If you use the Client API a lot while the client is minimised, you can now have it explicitly prohibit 'idle mode' while it is working under options->maintenance and processing. full list - quality of life: - when subscriptions hit their 'periodic file limit', which has always been an overly technical term, the popup message now explains the situation in better language. it also now provides a button to automatically fill in the gap via a new gallery downloader page called 'subscription gap downloaders' that gets the query with a file limit five times the size of the sub's periodic download limit - I rewrote the logic behind the 'small initial sync, larger periodic sync' detection in subscription sync, improving url counting and reliability through the third, fourth, fifth etc... sync, and then generalised the test to also work without fixed file limits and for large-gallery sites like pixiv, and any site that has URLs that often produce multiple files per URL. essentially, subs now have a nice test for appropriate times to stop url-adding part way through a page (typically, a sub will otherwise always add everything up to the end of a page, in order to catch late-tagged files that have appeared out of order, but if this is done too eagerly, some types of subs perform inefficiently) - this matters for PTR accounts: if your repository account does not have permissions to upload something you have pending, the popup message talking about this now hangs around for longer (120 seconds), explains the issue better, and has a button that will take you directly to the _manage services_ panel for the service and will hit up 'check for auto-account creation' - in _manage services_, whenever you change the credentials (host, port, or access key) on a restricted service, that service now resets its account to unknown and flags for a swift account re-fetch. this should solve some annoying 'sorry, please hit refresh account in _review services_ to fix that manually' problems - a new option in maintenance and processing allows you to disable idle mode if the client api has had a request in the past x minutes. it defaults disabled - an important improvement to the main JobScheduler object, which farms out a variety of small fast jobs, now massively reduces Add-Job latency when the queue is very busy. when you have a bunch of downloaders working in the background, the UI should have much less lag now - the _options->speed and memory_ page has a full pass. the thumbnail, image, and image tile caches now have their own sections, there is some more help text, and the new but previously hardcoded 10%/25% cache and prefetch limits are now settable and have dynamic guidance text that says 'about a 7,245x4,075 image' as image cache options change - all the cache options on this page now apply instantly on dialog ok. no more client restart required!
- other stuff, mostly specific niche work: - last week's v441->442 update now has a pre-run check for free disk space. users with large sessions may need 10GB or more of free space to do the conversion, and this was not being checked. I will now try to integrate similar checks into all future large updates - fixed last week's yandere post parser link update--the post url class should move from legacy moebooru to the new yandere parser correctly - the big maintenance tasks of duplicate file potentials search and repository processing will now take longer breaks if the database is busy or their work is otherwise taking a long time. if the client is cluttered with work, they shouldn't accidentally lag out other areas of the program so much - label update on ipfs service management panel: the server now reports 'nocopy is available' rather than 'nocopy is enabled' - label update on shortcut: 'open a new page: search page' is now '...: choose a page' - fixed the little info message dialog when clicking on the page weight label menu item on the 'pages' menu - 'database is complicated' menu label is updated to 'database is stored in multiple locations' - _options->gui pages->controls_ now has a little explanatory text about autocomplete dropdowns and some tooltips - migrate database dialog has some red warning text up top and a small layout and label text pass. the 'portable?' is now 'beneath db?' - the repositery hash_id and tag_id normalisation routines have two improvements: the error now shows specific service_ids that failed to lookup, and the mass-service_hash_id lookup now handles the situation where a hash_id is mapped by more than one service_id - repository definition reprocessing now corrects bad service_id rows, which will better heal clients that previously processed bad data - the client api and server in general should be better about giving 404s on certain sorts of missing files (it could dump out with 500 in some cases before) - it isn't perfect by any means, but the autocomplete dropdown should be a _little_ better about hiding itself in float mode if the parent text input box is scrolled off screen - reduced some lag in image neighbour precache when the client is very busy - . - boring code cleanup: - removed old job status 'begin' handling, as it was never really used. jobs now start at creation - job titles, tracebacks, and network jobs are now get/set in a nicer way - jobs can now store arbitrary labelled callable commands, which in a popup message becomes a labelled button - added some user callable button tests to the 'make some popups' debug job - file import queues now have the ability to discern 'master' Post URLs from those that were created in multi-file parsing - wrote the behind the scenes guts to create a new downloader page programmatically and start a subscription 'gap' query download - cleaned up how different timestamps are tracked in the main controller next week I am now on vacation for a week. I'm going to play vidya, shitpost the limited E3, listen to some long music, and sort out some IRL stuff. v444 should therefore be on the 23rd. I'll do some more cleanup work and push on multiple local file services. Thank you for your support!
>>16157 >Thank you for your support! Best wishes OP and beware of the fucking normies.
(57.00 KB 174x1002 ClipboardImage.png)

>about 200 pages open >set all subscriptions to run in the background (which creates one page per subscription) >forget about it >once it gets over the page threshold it starts creating page warning for every page it tries to create over the threshold >creates too many warnings and client crashes Turns out python can't into too many windows.
I would love if the "pages" drop down menu actually listed all the open pages, with submenus of "pages of pages", so you could click one to have the main view switch to that page. It could be put under the top "X pages open" menu option, for example. If you have tons of pages open it's real slow and cumbersome to try to find a specific one by scrolling with the little arrows to the right of the tabs. In fact, that is probably the slowest and most user-unfriendly thing I do in Hydrus. I can't imagine this would be a ton of effort to add, and it would help so much with usability.
>>16159 solution: migrate off python ez
rule34.xxx now has an anti-ddos thing where it "checks your browser" before letting you visit the website. Hydrus fails to download from there now, calling it an "unsolvable cloudflare issue". I tried copying rule34.xxx cookies to hydrus, but it still didn't work. Is it truly unsolvable? If so, is it perhaps because I don't have a rule34.xxx account? Does anyone with an account know?
I had a twitter subscription that missed a number of files from certain days. Other files from tweets on those same days from other subscriptions were downloaded fine. Now I'm paranoid I missed a bunch of tweets from other accounts as well, or that I will miss a lot more tweets in the future. Is there an easy way to check this? Like, attempt to download all files for all subscriptions in the last 10 days? Another weird thing is that the twitter gallery dl for that account only goes back a few days, while others go back many more days.
(37.67 KB 854x694 Untitled.png)

The "# messages [dismiss all]" notification at the bottom right of my hydrus stays on top no matter what I do, unless I minimize hydrus entirely. It wasn't always like this, but it happened at some point today. The only thing I can think of my having done to trigger this was locking my computer (windows 7) as I went afk to take a piss while hydrus was importing. I'm not sure if that was actually triggered it, but it is the only idea I have. I imported many things since booting the client on this version (442). Pic related.
>>16163 > Like, attempt to download all files for all subscriptions in the last 10 days? This is what the gallery downloader does.
(218.09 KB 349x611 20210612.png)

It looks like "Review your fate" is getting incorrect file number in the inbox. Or maybe now it adds the files from the trash to it.
>>16165 Yes, but my problem is that it doesn't. I've checked it to show new files and files already in inbox and files already in archive but it doesn't. >>16166 I've noticed it doesn't always update immediately.
>>16163 I couldn't even get Twitter downloader to download anything, I had to go through the Nitter downloader.
How do you use system predicates in advanced searches? The advanced search box doesn't bring up the drop-down menu for system predicates like the normal one, and inputting the system predicates normally seems to treat them as a normal tag instead of a special system tag, so it doesn't actually perform the search right.
Hydrus keeps popping up this error when I add tags through the manage tags window. It has me a little worried that my tags might be getting corrupted, but from the little bit I understand here, I think it's just related to the window itself and not the tags. RuntimeError Internal C++ object (ListBoxTagsMediaTagsDialog) already deleted. File "hydrus/client/gui/lists/ClientGUIListBoxes.py", line 1829, in mouseDoubleClickEvent action_occurred = self._Activate( shift_down ) File "hydrus/client/gui/ClientGUITagSuggestions.py", line 80, in _Activate self._activate_callable( tags, only_add = True ) File "hydrus/client/gui/ClientGUITags.py", line 2652, in AddTags self.EnterTags( tags, only_add = only_add ) File "hydrus/client/gui/ClientGUITags.py", line 2670, in EnterTags self._EnterTags( tags, only_add = only_add ) File "hydrus/client/gui/ClientGUITags.py", line 2498, in _EnterTags self._tags_box.SetTagsByMedia( self._media ) File "hydrus/client/gui/lists/ClientGUIListBoxes.py", line 3602, in SetTagsByMedia self.SetTagsByMediaResults( media_results ) File "hydrus/client/gui/lists/ClientGUIListBoxes.py", line 3623, in SetTagsByMediaResults self._DataHasChanged() File "hydrus/client/gui/lists/ClientGUIListBoxes.py", line 1099, in _DataHasChanged self._SetVirtualSize() File "hydrus/client/gui/lists/ClientGUIListBoxes.py", line 1695, in _SetVirtualSize self.setWidgetResizable( True )
>>16164 My gallery downloader page finished what it was doing, so instead of adding more, I decided to close hydrus to update to latest. But it's been on "hydrus client exiting" for 50 minutes now. For now I'll leave it to waste my time, but I don't believe it's ever taken this long to close for me before.
>>16171 It's been two hours of it frozen on this screen, so I am going to force terminate it, update, then relaunch.
Not sure whether this has come up before, but I'm wondering if there could be a booru-style "preview-size" file service for web viewing, perhaps something parallel to the exiting thumbnail system. It's painful to have to download numerous >=5MB archival quality png files for web or phone viewing. If they could be resized to an 800 to 1000px wide jpg file and accessible by the client API, that would make full-sized images come up much faster and with less bandwidth consumption on clients such as animeboxes, and the option would still be there to download/view the full-sized image. Since client files are stored in f00 to fff and thumbnails are stored in t00 to tff, previews could be stored in p00 to pff, and the whole thing could be optional.
>>16154 still have not figured this out unfortunately.
>>16162 pasting solution from discord >heliosxx: I've been getting cloudflare errors when fetching from rule34.xxx Came here looking for answers, went fooling with network->downloader components->manage url classes then look for the rule34.xxx file page entry and click edit scroll down and find send referral url and change it to always use converter referral url Seems to have fixed it for me
>>16175 For some reason, it just started working again a couple days ago. I didn't change anything.
hydrus absolutely dies when trying to load many files, in the hundred thousand range. As expected. It's even worse when you try to add a tag to all this files as a batch. can something be done that allows the user to apply tags to a bunch of files in a search, without loading the actual files? For example, if I search feet, and it returns 200k results, I can add a tag to all those 200k results without actually trying to get hydrus to load all of them at once so it doesn't kill the client? By the way, a dynamic loading feature would be nice as well, instead of trying to load all results at once.
The suit tag has a 'meta:junk tag' next to it... what should I be using instead of 'suit'?
>>16178 i would rescind the meta:junk tag from that. that horse is looking very classy speaking of which, how exactly do you even rescind parents and siblings from tags? i know how to pend them but where do you rescind them?
>>16179 In exactly the same place as you add them. Just search up the parent or sibling in question and double click it to remove it, just like removing a tag. You'll see a minus sign appear next to it, and it'll be removed when you apply the changes.
anyone here use the deepdanbooru thing? how accurate are the results? i dont want to start doing my files and end up with a bunch of inaccurate tags that i have to manually remove
>>16181 Fairly accurate as long as the image is a somewhat typical anime girl image. I've got false positives on character names before (especially Touhou showing up a lot), and occasionally there will be a misread on a particular detail, but overall, you can take a lot of images with it and not worry about having to clean up a serious mess. I'd be interested to know if it could be configured not to add certain tags such as character names though.
>>16182 what about 3d girls?
>>16183 I've never tried, but I'd guess that it wouldn't work well, or at all. The model I'm using is trained from Danbooru, so it recognizes artwork, not photography.
>>16184 I've used it on real images before, and it works surprisingly well, at least if we're talking about this one. https://gitgud.io/koto/hydrus-dd/
>>16170 No one else has run into an issue like this? In that case, let me specify that I'm running the Linux version of Hydrus, and this error didn't happen in version 442.
>>16186 >No one else has run into an issue like this? Nope. I do an intensive use of the Manage Tags dialog because I input tags exclusively by hand and so far, so good. Not errors in sight. Using v443 in a distro based on Debian 10 Buster (stable).
>>16170 >I think it's just related to the window itself and not the tags I agree, the last line """SetVirtualSize self.setWidgetResizable""" mentions "widget", that means the Qt graphical interface isn't playing nice with the python code. I may speculate that perhaps you are using some "Testing" Linux distro with rolling updates, if that is the case, that might be the root of the sudden error.
I had to install a new OS to my main drive, changing some file paths that Hydrus was expecting. The application brought up a convenient window telling me what paths it expected, what it was getting, and how to conveniently fix it in a bullshit-free manner. Blessed, blessed hydrus. And this is with a database spread out over multiple locations. Thank you very much for this software.
>>16188 >I may speculate that perhaps you are using some "Testing" Linux distro with rolling updates I'm using Fedora, which while technically not rolling release, it effectively is, because the packages for most software (Gnome being the main exception) get updates as new versions are released, without waiting for a Fedora version bump. In my experience, it's the most up-to-date distro that also manages to be stable, hence why I use it. So I think your assumption is correct. For now then, I wish there was a way to prevent the error from making popup boxes, because it regularly spams over 30 boxes at once that flow off the top edge of the screen.
>>16164 It happened again- it literally just happened. But I'm a version higher this time (443). So it persisted between releases.
>>16191 I clicked "dismiss all", which did as it says, but I haven't gotten another notification since. I am worried it's somehow not updating my subscriptions anymore, but maybe that's an irrational concern. Maybe it just hasn't checked any yet, but it will sometime later.
>>16190 What about if you roll back to v442? Is the error still showing up?
>>16192 I've gotten 3 notifications since making this post, however, they are still displaying the same problem as before.
>>15954 >Also, sometimes I like to make sibling or parent submissions that I know won't actually get accepted, because I just want them for myself. With this new system, will there be a way to just make a parent/child or sibling pair, then choose to not upload it at all, just to have it for yourself? I'm not really looking forward to getting messages back from the PTR janitors saying things like "you're a dumbass" because I uploaded something that I don't really care about them getting anyway. Shit like this is why we, the janitors, have pushed for accounts since that would let us handle dumb shit like this in a fashion that don't have us screaming obscenities about strangers on the internet.
>>16195 .t fuck you
>>16196 no fuck you, you're ruining the PTR
Hey, I am back from my vacation. Wow, E3 sure was shit this year!!! >>16147 >>16148 >>16149 No worries. I did my burning out and quitting projects when I was younger. Now I am more Sisyphus-mode, just keep working, the ride never ends. My current plan is to just keep kicking out weekly releases as long as there is work to do, and since I always get more work every week than I can complete, and my todo is now many thousands of items long, the end date of my hydrus work is currently indefinite. >>16150 Hey, I don't think I made one, I am afraid. Just a small thing, if you are a little new to hydrus--we don't really have 'subscription' support for imageboards yet. Subs are more for boorus with tag searches, whereas thread watching is for the 'watcher' system in hydrus. >>16151 >>16152 >>16153 Funnily enough I was having this exact discussion with someone else ten minutes ago. I'm mixed on it. There's no serialisation system for the popup messages yet, but I'm reworking those objects now and I'm likely to expose them on the client api, so having more permanent storage and live memory of their data is something I can think about. Then again, most of this UI would be the first time I wrote it, which would be a lot of work, and browsing the existing log covers most jobs. So in terms of return on investment, I'm not sure it is justified right now. I'll keep it in mind though. Maybe when I have more related UI widgets done for other reasons. >>16152 Yes sorry I keep forgetting to do log month zero padding! I will make sure I finally do it!
(18.42 KB 499x392 setup.png)

>>16154 >>16174 Hey, installers on Windows will store one location as the 'here is where this thing is', and they'll remember it for next time, so you only have to do this transfer once, and then future installs will remember that new location. You'll want to point it to your new location in the same way the old location was stored, which is the base folder as the path in the install panel. I recommend copy/pasting the path. If your client.exe is at F:\Documents\Hydrus Network\Hydrus Network\client.exe, you should copy/paste: F:\Documents\Hydrus Network\Hydrus Network Into the text box, like pic related. Tell it to yes use the existing folder, and it will install to the new location just as it did to your E drive and remember it for next time. You can delete that E Hydrus Network install folder, yeah. If you feel uncertain, make sure you have a backup of your database done. Then it doesn't matter if something goes wrong--you can always roll back. Let me know how you get on!
(7.55 KB 1228x105 yoyoy.png)

>>16155 Unfortunately for now hydrus keeps a copy of the files it manages. I recommend larger videos, and files that work well file filenames, like music, stay managed using other programs like Jellyfin or Foobar or whatever. They can search that sort of 'usually less than a thousand long duration media objects' content very well, whereas hydrus is tuned for hundreds of thousands of small files. I don't have the pipeline set up to do streaming into hydrus (yet). Maybe one day in the future. >>16159 >>16161 Sorry for the trouble! Having hundreds of pages is less of a concern now we are in Qt, and you can boost the max number of page above (default 165?) under options->gui pages. The crash may be more related to my session manager not being able to deal with that many 'too many pages' warnings more than the actual number of pages active. I'll see if I can improve that. The best solution for spammy sub pages is to set your subscriptions to publish to a shared 'label' (e.g. 'hot babes' for all your hot babes subs). They'll publish to the same page, saving you several headaches.
>>16160 That's a great idea, thanks! >>16162 >>16175 >>16176 Yeah, a bunch of the time, CloudFlare issues tend to be temporary. e621 had it a few weeks ago too. As I understand, when a site runs into trouble of one sort or another, they click a button on their CloudFlare panel called IUAM ("I'm under attack mode"), which turns the captcha check on. And I think CF can also turn that mode on automatically when they suspect bad traffic is coming from somewhere. A lot of the time, it only affects one region, so sometimes VPN hopping can fix it too. If you really want to get through, I think modern Hydrus Companion solves it. You have to enter the site in your browser and then copy cookies and User-Agent header across. CF checks User-Agent during IUAM it seems. Otherwise, wait a few days and try again! In my experience, these rarely last more than a couple weeks for a region. Regular users don't like the captchas either. >>16164 >>16191 >>16192 >>16194 Damn, that's odd! I don't set always on top anywhere in the program, so I guess that is an odd focus issue. Maybe to do with it being rolled up like that. I'll have a look at the code. I haven't changed anything in that system in a while, so this may be something that cropped up with a newer library with the new builds. >>16171 >>16172 Sorry, I am not sure what happened here. Doing a force quit after a minute or two of no obvious activity is the correct solution. Let me know if this keeps happening. It might be related to your odd always-on-top popup, maybe a UI event queue that wasn't clearing or similar. I'll keep it in mind as I work on that.
>>16163 >>16165 Unfortunately twitter is a pain in the ass. The way they serve results makes it tricky for hydrus to always walk its galleries. Best solution is to try manual downloads for those subs (i.e. open a gallery downloader and paste your subbed twitter query texts into it) to attempt to fill in recent gaps. Then make sure your twitter subscriptions' 'checker options' always check frequently enough to not be blatted by a long string of the user posting text-only tweets. On accounts that post every day, I'd recommend forcing hydrus to check once every day. But, ultimately, twitter is a hell platform, so as much as you can, try to find other sites the artist's stuff is posted to. Save twitter sub for baalbuddy and those japanese artists who only post to twitter. (Even then, if you can trace down their username, you'll often 90% of their stuff gets posted to one of the boorus anyway) >>16166 >>16167 Yes, thanks. Because of the multiple local files work recently, I moved it off 'my files'. It temporarily looks at 'all local files' atm, which includes your trash and repository update files, but when I have a better umbrella service that covers 'my files' and other created 'my files', I'll move it to that and we'll get perfect counts again! >>16169 Unfortunately you can't do system predicates in the advanced search box yet. You can do OR searches if you hold down shift when you double-click or hit enter on the system pred, just like if you did shift+enter on a normal tag. >>16170 >>16186 >>16187 >>16188 >>16190 >>16193 Damn, sorry, this is a pain. Don't worry, your tags aren't being messed up. This is UI sizing code sperging out because apparently some scrollbar coordinates are being set on something that was just closed. If you are on slightly unusual version of a window manager, that is likely the 'cause', but also my code should be immune to strict 'is deleted' situations too. I'll dive into my code a bit and see why this might be happening. Does the error happen when you 'ok' the dialog, or while it is still open? The root of the error seems to be 'add tag' double click, but obviously the dialog would not be deleted by that point, so maybe somehow the event is being held up and not cleared until dialog exit. But if it happens while the dialog is open, as you double-click to add a tag, then something odder is happening.
>>16173 This is a very good idea, and will be more and more important as the Client API is used on more mobile devices. I really don't have a pipeline of any sort set up for this--hydrus is always pushing the throttle right down to the metal since it knows it is on a local computer with lots of memory and CPU and HDD, where even a 32MB png is no big deal--but I'll have to think about this in future. My rough feeling is that I can probably actually generate 1,000px sample images on the fly, and since a mobile device will be looking at most images one at a time and relatively slowly, I can probably load and generate a sample in less than a second, and usually in less than 200ms. I'll queue this thought up. I'd rather not make p00 to pff since for most clients a phone won't ever be able to browse the entire collection in any reasonable amount of time, and adding a gajillion new files to store and backup isn't worth 100ms access time over the internet anyway. Maybe as a cache, but I'll do on demand generation first and we'll see how that performs IRL. >>16177 Yes unfortunately a single page will start chugging around 20k files. I have slowly increased this number over time, but mostly it is the work of grinding optimisation. I don't have a good profile mode for the related UI jobs here, so I can't have you run some profiles for me to look at (yet). The tags->migrate tags tool can do some en masse tag operations, but we don't have a nice algebraic 'add this tag to this search' yet. I'd like it, but I need to do some long overdue background work with en masse decision making (basically the stuff in manage tags you see where it says 'do you want to pend/petition/rescind/whatever this tag?'. You can do this if you jury-rig it via the Client API, but of course that involves a bunch of setup and scripting work. For loading files in parts rather than all at once, please see my response to >>16095 here >>16105 .
>>16181 >>16182 >>16183 >>16184 >>16185 As a side thing to this convo, I know several users now working on this basic concept, working off deepdanbooru's base and similar tech, and I have learned the very basics and am planning big pushes on it in the coming years, and it is getting to be 'good'. After a long period of 'is this a meme?' it now is not a meme, it really does work for some stuff. Deepdanbooru works well for pictures of asuka and rei etc... Tuning an implementation is a big part of the problem, so there will be a decent run up of prototype testing different training routines before we can generalise and do whatever basic noun tags (e.g. 'muscles' or 'scarf') you want, and naming famous human beings is likely to need a cleverer solution, but expect ML to be suggesting tags and available to auto-tag in hydrus within the next three years. Likely there will be more Client API implementations before then. >>16189 Thanks, I am glad it all worked out! You might want to check database->migrate database just to check what paths it has in its options. Because of the auto-heal, it might still be saving on to the old paths as the 'ideal', so if it is, give the new paths some 'weight' and remove the old, just to clean up the options. ----- The PTR guys switched over so the shared public account is read-only today, btw! I'll be updating my help regarding this and updating the automatic PTR setup from the help menu, but this is part of the ongoing shift that started happening for real around v438 >>15952 . If you try to upload tags with the public account, then in the next few days you'll get a little 'hey, sorry, you can't do that', and there should, fingers crossed, be a button you can click to generate a new individual account that has mappings, siblings and parents upload permission. Your new account is still anon, but un-merging all submissions will help the janitors deal with petitions and bad quality uploads in small and sane chunks (and moreso when I get around to finally writing them better workflow UI). Discussion of privacy implications starts here: >>15954 (tl;dr: I think we are fine, as always use a VPN if you have one and don't tag photos of your girlfriend on the PTR, tagging personal content is basically the only way you can potentially out yourself on the PTR, same as posting your real name on an imageboard. however I also have plans to mitigate that in future)
(5.67 KB 591x208 Untitled.png)

One thing that's always annoyed me about virtual parents/children is that I have no way to right click search any of the virtual tags- at best I can copy them under "2 parents, 0 children" in this example (but even that is a failure of UI design, because nothing about that communicates that it copies what you select to your clipboard), then after copying it, I can open a new page to search for it. But this is much more annoying that just clicking to search.
>>16202 >Does the error happen when you 'ok' the dialog, or while it is still open? It's hard to tell, because the error boxes are hidden behind the window of the file I'm adding the tags to, so I don't see them until I close the file viewer. I think the error does occur when the tag window closes, but I don't know
(228.05 KB 1374x412 Untitled.png)

???? left = how it looks for this one specific artist right = how it looks for every other artist

(51.77 KB 1280x720 ewfw.jpg)

>>16206 >It's hard to tell Images speak.
(3.03 KB 131x90 Untitled-1.png)

Maybe it's just me but I would prefer if you'd always show file sizes in KB when they are so close that you show ≈ in the duplicate filter. Because if I can save a few KB I'm happy. :)
I had an ok week getting back to speed. I got caught up in some admin and help doc work, so my changelog is a little light, but I was able to clear out some bugs and other annoyances. The release should be as normal tomorrow.
>>16203 I look forward to it! I played with the idea myself using basic conversion and resizing settings with imagemagick, and I already noticed a big performance boost while browsing on mobile, but I think that the images could have been optimized to retain quality while reaching even lower filesizes.
has there been any talk of support for sharing the same db across multiple machines? I was considering using mega to host my db in order to sync across my home/travel computers, but this is relatively infeasible since updates to the db causes a reupload/download of a large single file. am I missing something? is there a way to split the client db information across multiple smaller files?
https://www.youtube.com/watch?v=0OmOQs0ziSU This whole vid is great. Watching a ton of this stuff was a decent whack of my vacation. windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v444/Hydrus.Network.444.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v444/Hydrus.Network.444.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v444/Hydrus.Network.444.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v444/Hydrus.Network.444.-.Linux.-.Executable.tar.gz I had an ok week getting back to speed. There's some new help regarding the new PTR accounts and I fixed some bugs. accounts and help If you use the PTR, you may have seen a note appear on the public account that it is now 'read only' and can now only download updates. If you would like to upload tags, siblings, or parents, please generate your own account either by clicking the popup button you get when trying to upload, or just hit up the PTR on services->manage services and click the easy button there. This pretty much completes the long project me and the guys running the PTR have been working on: moving all uploading users to their own still-anon-but-seperate accounts so the janitors can work through groups of petitions and undo future mistakes without it all being merged together in one account. I have given both of these pages a complete pass to represent the changes and updated screenshots etc... to be more modern: https://hydrusnetwork.github.io/hydrus/help/access_keys.html https://hydrusnetwork.github.io/hydrus/help/privacy.html The privacy page now compiles the various conversations I have had with users over time and most recently about this account change, and my current understanding of exactly how private a hydrus repo is (really good), and what you can do to make it almost perfect, even against esoteric problems or an untrustworthy administrator (basically using a VPN is always a good idea when you are doing anything fun online, and don't tag your private photos on the PTR with your real name lol). I have tried to be comprehensive and even tried to imagine some advanced future problems, so it is a long read, but I'll try to keep updating all my thoughts to there so it can be a good reference point in future. If you are interested in this stuff, please read it and let me know what I have missed or if you have any other ideas! Also, if you are a Linux user and get OOM (out of memory) crashes, please check the new thorough user-written guide linked in this new 'running' section here: https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#running https://hydrusnetwork.github.io/hydrus/help/Fixing_Hydrus_Random_Crashes_Under_Linux.md all misc otherwise this week I rewrote a heap of thread-UI object interactions that should improve stability on some Linux flavours and also get rid of the 'QtDeadWindow' errors some users have seen (usually in manage tags). The new popup message button that fills in subscription gaps would sometimes not assign the correct downloader (usually when the button was opening a new page). This should be fixed! A variety of error reporting is more reliable and presents better text. An odd error when loading the downloader .png files is fixed, so if you were unable to import new downloaders in the past few weeks, please try again and let me know how you get on! full list - gave the 'access keys' and 'privacy' help pages a complete pass. the access keys section talks about the read-only shared key, and how to generate you own account, and the privacy section now compiles, as comprehensively as I could, our various discussions about multiple accounts, what you shouldn't upload to the PTR (basically your own name lol), self-signed https certificates, and what information is actually stored on an account - expanded the 'getting started - installing' help page with a 'how to run the client' section, including bundling the excellent Linux virtual memory guide written by a user - fixed the new 'fill in subscription with gap downloader' button, which was initialising with the wrong downloader at times (usually on the first gap downloader opened, when it opened a new page with it) - you can now set 'all known files' for the tag autocomplete in 'write' contexts (e.g. manage tags dialog) when not in advanced mode - cleaned up how a variety of delayed UI calls are registered and present information about themselves. every UI job now has a nice human name for debug purposes. this should improve program stability and clear some odd rare errors when closing some dialogs (this mostly affected certain linux users) - when an asynchronous UI job fails with a dead window, or if fails to publish to its window for a non-dead reason and then the window dies before that failure returns, the error handling code now catches and silences the error. an example of this would be clicking 'refresh account' on review services, then closing the window before the lagging job raises 'connection failure' - when windows are rescued from off screen, their frame key is now stated in the popup note - if your version of OpenCV is unable to load PNG files, your client should now be able to load serialised object PNGs (like those in the downloader system) correctly (the same PIL fallback for regular media files now works for deserialisation too) - the hydrus log path is finally month-zero-padded, ha ha ha - misc cleanup and label fixes
[Expand Post] next week I got caught up in some behind the scenes admin work this week (mostly fun updating my IDE to python 3.8), and the help docs, which I really wanted to fill out, so I regret my actual changelog is so light. Should be back to full steam next week. I'll hammer away at the reports and profiles I have of lagging UI and get back to grinding at multiple local file services.
>>16213 Is there any ETA on if/when running from a network drive will be fixed? Is pyinstaller still borked so I'm just SOL?
This has probably been asked before, but is there a way to see if tag relationships that you've submitted have been accepted or rejected? I was going to submit a few tag parent/child relationships, but they only make sense if some others that I submitted previously were accepted, and I don't know if they were or not.
Is anyone else having problems connecting to the PTR? I haven't been able to connect to it for a few days now. I'm guessing it's just me, since someone else would've probably brought it up by now.
(31.71 KB 502x225 Screenshot.png)

>>16216 I already tried refreshing the account btw. Same error. This also only seems to have started happening when I upgraded to V444, so it might be some kind of bug, but I'm not sure.
(61.43 KB 604x403 k1-qwQUmc4k.jpg)

>>16216 I can't connect for past two days. Will check today later once more. Note to the developer, the reconnect timeouts in Hydrus seem to be too hardcore. You get one error which among other reasons may be caused by your local network, and then you should wait for 10+ hours. You can force reconnect with the downloads, but I didn't find how to do it with the PTR.
>>16216 I've been getting 404s for ~2 days. I upgraded to v444 hoping it would magically fix itself, but nope, it still fails to connect.
>>16166 I'd love to see an explanation page for the review your fate/how boned are you. It's not clear what it even does for new users, or what it counts and doesn't.
If I submit like 50 parent tags and one gets denied it doesnt deny the other 49 correct? they're looked at and verified individually? it's a shame i can't tell which tags are accepted or denied easily, or see a note why they were denied. it would allow the jannies to clarify with the users better.
>>16120 where is this option located btw?
>>16134 >we should also have 'rename all artist: tags to creator:' I agree with this completely. Couldn't the use of wildcards also be introduced for users to utilize? Maybe that's not a great idea due to user stupidity, not sure. I think it should be documented somewhere, a list some general proper ideal "pre-tags". For example, 'creator: - for any creative work', 'person: for any real life person (including pornstars/camgirls)' (because that may be misinterpreted as a "creative work") etc. Just a list of those "pre-tags". It would be nice to be able to refer to this when the user is unsure of choosing a tag for something.
>>16204 devanon you should really add a little blog area directly on the hydus website just to make clear big changes like this. i would also suggest adding a changelog popup in hydrus when the user updates, it could pull those blogposts from the site, and then offer an option to "view full changelog". yes a user could visit github, however having it built in is nice too. also your changelogs are long and detailed generally (which i actually appreciate) but it does make it easy to miss reasonably big changes like this, or actually understand what this means for the user/how it affects them if they don't understand the technical terms.
>>16220 If you have more than 1% of your images in your inbox, than you're boned. It doesn't work correct currently, see the last reply to >>16166.
>>16225 >see the last reply to >>16166. I mean developer-kun's reply in >>16202.
>>4625 isn't it in about in hydrus?
>>16227 After I wrote my message I found at least two ways to determine the version, so I deleted it. ./hydrus/core/HydrusConstants.py:SOFTWARE_VERSION = 444 ./help/changelog.html: <li><h3 id="version_444"><a href="#version_444">version 444</a></h3></li><a class="quoteLink" href="/t/res/3626.html#4626">>>4626</a>
I recently restored from a backup and am experiencing a problem. I ran the integrity checks which identified some issues and then cloned and replaced the files. After running all the integrity checks again no errors were identified. However when using Hydrus when I right click on certain pictures Hydrus crashes. The same pictures always cause Hydrus to crash. A notable minority (perhaps 5-10%) of pictures are affected. I am still able to view the pictures normally, archive/delete filter them, etc, so long as they are selected as part of a larger group and I avoid right clicking the specific affected picture when performing any operations. Even entirely new files that were added to the database after the backup can be randomly affected by this problem.
>>16219 Followup: this seems to have been resolved, and I am now able to connect to the PTR normally
>>16205 Thank you, this is useful. I agree, I don't really like the sibling and parent navigation in the menus. I don't want things to get too cluttered up with submenus (or code complexity atm), but then that means some features aren't available. One brief thing I'll mention is that searching for a 'sibling' is currently no different than searching for the tag itself. There's no way to search in non-sibling-merged mode. Searching for a parent is different than searching for a child though. I think my current plan is to keep working on 'generalising' the menu code, and the related commands that it fires off behind the scenes, so that these menus populate more dynamically. At the moment nearly everything is hardcoded, and in some places duplicated, whereas if I can improve the code here, it will be easier to hang more options off things. My real ideal here is to allow users to customise the common menus significantly, hiding and showing and reordering based on what they prefer. In the meantime though, I'll keep better sibling and parent UI in mind. >>16206 Thanks. Sometimes these sorts of errors can be significantly delayed, as well. I'm confident I fixed one set of these errors in 444, but another set may remain. Let me know how you get on in future! >>16207 Shit, it looks like that unicode has some weird height data. Can you paste that artist tag here, so I can play with this my end? 8chan might not preserve the weird characters, but it is worth a try. Or, now I think of it, can you point me to a webpage that has these files and their tags, so I can copy it? >>16209 Thank you, I somewhat agree. In general, my belief is that if the difference between two files is only 0.2% of filesize, there is no useful information there, but I suppose if someone wanted to try to get the versions of images that might have or be stripped of metadata, seeing the exact KB difference could be useful. I'll note to add an option here to display this info differently.
>>16212 I would like to do this via the Client API. Accessing the same db files directly via multiple machines across a network is not technically feasible with our current tech, but if I let you nominate a 'master' client that other clients can dial into, I can 'host' that master on your other client just like another file service that you can search just like normal (only real difference will be some background sync to keep up to date and a bit of extra latency when downloading files from it for viewing). With luck, my current work on multiple local file services will bring a host of now tools to make this work easier. >>16214 Fingers crossed, should be fixed next week! I was working on Saturday with some lads with the problem on Windows samba shares, managed to reproduce the problem and observe it in ProcMon, and adding some python scripts to the install fixed it (part of Qt was stuck in an import loop when in network paths). I'll fold that into the build scripts for 445, and assuming I don't fuck that up, should be good. Please let me know how you get on with it! >>16215 Not yet. I'm working on a host of janitor workflow improvements right now, and they would also like a bit more user history, and several users would like to see a 'yes that was good!' kind of feedback as you do, so I'll see what I can do. A full history of each row approved or denied may be a bit more technically tricky that I can handle atm, but for now there's a very old Good Boy Points score on your account that was basically the sum of approves minus denies, so I think I'll be making that a bit more useful for the janitors and then I can expose it to you as well on review services or similar. Maybe something like 'uploaded 85 siblings, 83 approved 2 denied' etc... >>16216 >>16217 >>16218 >>16219 The guy who runs the server was doing some maintenance work, I think moving it to another box. It was supposed to be a quickish job but then the transfer speed was fucked. Sorry for the trouble, I'll improve these error messages.
>>16220 >>16226 Please bear with me, I hope to have that service miscount situation fixed soon. The numbers are basically your 'my files', just a silly easter egg of how 'good' you have been processing your inbox. At the moment it isn't exactly 'my files', but instead 'stuff on my hard drive', which is subtly different. I'll fix it. In the future I hope to expand it with more rigorous data, maybe some charts of total files imported/deleted over time etc... >>16221 Yeah janitors see a checkbox list, so they can yes/no individually. I've added the ability to set a single message to an account, and as we move to individual accounts and I improve the janitor UI, I'd like to see if that message system gets any use. If setting a simple note for 'I did not approve blah->blah because blah' becomes common, great. If none of the janitors want to use the system for whatever reason, I'll see about giving petitions unique ids and storing a history so you can look up individual rows (and eventually there could even be convos attached to these unique ids, with you as an optional participant). We'll see, but for now I first need to get some more basic UI and network code (mostly on their side) working better and working for multiple user situations. >>16222 options->tag presentation 'EXPERIMENTAL: Replace all underscores with spaces' >>16223 Yeah. I vacillate on how much to bake in certain namespaces. I like how the PTR has developed, which is similar to most booru standards. The file sorting/collecting and thumbnail banners and most downloaders automatically grab character/series/creator as I imagine them, but there's no tag wiki yet for proper definitions (which I could presumably populate with default suggested data). If you are interested, my old thoughts are here: https://hydrusnetwork.github.io/hydrus/help/tagging_schema.html And the current PTR namespace schema is here: https://github.com/Zweibach/text/blob/master/Hydrus/PTR.md#namespaces
>>16223 Oh to follow up on wildcards, if you haven't tried wildcard searching in hydrus yet, try adding some asterisks (*) to your normal tag searches! There's pretty decent support available, although high CPU queries like '*' for 'get everything' or 'person:*' for 'get all person tags' are disabled by default. Check tags->manage tag display and search for per-service options on what wildcard inputs will give you listed results. You can go bananas and type 'ch*r:s*s a*n' and it'll give you 'character:samus aran', although you may have to wait ten seconds on the PTR! >>16224 Sorry for not rolling this out neater--I was mostly mired in fixing all the technical account bugs and workflow problems it revealed as we tried different steps. I hope I am catching up better now with the new privacy page and the feedback you get in UI when you try to upload with a read-only, and I hope I've peppered this thread and my release posts generally with enough info that it can be ctrl+f'd by anyone who wants to look it up more. To escape from just a flat list of changelog, I try to highlight and talk about more important changes in my release posts like here: >>15952 although I know I tend to write too much and just end up too wordy for what many users want to read, particularly when they update a couple of months in one go. I think you are correct in I should have added some more popups on updates. Sometimes I feel like pushing myself to do a weekly release on Wednesday causes more problems, since a some things really do come together last minute and I don't have a beta testing branch for large projects or delay something to add more polish, or release a big change all in one go etc... but then I know that forcing myself to keep to a deadline stops me from playing vidya for three weeks before getting any work done, which I know is what happens whenever I give myself space to breathe. Maybe it is swings and roundabouts, and the only way I can stay productive is by being a little loose and unprofessional, but perhaps that is just me writing cope. For the changelog list, if it helps, you can hit help->changelog to open the local copy immediately. Although I think this PTR stuff wasn't actually in the changelog since my brain didn't see it as a code thing. I happily do not actually run the PTR day to day anymore, nor jannie for it, although I am obviously working on their feedback since this change has had many code problems along the way. The PTR guys don't have an official public feed to publish updates on, but perhaps this will happen in future. They are best accessed atm on the discord. >>16228 HC's SOFTWARE_VERSION is your best target for version. I'd like to not move or rename that.
>>16229 I am very sorry for the trouble. It is odd you would get a crash here--normally on these sorts of problems you'll get a typical traceback like 'sorry, couldn't find a hash_id for that file' or something like that, exposing a missing row in the database. But a crash is usually due to my touching an UI object in the wrong thread. Maybe what's happening here is an error is being raised due to missing data, and the way that error is handled is incorrect. When you right-click a thumbnail, the client talks to the database to fetch some duplicate files data. I assume your dupe files structure has some holes since the clone. I will investigate how this call works, and more importantly how it fails, to see if I can fix your crashes. Please let me know how future versions work for you. And when we have some nicer errors coming out of here, we can work on healing your dupes. One small thing you can try right now is database->regenerate->similar files tree. That won't cover all possibilities here, but it covers one. Also, please check your install_dir/db/client-2021-06.log file and give it a quick scroll. Normally crashes won't save anything to log, but there's a chance if this is in error handling that it did have a chance to write some 'trackback' information there. If you find any immediately before a crash (i.e. the next lines in the log will be about hydrus booting), please post them, as it will help me narrow down the problem.
>>16232 >ClientAPI The ClientAPI currently doesn't return tags so users can type and grab autosuggestions. This is major because it makes finding their files really difficult for anything besides generic tags "feet" for example. Any chance you could try introducing this in the next few updates so users could at least have basic functionality over the api? Not to push you or anything, it just would be nice. You can try Lolisnatcher Droid as an example to see what I mean.
There's a bug in the parent editor where the buttons on the right go off the window. Sometimes expanding the window out to the left shows them, othertimes it just expands as far as you can and the button ("add" button) is missing. Seems like the content in the window gets cut off basically. This might be related to having dual monitors plugged in, however I can't confirm. It could just be a general bug unrelated to the amount of monitors plugged in. But it's annoying because you can't add parent tags when it happens, and the bug happens very often to me. On latest Hydrus.
>>16235 I regenerated the similar files tree as you suggested but it didn't fix the issue. Unfortunately no information is written to the log when hydrus crashes due to my issue. I deeply appreciate any time you spend trying to figure out what is going wrong here and how to fix it. I will continue installing the latest release until I get error messages instead of just crashing.
>>16235 Since you mentioned duplicate files data being a probable reason for the failure I tried running the duplicate filter to see what happened. I didn't let it run for too long but it appeared to be working fine. However my hydrus client then crashed when I right clicked on the duplicate tab to close it. Further investigation revealed that simply opening my client and navigating to a duplicates tab, even a seemingly inactive one, would result in any tab I right clicked crashing my client. Consistently when I booted up the client right clicking any tab, including the duplicate tab, wouldn't cause a crash, but as soon as I entered the duplicate tab the next tab I right clicked crashed the client. Even if I exited the duplicate tag or did some other stuff first. Viewing or right clicking pictures was unaffected, same as usual with my broken database.
I had a great week mostly working on optimisation and cleanup. Busy clients should be a bit snappier. I also fixed some bugs! The release should be as normal tomorrow.
https://www.youtube.com/watch?v=ulvvQHD4184 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v445/Hydrus.Network.445.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v445/Hydrus.Network.445.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v445/Hydrus.Network.445.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v445/Hydrus.Network.445.-.Linux.-.Executable.tar.gz I had a great week mostly working on optimisations and cleanup. A big busy client running a lot of importers should be a little snappier today. optimisations Several users have had bad UI hangs recently, sometimes for several seconds. It is correlated with running many downloaders at once, so with their help I gathered some profiles of what was going on and trimmed and rearranged some of the ways downloaders and file imports work this week. There is now less stress on the database when lots of things are going on at once, and all the code here is a little more sensible for future improvements. I do not think I have fixed the hangs, but they may be less bad overall, or the hang may have been pushed to a specific trigger like file loads or similar. So there is still more to do. The main problem I believe is that I designed the latest version of the downloader engine before we even had multiple downloaders per page. An assumed max of about twenty download queues is baked into the system, whereas many users may have a hundred or more sitting around, sometimes finished/paused, but in the current system each still taking up a little overhead CPU on certain update calls. A complete overhaul of this system is long overdue but will be a large job, so I'm going to focus on chipping away at the worst offenders in the meantime. As a result, I have improved some of the profiling code. The 'callto' profile mode now records the UI-side of background jobs (when they publish their results, usually), and the 'review threads' debug dialog now shows detailed information on the newer job scheduler system, which I believe is being overwhelmed by micro downloader jobs in heavy clients. I hope these will help as I continue working with the users who have had trouble, so please let me know how you get on this week and we'll give it another round. the rest I fixed some crazy add/delete logic bugs in the filename tagging dialog and its 'tags just for selected files' list. Tag removes will stick better and work more precisely on the current selection. If you upload tags to the PTR and notice some lag after it finishes, this should be fixed now. A safety routine that verifies everything is uploaded and counted correct was not working efficiently. I fixed viewing extremely small images (like 1x1) in the media viewer. The new tiled renderer had a problem with zooms greater than 76800%, ha ha ha. A bunch of sites with weird encodings (mostly old or japanese) should now work in the downloader system. Added a link, https://github.com/GoAwayNow/Iwara-Hydrus, to Iwara-Hydrus, a userscript to simplify sending Iwara videos to Hydrus Network, to the Client API help. If you are a Windows user, you should be able to run the client if it is installed on a network location again. This broke around v439, when we moved to the new github build. It was a build issue with some new libraries. full list - misc: - fixed some weird bugs on the pathname tagging dialog related to removal and re-adding of tags with its 'tags just for selected files' list. previously, in some circumstances, all selected paths could accidentally share the same list of tags, so further edits on a subset selection could affect the entire former selection - furthermore, removing a tag from that list when the current path selection has differing tags should now successfully just remove that tag and not accidentally add anything - if your client has a pending menu with 'sticky' small tag count that does not seem to clear, the client now tries to recognise a specific miscount cause for this situation and gives you a little popup with instructions on the correct maintenance routine to fix it - when pending upload ends, it is now more careful about when it clears the pending count. this is a safety routine, but it not always needed - when pending count is recalculated from source, it now uses the older method of counting table rows again. the new 'optimised' count, which works great for current mappings, was working relatively very slow for pending count for large services like the PTR - fixed rendering images at >76800% zoom (usually 1x1 pixels in the media viewer), which had broke with the tile renderer - improved the serialised png load fix from last week--it now covers more situations - added a link, https://github.com/GoAwayNow/Iwara-Hydrus, to Iwara-Hydrus, a userscript to simplify sending Iwara videos to Hydrus Network, to the client api help - it should now again be possible to run the client on Windows when the exe is in a network location. it was a build issue related to modern versions of pyinstaller and shiboken2 - thanks to a user's help, the UPnPc executable discoverer now searches your PATH, and also searches for 'upnpc' executable name as a possible alternative on linux and macOS - also thanks to a user, the test script process now exits with code 1 if the test is not OK
- optimisations: - when a db job is reading data, if that db job happens to fall on a transaction boundary, the result is now returned before the transaction is committed. this should reduce random job lag when the client is busy - greatly reduced the amount of database time it takes to check if a file is 'already in db'. the db lookup here is pretty much always less than a millisecond, but the program double-checks against your actual file store (so it can neatly and silently fill in missing files with regular imports), however on an HDD with a couple million files, this could often be a 20ms request! (some user profiles I saw were 200ms!!! I presume this was high latency drives, and/or NAS storage, that was also very busy at the time). since many download queues will have bursts of a page or more of 'already in db' results (from url or hash lookups), this is why they typically only run 30-50 import items a second these days, and until this week, why this situation was blatting the db so hard. the path existence disk request is pulled out of precious db time, allowing other jobs to do other db work while the importer can wait for disk I/O on its thread. I suspect the key to getting the 20ms down to 8ms will be future granulation of the file store (more than 256 folders when you have more than x files per folder, etc...), which I have plans for. I know this change will de-clunk db access when a lot of importers are working, but we'll see this week if the queues actually process a little faster since they can now do file presence checks in parallel and with luck the OS/disk will order their I/O requests cleverly. it may or may not relieve the UI hangs some people have seen, but if these checks are causing trouble it should expose the next bottleneck - optimised a small test that checks if a single tag is in the parent/sibling system, typically before adding tags to a file (and hence sometimes spammed when downloaders were working). there was a now-unneeded safety check in here that I believe was throwing off the query planner in some situations - the 'review threads' debug UI now has two new tabs for the job schedulers. I will be working with UI-lag-experiencing users in future to see where the biggest problems are here. I suspect part of it will overhead from downloader thread spam, which I have more plans for - all jobs that threads schedule on main UI time are now profiled in 'callto' profile mode - . - site encoding fixes: - fixed a problem with webpages that report an encoding for which there is no available decoder. This error is now caught properly, and if 'chardet' is available to provide a supported encoding, it now steps in fixes things automatically. for most users, this fixes japanese sites that report their encoding as "Windows-31J", which seems to be a synonym for Shift-JIS. the 'non-failing unicode decode' function here is also now better at not failing, ha ha, and it delivers richer error descriptions when all attempts to decode are non-successful - fixed a problem detecting and decoding webpages with no specified encoding (which defaults to windows-1252 and/or ISO-8859-1 in some weird internet standards thing) using chardet - if chardet is not available and all else fails, windows-1252 is now attempted as a last resort - added chardet presence to help->about. requests needs it atm so you likely definitely have it, but I'll make it specific in requirements.txt and expand info about it in future - . - boring code cleanup: - refactored the base file import job to its own file - client import options are moved to a new submodule, and file, tag, and the future note import options are refactored to their own files - wrote a new object to handle current import file status in a better way than the old 'toss a tuple around' method - implemented this file import status across most of the import pipeline and cleaned up a heap of import status, hash, mime, and note handling. rarely do downloaders now inspect raw file import status directly--they just ask the import and status object what they think should happen next based on current file import options etc... - a url file import's pre-import status urls are now tested main url first, file url second, then associable urls (previously it was pseudorandom) - a file import's pre-import status hashes are now tested sha256 first if that is available (previously it was pseudorandom). this probably doesn't matter 99.998% of the time, but maybe hitting 'try again' on a watcher import that failed on a previous boot and also had a dodgy hash parser, it might - misc pre-import status prediction logic cleanup, particularly when multiple urls disagree on status and 'exclude previously deleted' is _unchecked_ - when a hash gives a file pre-import status, the import note now records which hash type it was - pulled the 'already in db but doesn't actually exist on disk' pre-import status check out of the db, fixing a long-time ugly file manager call and reducing db lock load significantly - updated a host of hacky file import unit tests to less hacky versions with the new status object - all scheduled jobs now print better information about themselves in debug code next week Next week is a 'medium size job' week. I would like to do some server work, particularly writing the 'null account' that will inherit all content ownership after a certain period, completely anonymising history and improving long-term privacy, and then see if I can whack away at some janitor workflow improvements.
When will the client be able to suck me off?
>>16243 kek it would be cool to have a game that automatically generates images from hydrus, and picks a song from a folder, then automatically generates a fap hero video out of it.
I've been unable to connect and sync to the PTR for a week now. Is it down? Get the following when trying to sync ConnectionException Could not connect! Traceback (most recent call last): File "urllib3\connection.py", line 159, in _new_conn File "urllib3\util\connection.py", line 84, in create_connection File "urllib3\util\connection.py", line 74, in create_connection OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions During handling of the above exception, another exception occurred: Traceback (most recent call last): File "urllib3\connectionpool.py", line 670, in urlopen File "urllib3\connectionpool.py", line 381, in _make_request File "urllib3\connectionpool.py", line 978, in _validate_conn File "urllib3\connection.py", line 309, in connect File "urllib3\connection.py", line 171, in _new_conn urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x000001DBE1643F70>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions During handling of the above exception, another exception occurred: Traceback (most recent call last): File "requests\adapters.py", line 439, in send File "urllib3\connectionpool.py", line 726, in urlopen File "urllib3\util\retry.py", line 446, in increment urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='ptr.hydrus.network', port=45871): Max retries exceeded with url: /account (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001DBE1643F70>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "hydrus\client\networking\ClientNetworkingJobs.py", line 1174, in Start response = self._SendRequestAndGetResponse() File "hydrus\client\networking\ClientNetworkingJobs.py", line 1692, in _SendRequestAndGetResponse response = NetworkJob._SendRequestAndGetResponse( self ) File "hydrus\client\networking\ClientNetworkingJobs.py", line 340, in _SendRequestAndGetResponse response = session.request( method, url, data = data, files = files, headers = headers, stream = True, timeout = ( connect_timeout, read_timeout ) ) File "requests\sessions.py", line 530, in request File "requests\sessions.py", line 643, in send File "requests\adapters.py", line 516, in send requests.exceptions.ConnectionError: HTTPSConnectionPool(host='ptr.hydrus.network', port=45871): Max retries exceeded with url: /account (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001DBE1643F70>: Failed to establish a new connection: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "hydrus\client\gui\ClientGUIAsync.py", line 59, in _doWork result = self._work_callable() File "hydrus\client\gui\services\ClientGUIClientsideServices.py", line 2467, in work_callable
[Expand Post] service.SyncAccount( force = True ) File "hydrus\client\ClientServices.py", line 1306, in SyncAccount account_response = self.Request( HC.GET, 'account' ) File "hydrus\client\ClientServices.py", line 1194, in Request network_job.WaitUntilDone() File "hydrus\client\networking\ClientNetworkingJobs.py", line 1533, in WaitUntilDone raise self._error_exception File "hydrus\client\networking\ClientNetworkingJobs.py", line 1313, in Start raise HydrusExceptions.ConnectionException( 'Could not connect!' ) hydrus.core.HydrusExceptions.ConnectionException: Could not connect!
>>16232 Should PTR still be broken? I still get this error when refreshing my account: >Attempting to download an update for public tag repository resulted in a network error: >404: This update hash does not exist on this service! Just updated to version 445, no improvement sadly.
I have downloaded a lot of files from gelbooru outside of hydrus and imported them. How do I get each file's tags from gelbooru without downloading them again?
Is there any way to default to the public tag repository when I open the tag manager window by hitting f3?
Is there a way to only import files already in the database? My use case is using PixivUtil2 for ugoira, but I was too stupid to try to understand how to only download ugoira with "batch jobs": https://github.com/Nandaka/PixivUtil2/issues/813 So I downloaded the entirety of a Pixiv I had already saved via hydrus. But the problem is, when I just imported the entire thing before, virtually all the images had different image hashes from the ones already in my database, presumably due to pixiv removing metadata from their images at some point: https://github.com/Nandaka/PixivUtil2/issues/807 So I could just import anyway, and delete the new files, provided I have the hard drive space to do so. It would also benefit me in that the file will be recognized by my hydrus, unless I clear its memory of this somehow. But still.
Is there a way to make import folders exclude certain sub-folders and a simpler way to have Hydrus auto-tag media from specific subfolders? I've been using it to import my Steam and Playnite screenshots into Hydrus, and I want to easily tag them by game to make later organization a bit easier. From what I understand, to make this happen as-is, I would need to make every individual game ID in both folders, a separate import folder, and I'd rather keep these import jobs from the same folder as one import job.
(18.79 KB 1363x791 !HydrusDupeFilter.png)

Also, the duplicate filter page seems to be stuck on the "loading pairs" page, when it was previously rather instantaneous (but in all fairness, that was at least 5000+ files ago). Is this controlled by an option in Hydrus, or is this a legitimate bug?
(24.95 KB 625x355 !HydrusMediaViewer'fix'.PNG)

>>16251 Nevermind this one, I set the media viewer action to the underlined option, which also effects the dupe filter. While I'm on this, could an option to have the media viewer always be enabled for dupe filtering be added, or do you think that this option would be useless for most Hydrus users?
>>16249 Are there new pixiv files yet? If you still have them, reimport them and tag them with a tag "new pixiv files" or something when importing files. After all of files imported,search with a tag before and exclude duration > 0 which means excluding ugoiras. and delete result. then delete a tag "new pixiv files" from ugoiras. I think this workflow works well.
(6.24 MB 4133x5564 b.png)

(8.04 MB 4133x5564 a.png)

Here's a possible bug. These two images seem to be the same but with different settings. Hydrus doesn't recognize them as pixel by pixel duplicates even though they seem to be according to other programs.
>>16254 >different sizes There's probably some compression in the smaller one that's detectable enough for Hydrus to consider them different. What search distance are you using, and how much farther do you have to go until they're picked up by Hydrus?
(1.65 MB 1644x1542 77976205_p0.png)

(1.35 MB 1644x1542 77976205_p0 (2).png)

>>16254 I just optimized pic related with the program "pingo": https://css-ig.net/pingo Using the command "pingo -lossless 77976205_p0.png". And hydrus treats them as different. But I mean they are different images, the hash doesn't match. If you're trying to get rid of similar images with different hashes, you can right click > open >similar-looking files > speculative. "Speculative" is merely the lowest threshold that allows the most amount of similar images to be shown as results- there are four options.
>>16256 Not immediately relevant, but I just downloaded the latest version of pingo and the command no longer works- I was using a version I downloaded on 2018-04-12.
>>16236 Thanks, yeah, I agree this is high priority for the Client API work. It may take a couple of rounds to get right, if the guys who make apps for the API let me know what I deliver is a little large and laggy. Sometimes tag lists can get pretty heavy. I am not sure when I will be able to fit the work in, but I've made a note to keep it in my top list. >>16237 Thank you, I will check this out. I've got several reports of multi-column lists giving terrible size calculations still, and magically growing dialogs. I want to get this completely squared away. >>16238 Damn. I'll keep at this. >>16239 Ah wow, this is useful. I'll check this as well.
>>16243 Wait ten years for haptic VR to have a recordable file format, I'll see what I can do. >>16245 Hmm, it was down for a couple days, but it is back up now. You have the host and port correct. In case this is some odd firewall issue, can you try just putting its welcome page URL in your browser? Should be: https://ptr.hydrus.network:45871/ You should get an ASCII lady and some version numbers. Otherwise, that OSError looks like a standard OS network error, the sort of thing you'd get if your ethernet cable was unplugged or your system was full of network traffic and Windows didn't have a spare slot to give to hydrus. I'd generally be boring and suggest that computer has a network problem, but I assume you can download from boorus and so on in the hydrus client ok? And a regular web browser works ok? Ah, some searching of WinError 10013 suggests it could be your system/router/ISP/whatever is unhappy with the high port number. That may show up if you can't load the welcome page in your browser. The solution there would have to depend on your situation. VPN probably fixes it (unless you are already on a VPN that, say, only allows traffic on 80 and 443). >>16246 Argh, this is supposed to auto-heal a bit nicer now. Can you try hitting services->review services->remote->PTR and then click reset downloading->do a full metadata resync. It should reduce/change your current number of updates, where it says 'downloaded x/y', so please note your 'y' before you click it. I never figured out why the PTR gave out these wrong hashes to a handful of users in the first place. Have you had this problem for several weeks, or did it suddenly come up?
>>16247 There's no easy technical way to do this unfortunately, which is sort of why I wrote the PTR. If you want to sync with the PTR, and those files are original to gelbooru (e.g. you haven't resized or compressed them since downloading), then the PTR will give them a bunch of great tags from other users who did get tags. But the PTR is a big investment. If you don't want to sync with the PTR, your best feasible bet is to open the gallery downloader and download the top ten or so artists those files cover. Try one first. I am pretty sure gelbooru offers a decent md5 hash in its downloader, so hydrus should be able to recognise it already has the file and just grab the html and tags. Do that for a bunch of creators, you'll have tags for a good number of your files in no time. A more advanced (and prototype/buggy) answer is to turn on 'file lookup scripts' under options->tag suggestions. This will let you fetch tags from gelbooru for files one at a time in the manage tags dialog. It uses md5 lookup, but only works one at a time and needs a human to add the tags. In the far future, I will figure out an automated routine for this to work on thousands of files, but it is ugly and manual for now. I still think setting up downloaders is your best bet. You'll probably want to get into subscriptions in time, so start playing with downloaders now, and the files you already have should save you some bandwidth along the way. >>16250 I am not sure about the 'exclude certain sub-folders' part. I don't think so. To grab tags from folder names, check in the 'import folders' UI, there should be 'filename tagging' at the bottom. It allows you to add an example path to test on. I think something like 'add second last directory' (series) or similar may fit your purpose, if the overall path is like 'steam/screenshots/coolgame/2021/filename.jpg'. It'd then tag that file 'series:coolgame'. Your import folder path in that situation would be 'steam/screenshots'. If you really need to exclude some folders, you might be able to wangle this with symlinks somehow--linking the folders you want to grab to a different location that the import folder watches--but Windows isn't great at this tech. Tbh I think a batch file or just a weekly/monthly job to sync/copy your desired screenshots folders to a separate location for the import folder to go through may work best. I agree making a separate import folder for every game subfolder you want to grab is not how you want to do it.
>>16251 >>16252 Yep sorry, someone else mentioned this to me. I'm going to have to figure out an override or something. >>16254 >>16255 >>16256 >>16257 Hmm, yeah, I get the same as you--in the duplicate filter, they do not show up as pixel duplicates, but to my eye, they seem the same. I have seen this happen before (and the reverse, a false positive) when one of the files has an icc profile, but I don't think either of these images has any icc. I will just do a bit of debug, one sec... OK, got it: The larger of those pngs is 32bit, with an alpha channel, RGBA. That's why the size is so different, despite them both being pngs. My pixel dupe hashing tech is including that, even though it seems nothing is actually transparent on that channel (all pixels I checked were alpha 255), and so it looks different to the pixels in the 24bit RGB image opposite. Thank you for this report. I will have to consider carefully what to do here. I guess if an image doesn't have an alpha channel, I should add one all 255 like this before I pixel hash. Then the comparison is fair and also allows images with useful transparency data to compare with each other, in case the transparency mask differs. Maybe there's a better way to do this, I'll think about it.
>>16259 Turns out my ISP is blocking the PTR. A VPN fixes the problem. Apparently the IP that the PTR resolves to is recommended to be blocked FBI and CISA. "IP address 51.159.28.101 appears to have been configured to receive stolen Windows New Technology Local Area Network Manager (NTLM) credentials. Organizations should consider blocking IP address 51.159.28.101 (although this action alone may not mitigate the threat, as the APT actor has likely established, or will establish, additional infrastructure points). For additional details about this activity, to include mitigation recommendations, please see Joint Activity Alert "AA20-296A Russian State Sponsored APT Actor Compromise US Government Targets"." See: https://us-cert.cisa.gov/sites/default/files/2020-10/AA20-296A.stix.xml and https://blogs.manageengine.com/it-security/2020/04/22/breaking-down-the-san-francisco-airport-hack.html
I've been unable to connect to the PTR for around 1 week or 2 now. When I try refreshing my account, it hangs for a few minutes then says it couldn't connect. Even testing my access key says Network problem: Could not connect and a similar response occurs when I test the address, so I'm not sure what to do. I have the right access key, and address, and it was working before.
>>16262 Oh wait I didn't read this. This could be the problem I'm having. And I don't have a vpn shit.
>>16259 >Have you had this problem for several weeks, or did it suddenly come up? I think it has been one or two weeks now. I did what you said, hit "refresh account" and the error occurs again about 2 seconds later. It did not change the number of updates available (as far as I saw), I'm stuck on 11196/11262.
Is there a way to get danbooru/gelbooru notes (translations) into Hydrus?
>>16264 The problem for me appeared out of nowhere after using Hydrus and the PTR for 7 months without issue, then one day, nothing. The FBI/CISA blocking recommendation was made back in October 2020, no idea why my ISP randomly chose to block it now, but it is what seems to have happened. I only discovered it because I couldn't ping the PTR and googled the IP address out of curiosity.
>>16260 The path is more like >...\Steam\userdata\<steam ID>\760\remote\<Game ID>\screenshots With a separate "thumbnails" folder in each (which is the folder I've been wanting to exclude), containing incredibly small versions of the account's screenshots, even ones that aren't locally on the computer; I think I can at least use the method you've described and make those directories into series tags, but I'd still need to make them siblings with their proper names (which would thankfully not be *as* much of a hassle, as I've already made them somewhat grouped together by making Hydrus tag every picture in this directory with a "personal screenshots" tag, so I can at least sift through separately from my other media in Hydrus).
>>16267 Yup. I can't ping it either. I don't know what to do now.
>>16265 Did some testing on my own. First, I tried exporting PTR updates. I got a couple of FileMissingExceptions, so something seems to have gone wrong in the past with these files. Completely resetting the ptr did not fix the issue at all, so I restored from backup (that I made prior to doing this) I also tried removing the last couple of update files, that did not work either. Here is precisely what I tried: - Delete the first 6 or so update files - Run a file maintenance job for all update files (remove record if file does not exist) - Now, the metadata resync correctly replaces the files I just deleted, up to the update I had issues with (currently at 11196, so it appears like 11197 has an issue). At that update, same error - 404: This update hash does not exist on this service! If I understood network report mode correctly, it tries to call the following URL: https://ptr.hydrus.network:45871/update?update_hash=a2c1dfee15f3b57b51a8776b81cb80c08af52dfd12b9b9dab129d7fd88d52729 Any way I can look up or change what the correct hash for that file would be? Thanks!
>>16262 >>16263 >>16267 >>16268 >>16269 >>16270 There, now routing it through another server. Which should not be blocked by some tard Gov/ISPs way too late. Might take a few minutes for the DNS to propagate. >Attack happens on April 2020 >I get the server on June 2020 >IP is blacklisted on October 2020 Literally half a year response time, wew. On the other hand, http://z2vawuuorbnq6mlgi7v6p3evjlyrhut6vyszathm2uoeiq2kxxoo4eqd.onion:45871 has been there for some time. Ignore the cert, compare the cert with the public side. Can't fix this error unless LE support .onion addresses and hydrus has kinda a hardcoded https boner(which is fine).
>>16262 >>16263 >>16264 >>16267 >>16269 Thank you for this report! I just talked with the guy who runs the PTR. It looks like he ended up with a bad server for one of his boxes. He got it on 2020-06, couple months after the hack on 2020-04, and US authorities added the IP to their list on 2020-10, and now I guess some ISPs synced with the list on 2021-06. Really excellent stuff all around, just top notch. He's changed the proxy to another box, so ptr.hydrus.network now runs off 209.141.34.244 . Please try refreshing your accounts in your clients and let me know if you have any more trouble! >>16271 And there he is, as I type this. Thanks again, let us know if anything else goes wrong!
>>16271 An extra thing: I am confirming that that onion address is legit, this is the same as he told me.
I had an ok week. I mostly focused on a new privacy improvement for repositories like the PTR, but otherwise I fixed a few bugs and improved some downloader UI. The release should be as normal tomorrow.
>>16271 >>16272 Yes it works! Thanks! This raises another question though. I tried looking on the answer to it on the PTR help page since I figured it would be there but I didn't find an answer. If I was to remove the PTR (after migrating tag data for current files of course) would it be completely gone? Would all of the space it took up be regained, or would the PTR mappings and all of that still be baked into my database with no easy way to remove them? Basically, is adding the PTR a decision that can't be completely reversed and the space can't be regained?
>>16272 Sorry, my issue (>>16270) is still not fixed. But I think it has something to do with my client, not the ptr as a whole... Also, is there a way to configure hydrus to only upload to the ptr using tor, but using clearnet for anything else?
>>16277 Sorry for quick post, but yeah, there's something odd going on with these 404 update files. I have had several reports now, I am not sure what is going on. I will look into this more. Please try hitting services->review services->PTR then reset downloading->do a full metadata resync. Let me know if that changes anything!
https://www.youtube.com/watch?v=asojeparbK0 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v446/Hydrus.Network.446.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v446/Hydrus.Network.446.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v446/Hydrus.Network.446.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v446/Hydrus.Network.446.-.Linux.-.Executable.tar.gz I had an ok week. The client does not have a huge changelog this week, but the server has a neat privacy improvement. The PTR is going to be doing a heap of maintenance this week. It will be 'busy' a lot, approximately one hour of busy and then three hours free. Please bear with it, and if you have a million mappings to upload, I recommend you just give it a break and come back later. I am not totally sure how long it will take. Best case it is a day, worst case it might take four or five. null account tl;dr: The hydrus server is now even more anon. You don't have to do anything. As the PTR has moved to multiple accounts, we've had several good discussions about privacy. Separate accounts, despite being anon, could potentially leave a fingerprint of preferences on the server. If the server were to fall into bad hands many years from now, someone could mine those records--maybe mixed with one time you casually said 'yeah, I added that sibling'--and perhaps derive something from it. There is no technical need to remember which account uploaded what long term, so now all hydrus servers completely anonymise their content after a certain duration, default 90 days. A new non-useable 'null' account takes possession of files, tag mappings, siblings, or parents after the delay, letting the original uploaders be forgotten. Janitors will still have time to work on recent account-based problems, but the historical record works just like the old shared public account: all merged together. I have updated the privacy document in the help to talk a little about it. As long as you do not tag your own face in pictures or something, I think we are pretty great now, especially if you use a VPN. https://hydrusnetwork.github.io/hydrus/help/privacy.html#account_history It will take some time to anonymise the PTR or any other big server, as it has to go through its whole historical record to catch up. Please bear with it. full list - misc: - fixed a typo bug in the latest pending upload routine when it was cancelled/errors out early - fixed a problem with the new subscription gap downloader, where when the page opens with the first query, it could sometimes assign 'already in db' to items in that query that were actually 'successful'. some other downloaders may have been rarely hit by this, but it was mostly the gap downloader - the client _should_ now support a service host that has path components (e.g. one hosted on a proxy), like myserver.com/hydrus_repo. the port will now be correctly inserted in the address before all requests. hydrus and ipfs both should work, fingers crossed - when an admin modifies the account types, the server now only prints the 'updated account type' log record if there were actual changes - . - downloader UI: - the confusingly named 'file import status' and 'gallery search log' in the downloader system are now renamed 'file log'/'search log'/'check log' for the file import queue, gallery downloader, and watcher respectively. the 'table' bitmap buttons are also replaced with simple easy (and easy to refer to!) label buttons. - when you open the file/search/check logs from the downloader page list right-click menu, they now spawn properly inside regular windows, not modal dialogs (which were inhibiting interaction with the rest of the program while open) - relabelled the awkward 'even if url/hash recognised' checkboxes in file import options. 'do not skip if' becomes 'force download even if', and the text matches that in tag import options for page content. also improved the tooltip on these checkboxes - all of the downloader layout boxes have also been renamed and harmonised with each other. gone are overly technical 'import queue' and 'gallery parsing'. now it is generally 'imports' up top and 'search' or 'checker' etc... below - layouts have also been harmonised a little. the url downloader page now has boxes for file vs search URLs, the hard drive import pause button is moved up as other pages have, and several off-by-a-pixel sizer layouts have been fixed - . - null account: - to further improve server privacy, particularly after the PTR's multiple account switch, all repositories now forget which accounts uploaded which content after a certain age. by default it is 90 days, but you can check in _review services_ once a server updates. this defends against a variety of hypothetical attacks where someone very clever gains access to the raw server database files, maybe years from now, and tries to crawl its anonymous account history for derivable information--now there is no history! - it will take some time to retroactively scrub a huge server like the PTR. for the PTR, it is mostly a relative no-op of moving account ids from the old public shared account to a new 'null' account, but it'll still be about 1.2 billion rows! this happens in the background, so the server will still be useable most of the time, but it will have spikes of 'busy' for about one hour every four (i.e. one hour of mostly busy, three hours of free), probably for several days. it may be a pain to try uploading a bunch of stuff in that time, so if you have a million pending mappings, you might like to just give the PTR a break for a few days. once it has fully caught up, the anonymisation should only be 20-60 seconds of 'busy' a day - the way the anonymisation works is all serverside services now have a single non-useable 'null account' that will take possession of all content after the delay. the original uploader is lost, and the whole historical record is merged together. - the privacy help doc has been updated to talk about the new anonymising system. overall, I think the null account pretty much eliminates the speculative account cross-referencing worries we had, and I am happy - .
[Expand Post]- admin/janny info: - for admins, all repositories now have an 'anonymisation period' option that you can edit in the service admin menu, defaulting to 90 days (min 1, max 360). you'll also see summary statements in the server logs as updates are anonymised. anonymisation will kick in two minutes after boot, so if you want to change this value immediately on update, get ready and be quick about it! - for jannies who can see accounts, you will see the null account pop up in reference to older content (moreso in future when I expand janny UI and permissions). it being special is highlighted, and various account modifying UI shows it cannot be edited - also for jannies/admins, I had to do some wickity woo to get the null account to work without a network update for everyone. if you try to look at the null account on 445 you may get an error. normal users won't run into this, but there's a kind of 'soft' network version update for you today next week The null account took most of my time this week, and I now have several extra little jobs to catch up with. So I'll bash away at that small work, and I'd really like to crack the multiple column lists that keep growing in width.
>>16276 It is complicated, but if you delete it today, all the data it is currently using can be recovered, but you won't see the reduction immediately. Most of the data is legit deleted when you close manage services, but I had to deactivate the routine (Vacuuming) that would then truncate your file back to a smaller size. This most affects client.caches.db and client.mappings.db. I will bring the routine back soon in a more sophisticated way. If you want the space back earlier, I can walk you through doing the operation manually. For client.master.db, I will need to write a new 'definition recycling' routine to get all the space back. I have laid the groundwork on this, and I will be working on it more soon, but I don't know when it will be done. Overall, if you sync fully with the PTR, I think you'll be adding about 55GB or so to your database files. When you remove it, about 9GB is currently non-removable in client.master.db.
>>16277 There's no per-domain proxy in hydrus yet, but have a plan for a 'domain manager' and related UI that will let you change a bunch of connection rules on a per-domain basis. >>16268 I see what you mean. If you are feeling clever, you might be able to exclude the thumbnails with the 'file import options' on the import folder. That allows you to exclude files below a certain size from import, so if screens are always >80KB and thumbs always <28KB, you can probably do it. Another option, but only if this is strict, is if screens are always pngs but thumbs jpegs, then you could tell your import folder to only grab pngs. It may not be super helpful for your situation, but for my own vidya, I have a weekly job that collects my screens and captures into a series of custom processing folders that let me do a little filtering and then, when I have completed a game, I put it all in a folder for compressing to reasonable size with ffmpeg and imagemagick, then I import that 'game' manually to hydrus all in one go, to its own page that I can go through later if I want. Tagging then is just a ctrl+a thing on that one page, so I don't mind typing the series name and some other personal search tags in 'my tags' in.
>>16266 Not yet. I do a 'medium size job' like today's null account every four weeks. One of these medium jobs, I will add 'note parsing' to the downloader, and then the guys who make downloaders will start integrating this tech into our downloaders. It will be basic to start with, but once we have some data, maybe we can start playing with actually showing those translation boxes on top of images. >>16270 Thanks again, this is a great report. I am going to have to think about this some more, and I think I'll have to add some more debug code. I am not sure why the full metadata resync doesn't fix the update record. Why would it be asking for files that don't exist? That specific hash may be useful, thank you for figuring it out. The update storage system needs some work generally, so as I continue on multiple local file services, I'll give it some time. Maybe there is just an update file storage bug in there. I am sorry for the trouble.
I'm too lazy to try to cite my earlier posts about it, but I'm the same guy who experienced the vertical black bar on some previous releases, hydrus being unresponsive on boot for 30-60 minutes, hydrus not loading image previews for an image, ever, if I select the image before the 30-60 minute unresponsiveness on boot finishes, etc. But I just updated to latest (v446), and, I don't recall ever doing this before, but I started importing images before the 30-60 minute unresponsiveness-on-boot phase of hydrus was done for me. So far it has imported a single image, then hydrus froze. It has been frozen for over three hours now. The "unresponsiveness" that usually happens on boot is never a freezing, but rather, a lag that eats your inputs and only performs them every 10 seconds or so. So this is definitely something different. I am pretty tired, so I'm tempted to just go to bed and see if it fixes itself by the time I wake. But I remember being told that if when I'm closing hydrus, and it freezes for several minutes, it's probably safe to terminate the client. So this freeze for several hours seems way beyond a safe threshold for closing, if the client just freezing while open can also ever be safe to terminate. I dunno if I worded all this right. It's very shitty to miss out on subscriptions because the client is just frozen not doing anything at all. Will probably terminate the client and reboot right now.
>>16283 It was actually two different imports, one of which had imported 3 images, the other had only imported 1. But neither of them are still present after terminating hydrus in task manager and rebooting. I do remember increasing the amount of time between hydrus creating a snapshot or whatever for my pages open, in an attempt to reduce lag. But I didn't realize that would've happened here. I would've terminated and rebooted much sooner if I realized I wouldn't have been interrupting anything. I don't know how it really works. But I thought I was going to have to pause the import pages until the temporary unresponsive stage did its thing.
The duplicate filter is really shit for big images because of loading times. How about an option to load both images to RAM, or keep one on the screen until the other is loaded?
>>16282 >One of these medium jobs, I will add 'note parsing' to the downloader, and then the guys who make downloaders will start integrating this tech into our downloaders. It will be basic to start with, but once we have some data, maybe we can start playing with actually showing those translation boxes on top of images. In many cases I'd be happy with it being just anywhere visible (tag list or such) even without it being rendered in the correct indicated position, but that is even better.
>>16278 Hello! Already did that, didn't fix it either. I'll play around with it a bit and let you know if I find something...
>>16287 I did some scripting and found that my client did not have all of the update hashes the PTR has. So, in my table "repository_updates_16", there are 122 update indices completely missing. For anybody interested, you can find the script I made on my github account: https://github.com/F18SuperHornet/ptrtest Note: I did some "reverse engineering" on the client, since I could not find any documentation on how this entire PTR stuff works behind the scenes, so I could be totally wrong here. Is there any client function I can run to fix this, or should I just insert whatever the PTR tells me into the DB and see if it works? Or am I completely wrong and this is how it should be?
Is it possible to just grab the tags used in the PTR without syncing to it? I have an HDD and can't sync the entire thing because of it. If I can just grab the tags I don't need to worry about fucking up tags later when I do sync. Just being able to look at the tags would be great.
>>16289 The hard part is getting all of the PTR tags into your DB, not getting your tags to the PTR. A HDD would be too slow to do this, because it needs a lot of random reads and writes. If you have an SSD, only your DB needs to be on it, the files can be stored on the HDD.
Is there a way to search for entries which contain a favorited tag? Would be nice, also being able to filter it down to a favorited namespace, like all content which have a favorited creator tag.
>>16290 I sync to the PTR with an HDD, and it's annoying, but I make it work, since I don't have an SSD and probably won't be able to get one soon.
(39.14 KB 997x613 ClipboardImage.png)

I've been editing the ZeroChan file parser to get tags (the default one in the compressed file doesn't account for namespaces), and I'm now trying to get it to only grab "theme" tags, that place's equivalent to unnamespaced tags; the closest I've gotten in pic related. How do I get this formula to only grab tags with the theme class? Here's the image I'm testing this on, in case you need it to better understand what I'm talking about: https://www.zerochan.net/2821247
>>16293 Looks like I've figured out the issue; it doesn't pick up the "theme" class *at all,* no matter *what* I do to make it look for it (Zerohan's tags in image 1, Hydrus in image 2). Is this a bug, or is there a way to get it to pick up with something more complex?
Stupid question that has surely been answered before: How to I set the media viewer to not zoom in if the canvas size is smaller than the viewer size?
>>16283 >>16284 Thank you for this detailed report, and I am sorry for the trouble. I don't want anyone to have performance this bad. Given the files were not 'saved' on next boot, it sounds like it is your SQLite database being caught up here. That suggests something like the background sibling/parent sync is lagging you out. Or, with the extra couple of files imported then causing worse lag, perhaps the new session saving routine taking several minutes to save, and then other jobs piling up behind it, and by the time they are clear it is time for another session save. Sorry if I am repeating myself, but the best things you can do when the client is under strain are: - Turn off 'normal time' background maintenance for files and tag display, which are under database->maintenance->files->work during normal time and tags->sibling/parent sync->work during normal time. - Reduce the size of your session (particularly number and queue size of downloaders). - Run on an SSD. Obviously the last step is not simple, but if you are on an HDD and have a decent sized client, then this is the biggest culprit. HDD + PTR is not feasible right now. If you are on an HDD (and particularly if you are synced with the PTR), we should talk about either moving to an SSD or removing the PTR. In any case, if you can get those two maintenance timers off in moment during a future boot, then reduce the size of the session if you have more than say a hundred downloader queries, then it would help me a lot if you could run some profiles and then pastebin/email me the logs. I think 'db profile mode' and perhaps 'callto profile mode' under help->debug->profile modes. There's a help entry under that menu as well that talks more about it, and a help page here: https://hydrusnetwork.github.io/hydrus/help/reducing_lag.html I have had some reports that the new session saving routine (which saves lots of HDD writes) is producing high CPU spikes for some users. If you have a large session that cannot be reduced in size, the autosave time option is under options->gui pages. Profiles here will also help me figure this out, although I am working with other users already on this so no super urgency. I am actively working on job scheduling, attempting to improve performance for busy clients, so I would appreciate your continued feedback. If you don't have a huge session, and/or you are on an SSD and/or you don't sync with the PTR, please let me know. If you don't have any 'heavy' stuff but you are getting a three hour hang, then there is something else very wrong. I don't want to sound like I am fobbing my bad code off on another issue, but if you have a small client hanging, I'd check out if your hard drive was ok, just to be safe.
>>16285 Yeah, I think it is going to need several new hardcoded rules. For now, the options governing image caching are under options->speed and memory. It is possible to cache any size file, but now all the size and percentage rules are exposed to the user to play with. >>16286 I think first step is I'd like to have notes displaying (optionally) in the background of the media viewer. At the moment they are too tucked away. I know many users want more notes support, so I just have to put some time into it. >>16287 >>16288 Thank you, this could be extremely useful! I will make sure to check into your code. It seems like my metadata resync code isn't working, and yet I've given it about three looks now trying to solve this 404 problem. I'll look into it more closely with my IRL client, but those missing update indices could be ok, especially if they are on the lower side, since they may just be the handful of updates where no one uploaded anything in the early days. Since you've already poked around here, the problem as far as I can see is the PTR has 'poisoned' several clients by generating some update files and then giving hashes for them to several users. I think the PTR admin restarted the client at a bad time and somehow it forgot these updates, or it crashed or similar, and then the updates on the next boot had different hashes. This isn't supposed to be possible, but it would be the best explanation atm. The clients that got bad hashes are now storing those in that repo_updates_x table, and ask the PTR 'hey, can you give me update 01237859abcdef...', and the PTR returns 404, not knowing what they are talking about. But then the metadata resync should clear them out. I just don't understand it. This is the first time we've had a problem like this, after almost ten years. I'll be working on this this week. I may if it is ok ask you to run something, but if not, please keep an eye on the changelog and let me know how future versions work. My ideal here is it all fixes automatically.
>>16289 Not yet. Your best feasible bet on an HDD is to (re)download your favourite artists from the popular boorus and manually parse into a new local tag service. I hope in future to have peer-to-peer comms for clients via the Client API. At that point it would be possible for you to dial into a trusted friend's PTR-syncing client and ask it for tags for all the files it has. Unfortunately the server does not index for fast search, so I can't even hack this ability in. Part of syncing is making all the tags quickly searchable. >>16291 Can you explain this more? How is searching for a 'favourited tag' different to searching for a normal tag? Or is this 'show me everything that has any favourited tag'? Maybe you can walk me through an example workflow. >>16295 options->media. Double-click on the 'image' entry in the list, then set 'if the media is smaller than the media viewer canvas' -> 'show at 100%'. You can do it for video/animations too, depending on what you want, and also set specific jpg/png/whatever rules.
(40.52 KB 1471x183 yo_tags.png)

(10.64 KB 455x129 html_tags.png)

>>16293 >>16294 I am sorry, I am not sure I understand where the 'theme' text is coming from in this problem. When I look at https://www.zerochan.net/2821247 , I get pic related. If you were to parse, say: 'ul' tag with 'id'='tags' 'li' tag with 'class'='character' 'a' tag get the text and then assign that a namespace of 'character', and then duplicate that parser and change the 'character' parts to other types, like mangaka/creator, would that do what you want? I'm afraid I don't see the 'normal' tags like 'solo' as in your picture in >>16294 , even if I try to search for them and find another page with them. Is that something you have to set in zerochan preferences or something. I am not familiar with the site. If there is an issue of user settings, could it be hydrus counts as a 'guest' user and so defaults to not showing them too? If you copy/paste that html the test dialog grabbed into a text program, is the 'tags' 'ul' the same as what you see in your browser? It seems like that might be what is happening in that test parse where it only gets the four tags from straight up 'ul' -> 'li'.
Here's an idea that I don't think is extremely hard to implement: abort hashes. Some overengineered sites such as Sankaku will eventually have their download URLs expire, serving an image saying something along the lines of "this URL is expired" instead of the wanted image. It would be nice if Hydrus could be given a list of these bad hashes, and then when an image is downloaded with a matching hash, it is not added to the DB and neither are the URLs/tags/etc. Maybe it could also pop up a notification and pause the query in the case of a gallery downloader. As it is now, if you leave an expired query to download, you can get this one file with so many tags that trying to view it or remove the tags freezes or crashes the client. Since it has the URLs of the files attached to it, (I think) it can cause problems when retrying the query after deleting the expired image as it sees a deleted URL. You can check the things in file options to download no matter what to get around that, but this can cause wasted bandwidth.
>>16299 I only now realized that the image was a bad example; if you use an image like this ( https://www.zerochan.net/3369553 ), then try to get Hydrus to pull from here, you get the second picture. As for searching, generally you can just put in any phrase and separate them with either two spaces of a comma, even if the entire phrase has spaces in it, i.e. "orange hair, long hair" works as well as "orange_hair, long_hair" in the more well-known boorus. But I think trying to search Zerochan galleries in Hydrus also has issues, so even if you did that with the gallery url that comes with the downloader pack for Hydrus, it may not work.
>>16300 Thanks. Yeah, I think I agree. We are going to try for something like this PTR side when I add the tag filters (which will let them stop 'tagme' or 'do not post' style tags before upload), I'll also integrate a file filter so they can stop the various 'does not exist' or 'do not leech' placeholders that turn up and as you say tend to get 5k tags, which even if I can improve client performance to deal with it better, are still not useful. I could do the same clientside and hang it on file import options or similar. >>4787 Thank you. When I look at that page, I get pic related. I think there is a login or account-based tag filter or similar. I can search those tags, but when I actually view media, I don't see them. Try opening that URL in an incognito mode page, maybe you'll get the same. I think that's what hydrus is seeing unless you get it to login as well.
>>16302 You're right, I opened that image in incognito mode and the theme tags are missing. I've started trying to work on a login script, but I think my lack of HTML knowledge and what and where to look for things to help with it are getting in the way.
>>16297 Hello! Thanks for the explaination. I spent around 4 hours poking at the codebase, now I'm sure something very weird is going on. So, just to make absolutely sure I got this correctly; To save a hash, hydrus takes the raw object (bytes) and writes it to a BLOB field in the DB. When retrieving, the only thing it does is essentially calling the .hex() method of the bytes object, correct? If that assumption is true, the PTR update routine has some issues with converting hashes from the database. I tested this using my script and simply calling the hex method on all returned fields. No issues there, everything found in the PTR, all good. But when I started printing the returned hashes from the method "_GetRepositoryUpdateHashesIDoNotHave", it got different hashes for the same hash_id my script found! I copied the exact hash_ids the client requested, and sure enough, whatever hydrus prints is NOT the hex value of that blob-field. Looked in the hashes-table, the hashes that hydrus requests do not exist at all. So, essentially my script is worthless, because it's not a database error, but definetly something at runtime. I'll try to dig some more and let you know if I find anything!
>>16297 >>16304 ...and fixed! Problem is not the database, but the hash cache. Regenerate that, get a new account, *restart client*, problem solved. Won't work without a restart, I tried... So, if you want to solve the problem, you probably need to purge those wrong hashes from the cache table too, not just the DB table. And maybe even the cache object in memory (or just tell people to restart the client). Thanks for your great help!
>>4802 I'm not devanon, but this seems to be a fairly rare issue. In some circumstances, your client could stop syncing to the PTR due to bad metadata. And the cleanup option for such bad metadata did not work for me, because it does not expire cache, and I had the bad metadata cached. Nobody except me should need to do this, and I'm fairly sure the cleanup option will include a fix for this soon.
>>16306 Alright, then; for the record, I deleted my post because I only just realized then that you weren't devanon, and I was changing my post to ask him about it instead; for anyone else who's looking at this later, the question was >Will users need to do this in the future if they've never used the PTR before the next update, or is this not necessary for those people?
Is there a way to purge any sibling/parent petitions you've sent that got rejected so that you go back to seeing the "true" ptr, perhaps moving said relationships to a local tag repo in the process?
>>16304 >>16305 Thank you for this work. I was going through this code again this week, setting up fake broken examples and resync was all working great. The repo updates storage is fine, so I figured it had to be something outside, particularly after reading again that you got this same problem even after resetting the PTR. I was drifting towards it being some hash definition being wrong, and I think you have figured it out. The cache is a little fast copy of the client.master.db 'hashes' table just for your local files, since those are asked for more often. It sounds like it got desynced from your master hashes table. I am going through this cache code and will try to figure out how this could occur. One of the guys I am working with on your same 404 bug had a 'malformed' database at one point and we had to do some serious database recovery. That left him with missing master hash definitions, which is the cause of several hash definition maintenance and recovery routines I've done in the past months. Perhaps something like that is causing this. Have you ever had to clone or recover a database file after hard drive failure? Anyway, everyone gets a regen of this cache this week. As it happens, I was actually planning to do this week for other reasons anyway!
>>16308 I'll have a method available in the nearish future, a 'reprocess from source' maintenance task just for siblings and parents.
I had a great week. I reworked how file status is stored in the database, greatly accelerating many functions all over the program, particularly on very large clients. I also fixed some annoying bugs and added some quality of life. The release should be as normal tomorrow.
So when i make a virtual parent or whatever its called do i have to make it so that at least 1 image has the actual parent for it to show up in the auto-complete?
>>16309 Yes, my DB has been corrupted and restored using ZFS snapshots and db-dumps at least 4 times now (thanks to XFS). I also use 65535 as page_size, if that matters too. I am pretty sure that once or twice I just dumped the malformed DB image (and it worked), so I probably used that corrupted data too. I use ZFS now, so any kind of bitflips should be reported and corrected automatically by it, so it should not happen again.
https://www.youtube.com/watch?v=hjscA88flCc windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v447/Hydrus.Network.447.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v447/Hydrus.Network.447.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v447/Hydrus.Network.447.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v447/Hydrus.Network.447.-.Linux.-.Executable.tar.gz I had a great week. The database should be a bit faster when doing file work, and I have fixed several annoying bugs. It will take your client a few seconds to update this week, maybe a minute or two if you have millions of files. multi column lists I gave the weird column widths another go. Some users had this fun but quite annoying situation where a dialog with a list could grow magically wider before their eyes, maybe 20 pixels four times a second, until it reached their monitor width. Other users (me included) had a handful of lists still growing or shrinking a few pixels on every reopen. So I drilled down into the logic again and improved things. Some calculations are now more accurate, some are more precise, and I think I fixed the runaway growth situation. Let me know how you get on, and sorry for the trouble! performance improvements Thanks to profile feedback from users, I discovered some file routines that were working inefficiently, particularly on very large clients. Mostly unusual jobs like 'get all the trashed files that are due for deletion' or 'get the repository update files I still need to process'. It was mostly when you were looking at a small domain when a very large 'my files' domain was right next door, getting in the way of the query. Having done lots of similar improvement work for tags, I updated how files are stored this week. Several big tables are now split into many smaller pieces that do not interfere with each other. This was actually a long overdue job, so I am happy it is done. There isn't much to say beyond 'your client should be a bit faster with files now', but let me know how you get on anyway. Mostly you should have fewer lag spikes as background jobs go about their work, but you may notice the duplicates system going a bit faster and general file searches working better too. Some users with very large sessions have also reported CPU lag with the new session saving system. Thanks again to some user profiles, I was able to speed up session save, particularly for pages with tens or hundreds of thousands of thumbails. The next step will be optimising downloader page save, so if you have a lot of heavy downloaders, I would be interested in some profiles. In that vein, I significantly improved the profile mode (help->debug->profile mode) this week. All the modes are now merged into one, and all the popup spam is gone. It now makes a new log file every time you turn it on, and only the most useful information is logged. I will keep working here to get more and more information profiled so we can nail down and eliminate slow code. I have altered core components of the database this week, and it unfortunately caused some bit rot in older update routines. 447 cannot update databases older than 411, and it may have trouble updating before 436. If either of these apply to you, the client will error out or warn you before continuing. I'd like to know what happens to you if you are v411-435 so I can refine these messages. And while I have tested this all back and forth, there may be a typo bug in some of the more unusual queries. I am sorry ahead of time if you run into any of these--send me the traceback and I'll fix them up. full list - misc: - fixed drag and dropping multiple newline separated urls onto the client when those urls come from a generic text source - pages now cache their 'ordered' file id list. this speeds up several little jobs, but most importantly should reduce session save time for sessions with tens of thousands of files - common file resolutions such as 1920x1080 are now replaced in labels with '1080p' strings as already used in the duplicate system. also added 'vertical' variants of 720p, 1080p, and 4k - when a page preview viewer gets a call to clear its current media when it is not currently the page in view, it now recognises that properly. this was happening (a 'sticky' preview) on drag and drops that navigated and terminated on other pages - the various 'retry ignored' commands on downloaders now give an interstitial dialog where you can choose to retry 'all', '404s', or 'blacklisted' files only - manage tag siblings/parents now disables its import button until its data is loaded. imports that were clicked through before loading were being forgotten due to tangled logic, so for now I'll just disable the button! - reduced some more spiky database I/O overhead from the UI's perspective (now savepoints are performed after a result is returned, just like I recently did with transaction commit) - duplicate potentials search will now update the y in its x/y progress display if many files have been imported since the search was started and x becomes larger than y (due to y secretly growing) - fixed the default 'gelbooru md5' file lookup script. if you have a lookup script with this name, it will be updated to my new default automatically. I don't really like fixing this old system, but I am not sure when I will fit in my big rewrite that will merge it with the normal downloader system, so this is a quick fix for the meantime - if you are one of the users who had weird unfixable 404 update file problems with the PTR, please try unpausing and doing a metadata resync one more time this week. fingers crossed, this is fixed. please let me know how you get on too, fixed or not, and also if you have had 'malformed' database problems in the past - . - multi column lists: - improved the precision of longer text pixel_width->text and text->pixel_width calculations, which are particularly used in the multi-column list state saving system. another multi-column size calculation bug, where lists could grow by 1 character's width on >~60 character width columns on every dialog reopen, is now fixed - multi-column lists should now calculate last column width more precisely and accurately regardless of vertical scrollbar presence or recent show/hide
[Expand Post]- the snapping system that locks last column size to 5-character multiples can now snap up or down, increasing error tolerance - I added a hack to stop the bug some people had of multi-column lists suddenly growing wide, up to screen width, in a resize loop. I think it works, but as I cannot reproduce this error, please let me know how you get on. resizing the options->external programs panel seems to initiate it reliably for those users affected - . - profile mode: - all debug profile modes (callto, db, server, menu, pubsub, and ui) are now merged into one mode under help->debug - this new mode no longer spams popups, and it only prints 'slow' jobs to the profile log - it also makes a new profile log every time it is turned on, using mode start timestamp rather than client boot timestamp, and when profile mode is turned off, there is a popup summary of how many fast and slow jobs passed through during the log time - touched up profile code, timing thresholds, summary statements, and the help
- special update rule this week: - due to the big file storage rework this week, there's some bit rot in older update routines. 447 cannot update databases older than 411, and it _may_ have trouble updating before 436. if this applies to you, the client will error out or warn you before continuing. I'd like to know what happens to you if you are v411-435 so I can refine these messages - . - boring database refactoring: - the primary current, deleted, pending, and petitioned files tables are now split according to service, much as I have done with mapping tables in the past. this saves a little space and accelerates many file calculations on large clients. if you have a client database script or patch that inspects 'current_files' or 'deleted_files', you'll now be looking at client_files_x etc.., where x is the service_id, and they obviously no longer have a service_id column - a new file storage database module manages these tables, and also some misc file deletion metadata - refactored all raw file storage updates, filters, and searches to the new module - the mappings and new file storage database modules are now responsible for various 'num files/mappings' metadata calculations - most file operations on smaller domains, typically trash or repository update files, will be significantly faster (since the much larger 'my files' table data isn't fattening the relevant indices, and worst case query planning is so much better) - cleaned up a ton of file domain filtering code as a result of all this - physical file deletion is now much faster when the client has many pending file uploads to a file repository or IPFS service - complicated duplicate file operations of many sorts should be a _little_ faster now, particularly on large clients - searching files with 'file import time' sort should be a little faster in many situations - tag repositories no longer bother going down to the database level to to see if they have any thumbnails to sync with - everyone also gets a local file id cache regen this week, it may take a few seconds on update next week Next week is a cleanup week. I would like to continue my long term database refactoring job, breaking the code into neater and saner pieces that will also support some neat future maintenance jobs. I also want to bring back the vacuum maintenance command with some new UI.
The manage tags window badly needs a way to filter the list of tags. What I mean is a textbox where you can enter a string and only tags that match that string are visible in the list. It would be so helpful as I often spend a lot of time scrolling up and down trying to find specific tags. Example use case (this happened): A downloader grabbed 2000 images from a specific artist and tagged both "filename:image" and "filename:image.jpg". I want to removed the tags with .jpg. I could open all the files in the manage tags window, filter by ".jpg" and delete them all very quickly. Currently I would have to spend 10 minutes manually selecting all the tags.
recently updated to the 447 version and getting this when I try to check my statistics (how boned am I) DBException ValueError: too many values to unpack (expected 2) Traceback (most recent call last): File "hydrus\core\HydrusThreading.py", line 401, in run callable( *args, **kwargs ) File "hydrus\client\gui\ClientGUIAsync.py", line 166, in _doWork result = self._work_callable() File "hydrus\client\gui\ClientGUI.py", line 2054, in work_callable boned_stats = HG.client_controller.Read( 'boned_stats' ) File "hydrus\core\HydrusController.py", line 649, in Read return self._Read( action, *args, **kwargs ) File "hydrus\core\HydrusController.py", line 201, in _Read result = self.db.Read( action, *args, **kwargs ) File "hydrus\core\HydrusDB.py", line 1099, in Read return job.GetResult() File "hydrus\core\HydrusData.py", line 1882, in GetResult raise e hydrus.core.HydrusExceptions.DBException: ValueError: too many values to unpack (expected 2) Database Traceback (most recent call last): File "hydrus\core\HydrusDB.py", line 727, in _ProcessJob result = self._Read( action, *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 15030, in _Read elif action == 'boned_stats': result = self._GetBonedStats( *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 8711, in _GetBonedStats ( table_join, predicates_string ) = self._DuplicatesGetPotentialDuplicatePairsTableJoinOnFileService( CC.COMBINED_LOCAL_FILE_SERVICE_KEY ) ValueError: too many values to unpack (expected 2) Database Traceback (most recent call last): File "hydrus\core\HydrusDB.py", line 727, in _ProcessJob result = self._Read( action, *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 15030, in _Read elif action == 'boned_stats': result = self._GetBonedStats( *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 8711, in _GetBonedStats ( table_join, predicates_string ) = self._DuplicatesGetPotentialDuplicatePairsTableJoinOnFileService( CC.COMBINED_LOCAL_FILE_SERVICE_KEY ) ValueError: too many values to unpack (expected 2) was working fine in 445 and haven't made any changes to my database running hydrus 447 on Windows 10
>>16296 >If you don't have any 'heavy' stuff but you are getting a three hour hang, then there is something else very wrong. I don't want to sound like I am fobbing my bad code off on another issue, but if you have a small client hanging, I'd check out if your hard drive was ok, just to be safe. Well, I was sorta in denial about it, but I am pretty sure there is in fact something very, very, very wrong with my hard drive. I already emailed you a brick of my profile logs a while back, and both those "work during normal time" (but it's not worded that way on my client) are already turned off. My client size is pretty large- since you recalculated session weight, virtually all my session weight does in fact come from "download queries"- my total session weight is 7.7m, with my "gallery downloader" page being responsible for 7.2m of that. I guess I could just shove it under a "page of pages" page again and start anew. But my main point was, I feel I did all this shit already, and my HDD is fucked up. As soon as I got it I checked its read/write speed + checked for any dead sectors via "HD Tune Pro", and have been periodically checking it since, since my HDD makes a scary noise every once in a while (but this has, again, never shown up on tests). But lately my HDD has been extremely slow, as in, renaming/ moving files sometimes takes minutes. My browser freezes, windows explorer freezes, my taskbar freezes, I can't do anything for several minutes at a time, randomly. Sometimes it unfreezes, but doing any action freezes it again, and this happens for a very long time. But the real eye opener was yesterday, when I tried installing a 20gb game via a game launcher. The first 30% was fast as fuck, then everything froze. I couldn't do anything, for hours. My ram usage was only 50% (32 gigs ram), but task manager showed programs using the page file as ram, for some reason. It slowly got to 60% finished installing over the next few hours, then it somehow froze even worse. An explorer window I tried to open literally didn't even finish opening for 6+ hours. The launcher at some point restarted itself, and everything was approaching usable again, but then it froze for literally another hour. Then it lagged a bit (minutes to perform every action), then eventually returned to normal. The game launcher had apparently finished 86% of the installation, despite the actual visual on my screen being 60% for the several hours my computer was frozen. This is just extremely wrong. The last time I checked my HDD health seems to've been 2021-04-09, which, again, didn't show any errors despite my paranoia. But this isn't normal, even ok, or usable. So I think realistically, simply because hydrus was writing data to this piece of shit (even potentially dying) HDD, it was facing issues. I don't know if my doing the profile logs again after reducing session weight will add any more information.
>>16318 >I don't know if my doing the profile logs again after reducing session weight will add any more information. I meant to say "any [new] information", as if to say, I don't know if going through this again will help in any way, since I'm now assuming my (potentially dying) HDD is the bottleneck and reason for of all of my problems.
>>16318 >>16319 Same guy who submitted these posts here- I just updated to latest (447) and it was booting, so, given my slow as shit hard drive I guess, it lags 30-60 minutes as I explained earlier in the conversation. Btw before restarting to update, I did put my "gallery downloader" page under a "page of pages" page, save it as a session, then close the page. My current session weight is 459,798 (down from 7.7m) But on boot- and it was still lagging as I described earlier in the conversation btw- I tried opening the "help" > "how boned am i?" thing, when an error occurred >>16317 never mind, i just scrolled up and saw this post. I was trying to provide context in case it wasn't opening that that triggered the error. But I'll post my error message too, anyway DBException ValueError: too many values to unpack (expected 2) Traceback (most recent call last): File "hydrus\core\HydrusThreading.py", line 401, in run callable( *args, **kwargs ) File "hydrus\client\gui\ClientGUIAsync.py", line 166, in _doWork result = self._work_callable() File "hydrus\client\gui\ClientGUI.py", line 2054, in work_callable boned_stats = HG.client_controller.Read( 'boned_stats' ) File "hydrus\core\HydrusController.py", line 649, in Read return self._Read( action, *args, **kwargs ) File "hydrus\core\HydrusController.py", line 201, in _Read result = self.db.Read( action, *args, **kwargs ) File "hydrus\core\HydrusDB.py", line 1099, in Read return job.GetResult() File "hydrus\core\HydrusData.py", line 1882, in GetResult raise e hydrus.core.HydrusExceptions.DBException: ValueError: too many values to unpack (expected 2) Database Traceback (most recent call last): File "hydrus\core\HydrusDB.py", line 727, in _ProcessJob result = self._Read( action, *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 15030, in _Read elif action == 'boned_stats': result = self._GetBonedStats( *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 8711, in _GetBonedStats ( table_join, predicates_string ) = self._DuplicatesGetPotentialDuplicatePairsTableJoinOnFileService( CC.COMBINED_LOCAL_FILE_SERVICE_KEY ) ValueError: too many values to unpack (expected 2) Database Traceback (most recent call last): File "hydrus\core\HydrusDB.py", line 727, in _ProcessJob result = self._Read( action, *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 15030, in _Read elif action == 'boned_stats': result = self._GetBonedStats( *args, **kwargs ) File "hydrus\client\db\ClientDB.py", line 8711, in _GetBonedStats ( table_join, predicates_string ) = self._DuplicatesGetPotentialDuplicatePairsTableJoinOnFileService( CC.COMBINED_LOCAL_FILE_SERVICE_KEY ) ValueError: too many values to unpack (expected 2)
>>16318 Do you by any chance have an SMR drive? If it is a large drive (>2TB), you might. SMR drives can be very slow (like 2MB/s) if filled completely. Since such a slow drive would be unusable, usually a smaller part of the drive is conventionally writable (CMR), so all your data lands there first - just as quick as a normal drive. Then, when you are not using the drive, it will (by itself) take that data from the fast partition and write it to the slow (and large) one. If that fast partition ever gets full (because you are writing lots of data to it), the drive will need to write directly to the slow storage area. This can be usually noticed by the drive becoming unresponsive for a couple of minutes (in very bad cases). Obviously, SMR drives are terrible for databases, since DBs do lots of tiny random writes, but are "good enough" (cheap) for large stuff that you only write once (e.g. backups or media storage). I noticed some issues with SMR drives and my own sqlite3-databases, but noone in customer support could tell me what was wrong. I just figured it out eventually that writing 20GB to a drive will take it offline for a couple of minutes. I use SMR drives as media storage for hydrus, no issues so far.
>>16321 Also, sector size. Drives store data internally in blocks of 4096 (very old drives 512) bytes, so if you just want to flip a single bit, the drive needs to write 4096 bytes again. Multiply that by every single write action in sqlite (adding a hash, marking as downloaded, adding tags, ...) and you probably have the reason for your issues. SMR drives *hate* random writes. My assumption is that your write cache is 100GB (107,374,127,424 bytes) at best, that means about 52.428.773 (107,374,127,424 / 2048) database actions. That might sound like a lot, but keep in mind that an sqlite3 database is quite a complex file. Data will be written at least twice - once in the write ahead log, and once in the actual database. That safety feature alone reduces us to only 26.214.386 operations (that must be no larger than 2048 bytes) before the drive needs to flush the cache. Next, data in an sqlite3-database will need to be stored in multiple places. Every piece of data will need to be added to the appropriate table and all indices of that table - if the database is NOT fragmented in any way - a VACUUM operation would clean this fragmentation. Assuming every column in the database has at least one index that needs to be updated on writes (just guessing here!), that leaves us with 13.107.193 operations. Again, every inserted hash, updated page, URL, tag, whatever, counts as at least one single operation. And with 13.107.193, your drive is gone for a very long time (a couple of minutes). And as soon as it comes back, it is once again bombarded with write requests. Maybe you should try to just let your drive do it's thing for a while. If it works for a little while afterwards, you know where the problem lies. Mind you, these are just some really dirty calculations, I am by no means an expert in either drives or sqlite databases, so take this with a grain of salt!
(69.40 KB 537x637 23253.png)

(93.77 KB 527x579 204910.png)

>>16320 >help/how boned am I? Same error here. The OS is Linux in a Debian 10 Stable distro. >The error: DBException ValueError: too many values to unpack (expected 2) Traceback (most recent call last): File "hydrus/core/HydrusThreading.py", line 401, in run callable( *args, **kwargs ) File "hydrus/client/gui/ClientGUIAsync.py", line 166, in _doWork result = self._work_callable() File "hydrus/client/gui/ClientGUI.py", line 2054, in work_callable boned_stats = HG.client_controller.Read( 'boned_stats' ) File "hydrus/core/HydrusController.py", line 649, in Read return self._Read( action, *args, **kwargs ) File "hydrus/core/HydrusController.py", line 201, in _Read result = self.db.Read( action, *args, **kwargs ) File "hydrus/core/HydrusDB.py", line 1099, in Read return job.GetResult() File "hydrus/core/HydrusData.py", line 1882, in GetResult raise e hydrus.core.HydrusExceptions.DBException: ValueError: too many values to unpack (expected 2) Database Traceback (most recent call last): File "hydrus/core/HydrusDB.py", line 727, in _ProcessJob result = self._Read( action, *args, **kwargs ) File "hydrus/client/db/ClientDB.py", line 15030, in _Read elif action == 'boned_stats': result = self._GetBonedStats( *args, **kwargs ) File "hydrus/client/db/ClientDB.py", line 8711, in _GetBonedStats ( table_join, predicates_string ) = self._DuplicatesGetPotentialDuplicatePairsTableJoinOnFileService( CC.COMBINED_LOCAL_FILE_SERVICE_KEY ) ValueError: too many values to unpack (expected 2) Database Traceback (most recent call last): File "hydrus/core/HydrusDB.py", line 727, in _ProcessJob result = self._Read( action, *args, **kwargs ) File "hydrus/client/db/ClientDB.py", line 15030, in _Read elif action == 'boned_stats': result = self._GetBonedStats( *args, **kwargs ) File "hydrus/client/db/ClientDB.py", line 8711, in _GetBonedStats ( table_join, predicates_string ) = self._DuplicatesGetPotentialDuplicatePairsTableJoinOnFileService( CC.COMBINED_LOCAL_FILE_SERVICE_KEY ) ValueError: too many values to unpack (expected 2)
In the duplicate filter, there is always this flash to black as you switch from image A to image B for the first time, after that it's seamless. Can you not pre-load image B so that this flash doesn't happen? It's a bit uncomfortable to the eyes.
(67.82 KB 609x697 0.png)

(55.41 KB 609x697 1.png)

(37.30 KB 609x697 2.png)

(97.39 KB 973x1050 3.png)

(97.78 KB 973x1050 4.png)

>>16321 >>16322 Wow! Thank you for the high-effort reply, anon. I've complained about this before in exactly the same way, but no one has ever made the conversation reach this before. I really I don't know what type of drive I have, but it is a 2TB drive, and it is essentially filled completely. It's also a laptop hard drive, if it matters. I was always paranoid this hard drive was failing ever since I got it, but it's nice to know that these speeds and these issues can be explained based on the type of hard drive it is. Cheers.
>>16325 STFU
(72.98 KB 1310x813 5.png)

>>16325 I meant to post this image as well. >>16326 You mean cause of many images in one post? Sorry I guess.
>>16325 SMR should not have any impact on read speed, only write. I can't find anything about that disk. I wouldn't recommend running any database on a HDD at all (CMR or SMR), because they are very bad at databases in general, since they need to physically move their head all over the disk, they can only do so many operations per second. I don't know about NTFS, but usually file systems will have real issues when they are filled like this, as it will lead to lots of disk fragmentation. As far as I understand, when you write a file to disk, the filesystem will keep a small amount of disk space behind that file free, so if you make it slightly bigger, it can just append that data there. When the disk is so full, it stops doing that, causing lots of fragmentation issues (your appended data lands somewhere far away from the original file and if you want to read it, the FS needs to get the parts from all over the disk). But, seeing as you have windows installed on there too, if it is an SMR drive, it makes sense that everything is failing at seemingly random intervals. So, sorry, but in my opinion, if you have those kinds of issues, you probably need to have more disk space available or get an SSD - Perferrably both. Keep in mind that SSDs have a limited number of writes before they die (you can easily check that), so it's up to you if you are fine with getting a new SSD every couple of years, or getting a CMR disk. Also, SSDs have their own issues with space allocation, so letting them get full actually decreases their lifetime even further. It really seems like there is no good solution without spending some money. Either for a 2-4TB SSD (wasted money, since you can store your files on the HDD), or on a desktop where you can have more than one drive. Keep in mind that this is all just (more or less uninformed) guesswork. Maybe get a cheap SSD first, attach it via USB and see if your issues go away, before going all out on a desktop. Just make sure that it can actually handle a lot of write bandwidth, some cheap SSDs are missing some sort of cache stuff (no idea about it, sorry), so you get fast reads, but shitty writes. >>16326 Either contribute, say what is wrong or hide the post and fuck off.
>>16328 Thanks again for the patient insight, anon. I originally went for this 2TB 5400 RPM HDD to poorfag it up, and because the 5TB laptop HDD I could buy couldn't fit in my laptop- this was the highest option unless I went for an SSD. My hydrus database is still only on this one hard drive; the second hard drive is just files otherwise, even though I somehow managed to fill that drive as well. At best I can replace my 1TB second HDD with a 2TB one, but that's the ceiling unless I start using SSDs on this laptop. I can't really say I'd be "fine" with getting a new SSD "every couple of years", plus with hearing that filling them reduces their lifespan further, this whole thing seems like hell, even though SSDs seem ideal anyway. I guess I'll just hope to get rich one day so approaching a filled SSD + managing costs doesn't matter. Thanks again for the insight. I've bitched about this habitually probably every time I ran "HD Tune Pro" to check the hard drive health every few months, and this was, again, the first time anyone ever brought up this being predictable behavior. Also, I tried running HD Tune Pro again, but to check for write speeds this time, but it says i need to remove all partitions. Which may be impossible, because I veracrypt-encrypted the entire drive. Either way, the hard drive health doesn't appear poor in any way on tests, so I doubt there'd be anything noteworthy to look at.
>>16329 Well, that sucks to hear. The fact that you use a laptop just makes this so bad. Depending on how much you are planning on writing to it, an SSD can last you a couple of years, but I'd say after about 5 years you should plan to get a new one. You are using veracrypt too, so unless you want to compromise your plausible deniability, your SSD may always be considered "completely full" and write itself to death in the long term. More here: https://veracrypt.eu/en/docs/trim-operation/ and https://www.crucial.com/articles/about-ssd/what-is-trim If you can get your hands on a desktop, I strongly recommend taking it, adding a 120/240 GB SSD and your two storage disks and be done with it for a couple of years. You might check if your laptop has an m.2 slot, if it does, you can stick a (small and reasonably priced) SSD in there to offload the OS and hydrus DB from your slow HDDs. Or, you get a small external SSD for it, that shouldn't cost a fortune and maybe it helps. And if it doesn't work, you can send it back. Please check with benchmarks on the write-performance of those drives before buying!
>>16330 I have a W530 https://www.thinkwiki.org/wiki/Category:W530 I don't think it supports m.2. I didn't bother with "plausible deniability" when it comes to veracrypt, partly because I don't think it would be believable at all in my case, but also partly because of the ol' "rubber hose" strat of getting people to give up their passwords (or with "plausible deniability", even admit there is a password at all). I just 0 iq encrypted the whole drive, so on boot it barefaced displays veracrypt and asks for a password. >Or, you get a small external SSD for it, that shouldn't cost a fortune and maybe it helps. And if it doesn't work, you can send it back. I don't know if I can be arsed, even without considering budget. I actually have never used my laptop in a portable manner (absolutely terrified of as much, due to 3TB of data on spinning disks in this thing), but an external SSD seems too much. If I'm not just upgrading the storage to an SSD, I feel I should do what you recommended and get a 120/240GB SSD to go with my HDDs on a desktop. >Please check with benchmarks on the write-performance of those drives before buying! I saw you warn as much before, but I didn't acknowledge it directly. Thanks for looking out, anon. Cheers.
>>16331 I'm just dropping in on this convo so sorry if I'm missing something. With a W530 you have many options for additional storage. If you aren't already using it you can put your spinning drive in the optical disc bay and use a normal sata ssd in the main drive slot for OS and Hydrus DB. But I think you might already be using both of those slots so your other options are the MiniPCI Express slot of which you have two, one is used by the wifi card and the other may be used for WWAN but if you don't need that (likely) you can put a mSATA SSD there. Finally if that doesn't work there are some SSDs available for the ExpressCard/34 slot but they seem to be expensive.
>>16332 Thanks, anon. Yeah, sorry, I'm an uneducated virgin when it comes to my laptop- all I knew was that I'm really lucky to have it, and it was the last model that can fit the old non-chiclet keyboard. I didn't know any of this, so I'm definitely taking note. Sorry for my profound ignorance on what I have. I am using the main hard drive slot + optical disk bay for now. Also I know I can get a dock for it, which adds some stuff I didn't look into. Budget isn't necessarily an issue for me- it's just that I was so crippled by my HDD write speeds that I felt it was unreasonable to continue operating under these conditions any further. At least now I know I have the freedom to escape it, without even moving my HDDs around, if I so chose. Cheers.
>>16312 Yeah, results only autocomplete if they have count >0. Once any file has the tag (or any of the others that cause it via sibling or parent relationships), and thus there is a positive count, it will fill in. If it has 0 count but you type the tag exactly in a 'write' context like the manage tags dialog, then hydrus will notice that what you entered has sibling or parent relationships, and the countless result for 'what you typed' that you get at the top of the list will have sibling and parent decoration. >>16313 Thanks. This seems to be the issue--recovering from a client.master.db that has holes, and dealing with a local hash cache desync. It just happened to appear in this odd way during PTR sync. I'll improve the code here and add notes to my 'recover from drive failure' help to run a cache regen. >>16316 Thank you. I think this makes a lot of sense. I'll queue up a job to plan and do this correctly. It will actually be easier for me to add it to all tag lists rather than just a specific one, so I'll figure out a button or right-click menu or something to pop out the filter input. >>16317 >>16320 >>16323 I knew I'd typo somewhere with all these file status changes, thankfully it was in this. I'll have it fixed for 448, thank you for the reports.
>>16318 >>16319 >>16320 I am sorry to hear about this. I've been in this situation myself. I don't need any profiles now. Make sure you get all your data backed up and your hardware sorted. I hope it gets all worked out! >>16324 Hmm, I do preload the first half of the rendering pipeline, but only according to some rules. Is there any chance these images are a bit larger than 4k resolution? The current options are 'image cache' under options->speed and memory. If a file fits within the % sizes in there, I render it at 100% in memory before you see it. The second half, where it is rendered to zoom in the new tile system, is not precached. The tile renderer is new and I am still letting it shake itself out. I appreciate your feedback, since is sounds like it would be useful to try to pre-render tiles. Can you give me just a brief overview of the typical files that give you a short first-time draw delay? Are they fairly big, or is this common to all files, even small ones? Also, is your media viewer background colour black, or is this a square of black on a different background? I think it is supposed to draw the canvas background colour while it is waiting to render tiles, but perhaps your situation it is working different.
>>16335 I'm the first guy you quoted here, and I had a long conversation following that actually diagnosed it as conceivably being expected behavior for a healthy but nearly full drive. I checked my hard drive health with "HD Tune Pro" again and it didn't show any problems, as always. So the 12 hour downtime when I tried to install a game was still extremely shitty, but at least it appears that it doesn't mean my HDD is dying.
I see that Hydrus keeps track of tags that were added to a file but later deleted from that file. It doesn't seem to do anything to stop you (or even warn you) from adding those tags again manually though. Does it stop the tags from being automatically readded by downloaders and subscriptions and things like that?
(115.88 KB 598x593 unknown.png)

>>16337 >Does it stop the tags from being automatically readded by downloaders and subscriptions and things like that? Yes, by default.
>>16335 >Hmm, I do preload the first half of the rendering pipeline... Since I have 32GB of RAM I have upped the image cache size to 4GB, so with my settings it says it will cache images above ~15000x15000, and most of my images are below 4000x4000, so that's not the issue. It happens in the duplicate filter whenever a new image is loaded, the background (yes my background is black there is no square) is shown for a flash until the image is loaded and displayed. It happens when I switch to the next pair, or I switch from image A to image B, if the image hasn't been cached in memory already. If it has been cached there is no flash. The length of the flash just depends on how long it takes to load the image, even small jpegs often produce a quick flash, and big images (like 6000x6000 PNGs) up to half a second I'd guess. It would be nice if when I switched to a new pair, after image A is loaded, hydrus in the background pre-loads image B, then image A in the next pair. It's just when you sit and go through a lot of duplicates this loading flash becomes a bit hard on the eyes, so it would be nice if it could be avoided.
Could you make it so that ctrl+click-ing to add a file to the current selection displays it in the preview frame as if you just normally clicked on it. That happens with the first file selected when you ctrl+click but after that it just stays on that first file. This would be useful for checking the preview to make sure you're adding the correct file to the selection.
when you edit one of those custom deletion reasons that you can enable in the settings, does it retroactively adjust the deletion reason for every file that was deleted with that reason before you edited it, or does the change only get applied to files deleted afterwards?
Second question real quick. Is there a way to export tag parents and siblings from the PTR to "my tags", but only for tags that are used in "my files"? I don't want to migrate thousands of tag relationships that I'll probably never even see because I don't (and might not ever) have files that use those tags anyway.
This week was mostly just some code refactoring and optimisiation, and I've now come down with something, so I will not put out a release tomorrow. I'll take the extra time to rest a bit and get other work done. 448 will therefore be on the 28th. I'll focus on Client API improvements. Thanks everyone!
>>16343 Thanks for the great work!
Hydrus won't start and I'd like to get it running ASAP. I'm using linux mint though I'm borderline tech illiterate. Traceback (most recent call last):; File "/home/anon/Desktop/hydrus network Linux/hydrus/hydrus_server.py", line 20, in <module>; from hydrus.core import HydrusBoot[code] [code]File "/home/anon/Desktop/hydrus network Linux/hydrus/core/HydrusBoot.py", line 3, in <module>; from hydrus.core import HydrusConstants as HC; File "/home/anon/Desktop/hydrus network Linux/hydrus/core/HydrusConstants.py", line 77, in <module>; import yaml; ImportError: No module named 'yaml'; yaml is a file type right? Or is there supposed to be a .py file titled yaml? I've tried using wine, but I get an error about the program not being supported "in this version of windows."
>>16345 >I've tried using wine Let me get this straight. You are trying to run a Windoze version in Linux with Wine. Right? Why you are not using the native Linux version?
>>16346 >reading comprehension He couldn't get the Linux version to run, so he tried the Windows version with WINE. >>16345 I think this is a dependency problem. You'll need python's yaml module installed. I think that on Linux Mint it's called python-yaml in the package manager.
>>16345 >Hydrus won't start and I'd like to get it running ASAP. I'm using linux mint though I'm borderline tech illiterate. Sorry, I didn't read your illiteracy. 1- Download https://github.com/hydrusnetwork/hydrus/releases/download/v447/Hydrus.Network.447.-.Linux.-.Executable.tar.gz 2- Decompress/extract it to your Desktop, for example. 3- You will get a folder called "Hydrus Network" 4- Go inside that folder and find the file "client" 5- Double click on it and Hydrus will boot.
>>16347 Just got back. I ended up installing pip in order to install PyYAML (which is fortunate because I might have needed that anyway), but now I'm seeing a new problem: import: not authorized `yaml' @ error/constitute.c/WriteImage/1028.; This is the message I get when I try to import yaml in terminal. I have yaml installed, but it looks to me something on my end is restricting it >>16348 Thank you pony, You are my greatest ally.
>>16349 Did you run pip as root when you installed PyYAML? I'm not an expert, but if you didn't you could try installing with 'sudo pip' and trying again.
>>16339 Thank you, this is very helpful. It looks like I need to precache the zoom rendering. I had considered delaying the media transition until the render is done, but this would make things feel laggy, make navigation across big images difficult or impossible, adds its own code complexities. I'll make the media viewer predict initial zoom of neighbours accurately and tell the tiled renderer to prep those tiles. Overall, I am glad the new system is working at what it does. As you say, once the tiles are cached, transitions are instant. I'm ready to iterate again. Now I think of it, I wonder if I can mitigate this black frame if I put some crappy tiles in place instantly. A bit like how big jpegs will load in your browser sometimes. I can probably generate a really shit image in <16ms and then replace it with nice tiles as they arrive, and then there would be no black frame at all. Worst case, if those crappy tiles were complex, would be a couple frames lag on the media transition. I don't know when I will fit this in, but it is core experience, so I'll try and prioritise it.
>>16340 Thanks. One long-delayed job I have is to move the thumbnail mouse actions to the new shortcut system. Keyboard shortcuts are, mouse is not yet. When I do that, I will make sure to have two 'add/remove single file to selection' actions--one that focuses, and one that does not! >>16341 No it does not. No way to do that yet. If you feel brave, you can do it manually in the database files: MAKE A BACKUP BEFORE YOU TRY THIS (run the sqlite3 executable in the db directory, then enter:) .open client.master.db select text_id, text from texts; (find your reason's text_id, let's call it 1234) update texts set text = "this file was bad" where text_id = 1234; .exit You can also use a GUI program like SQLiteStudio. Just make sure you make a backup beforehand! If it all goes wrong, roll back. You'll also have to update your options to match that text string. And this won't work if the 'this file was bad' has already been added to a file. If you need to merge multiple reasons, you would be looking at updating the reason_id in client.db's local_file_deletion_reasons. Get your relevant text_ids from master and do something like: update local_file_deletion_reasons set text_id = 1234 where text_id = 987; You may want to set up a repeatable test import that you know will fail with the deletion reason you want, so you can test that this gives the new correct reason.
>>16342 I had a think, but I'm afraid I don't think there is. I don't have a file filter for sibling/parent migration under tags->migrate tags. You can filter by namespace--getting all unnamespaced to character tags (e.g. samus aran->character:samus aran), but not by files. Since siblings and parents have no inherent file relationship, it would not be super simple to add a file filter. I will think about it though. Don't be super worried about performance--having lots of siblings and parents isn't terrible on the database, and it is useful for future files and their tags. The main drawback is trying to manage them all in the current UI. It loads slow and a bigass list is a pain in the neck to manage. I think my recommendation for now is to wait a bit. I expect to have very complicated tag filter support coming before the end of the year. Maybe I'll have a system where you can export all current tags in a file domain to a tag filter, which you could then save and reload in the migrate siblings/parents interface. Please keep reminding me so I don't forget this. Better en masse sibling and parent control is something I want to support.
>>16345 Hey, if you would like to run hydrus from source, there are a bunch of packages you'll need. Yaml is one. It is easiest to figure this all out if you make something called a 'venv' (virtual environment) and not try to pip to your system python. Please check out my 'running from source' guide here: https://hydrusnetwork.github.io/hydrus/help/running_from_source.html Make the venv, activate it, and then use pip to install everything from the requirements_ubuntu.txt Let me know if you have any more trouble.
I'm using the AUR package and video thumbnails don't work, and the client keeps bugging me that mpv isn't available. Both mpv and python-mpv are installed.
>>16355 nevermind, I just had to rebuild python-mpv
can someone please make a tiktok downloader so I can scrape channels into Hydrus?
please move the notifications area (where you can arrow down or dismiss all. it covers up tabs when tabs are placed on the bottom.
Is anyone or a maintainer able to change the ideal tag of character:bonbibonkers to an ideal tag of person:bonbibonkers. (which is more proper). For some reason I can't get it to change over it's giving me loop issues not sure why.
>>16359 also i'm encountering an error with the instagram downloader when trying to grab her instagram honey_cot it is stating: Page Parser instagram user gallery api parser: Content Parser first page next gallery page url: Unable to parse that JSON: Expecting value: line 1 column 1 (char 0). JSON sample:...
>>16354 >navigate to your hydrus extract folder in a terminal It's obvious this is supposed to be a very easy and basic step, but I don't know what that means or how I'd do that. Is there a specific command that can help me do this? So I really didn't want to just get stonewalled there (more or less my pride), so I skipped that to try and see if the rest of the commands would work. The fourth command gives me this: Anonusername ~ $ virtualenv --python=python3 venv; Traceback (most recent call last):; File "/home/anon/.local/bin/virtualenv", line 7, in <module>; from virtualenv.__main__ import run_with_catch; File "/home/anon/.local/lib/python3.5/site-packages/virtualenv/__init__.py", line 3, in <module>; from .run import cli_run, session_via_cli; File "/home/anon/.local/lib/python3.5/site-packages/virtualenv/run/__init__.py", line 7, in <module>; from ..app_data import make_app_data; File "/home/anon/.local/lib/python3.5/site-packages/virtualenv/app_data/__init__.py", line 9, in <module>; from platformdirs import user_data_dir; File "/home/anon/.local/lib/python3.5/site-packages/platformdirs/__init__.py", line 27; result: Type[PlatformDirsABC] = getattr(importlib.import_module(module), name); ^; SyntaxError: invalid syntax; If I really can't get this figured out, I'd like to ask a favor of you guys. Could someone scrape everything from ourobooru? Just in case the website is in jeapardy. Issues with their captcha flat out disabled image posting for days, and you currently can't edit tags or even make a new booru. The site in question: https://ourobooru.booru.org/index.php.
(64.84 KB 445x488 1443747838487-2.jpg)

>>16361 Disregard that first part. I found out how.
can we get rsync support for downloaders for sites like kemono.party because some isp's like verizon are blocking ddosguard now which causes issues with kemono? negates the need to use a vpn.
>>16363 the ability to connect to use onion addresses too would be nice
The hard drive containing all of the actual files and some of the thumbnails has died. I had the DB and the application on a SSD, so all my custom mappings and tags should be fine. I'm getting the "you moved the files" screen on startup, but I don't see a way to tell hydrus that they're gone and not coming back. Is there a way to keep the tags and settings and import configs, discard the files, and then just reimport them over the next few weeks?
I had a good week. I built on last week's database cleanup and optimisation to add a mix of different items: a couple of new Client API commands, .wav file support, thumbnails for simple PSD files, and a bunch of different bug fixes. The release should be as normal tomorrow.
>>16365 Disregard, got help from the Discord. Solution was to create empty folders with the expected names from the log.
>multiple different images had the same url listed as their source on a booru >hydrus only downloaded the first one and assumed the others were the same image because they had matching urls how do i fix this? i thought removing the known urls and redownloading would work but now hydrus says it recognizes the hash.
>>16349 Why are you even importing yaml in terminal? >>16350 You shouldn't sudo pip.
>>16363 >rsync downloader for kemono.party Details? I haven't heard of using rsync with kemono. >>16364 You can do this already if you set the http proxy to use Tor. You'll have to turn it off manually if you use other sites that don't use https for some reason. >>16368 There should be a tick box in file import options to import a file even if the URL and/or hash is recognized.
(19.59 KB 439x439 Capture.PNG)

>>16370 >There should be a tick box in file import options to import a file even if the URL and/or hash is recognized. i don't see such a thing. i'm on version 445. unchecking "exclude previously deleted files" doesn't work.
>>16371 Shit, sorry, those options are dangerous and have been used wrongly before. Hit up help->advanced mode to see them.
https://www.youtube.com/watch?v=VEwVAV3VPw4 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v448/Hydrus.Network.448.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v448/Hydrus.Network.448.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v448/Hydrus.Network.448.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v448/Hydrus.Network.448.-.Linux.-.Executable.tar.gz I had an ok couple of weeks. I was pretty ill in the middle, but I got some good work done overall. .wav files are now supported, PSD files get thumbnails, vacuum returns, and the Client API allows much cleverer search. client api I have added some features to the Client API. It was more complicated than I expected, so I couldn't get everything I wanted done, but I think this is a decent step forward. First off, the main 'search for files' routine now supports many system predicates. This is thanks to a user who wrote a great system predicate text parser a long time ago. I regret I am only catching up with his work now, since it works great. I expect to roll it into normal autocomplete typing as well--letting you type 'system:width<500' and actually getting the full predicate object in the results list to select. If you are working with the Client API, please check out the extended help here: https://hydrusnetwork.github.io/hydrus/help/client_api.html#get_files_search_files There's a giant list of the current supported inputs. You'll just be submitting system predicates as text, and it handles the rest. Please note that this is a complicated system, and while I have plenty of unit tests and so on, if you discover predicates that should parse but are giving errors or any other jank behaviour, please let me know! Next step here is to add file sort and file/tag domain. Next there's a routine that lets you add files to arbitrary pages, just like a thumbnail drag and drop: https://hydrusnetwork.github.io/hydrus/help/client_api.html#manage_pages_add_files This is limited to currently open pages for now, but I will add a command to create an empty file page so you can implement an external file importer page. misc .wav files are now supported! They should work fine in mpv as well. Simple PSD files now get thumbnails! It turns out FFMPEG can figure this out as long as the PSD isn't too complicated, so I've done it like for .swf files--if it works, the PSD gets a nice thumbnail, and if it doesn't it gets the file default icon stretched to the correct ratio. When you update, all existing PSDs will be queued for a thumbnail regen, so they should sort themselves out in the background. Thanks to profiles users sent in, I optimised some database code. Repository processing and large file deletes should be a little faster. I had a good look at some slow session save profiles--having hundreds of thousands of URLs in downloader pages currently eats a ton of CPU during session autosave--but the solution will require two rounds of significant work. Database vacuum returns as a manual job. I disabled this a month or so ago as it was always a rude sledgehammer that never actually achieved all that much. Now there is some UI under database->db maintenance->review vacuum data that shows each database file separately with their current free space (i.e. what a vacuum will recover), whether it looks like you have enough space to vacuum, an estimate of vacuum time, and then the option to vacuum on a per file basis. If you recently deleted the PTR, please check it out, as you may be able to recover a whole ton of disk space. I fixed Mr Bones! I knew I'd typo somewhere with the file service rewrite two weeks ago, and he got it. I hadn't realised how popular he was, so I've added him to my weekly test suite--it shouldn't happen again. full list - client api: - /get_files/search_files now supports most system predicates! simply submit normal system predicate text in your taglist (check the expanded api help for a list of what is supported now) and they should be converted to proper system preds automatically. anything that doesn't parse will give 400 response. this is thanks to a user that submitted a system predicate parser a long time ago and which I did not catch up on until now. with this framework established, in future I will be able to add more predicate types and allow this parsing in normal autocomplete typing (issue #351) - this is a complicated system with many possible inputs and outputs! I have tried to convert all the object types over and fill out unit tests, but there are likely some typos or bad error handling for some unusual predicates. let me know what problems you run into, and I'll fix it up!
[Expand Post]- the old system_inbox and system_archive parameters on /get_files/search_files are now obselete. they still work, but I recommend you just use tags now. I'll deprecate them fully in future - /get_files/search_files now disables the implicit system limit that most clients apply to all searches (by default, 10,000), so if you ask for a million files, you'll (eventually) get it - a new call /manage_pages/add_files now allows you to add files to any media page, just like a file drag and drop - in the /get_files/file_metadata call, the tag lists in the different 'statuses' Objects are now human-sorted - added a link to https://github.com/floogulinc/hyextract to the client api help. this lets you extract from imported archives and reimport with tags and URLs - the client api is now ok if you POST with a utf-8 charset content-type "application/json;charset=utf-8" - the client api now tests the types of items within list parameters (e.g. file_ids should be a list of _integers_), raising an appropriate exception if they are incorrect - client api version is now 18 - . - misc: - hydrus now supports wave (.wav) audio files! they play in mpv fine too - simple psd files now have thumbnails! complicated ones will get a stretched version of the old default psd filetype thumbnail, much like how flash works. all your psd files are queued up for thumbnail regen on update, so they should figure themselves out in the background. this is thanks to ffmpeg, which it turns out can handle simple psds! - vacuum returns as a manual operation. there's some new gui under _database->db maintenance->review vacuum data_. it talks about vacuum, shows current free space for each file, gives an estimate of how long vacuum will take, and allows you to launch vacuum on particular files - the 'maintenance and processing' option that checks CPU usage for 'system busy' status now lets you choose how many CPU cores must exceed the % value (previously, one core exceeding the value would cause 'busy'). maybe 4 > 25% is more useful than 1 > 50% in some situations? - removed the warning when updating from v411-v436. user reports and more study suggest this range was most likely ok in the end! - double-clicking the autocomplete tag list, or the current/pending/etc.. buttons, should now restore keyboard focus back to the text input afterwards, in float mode or not - the thumbnail 'remote services' menu, if you have file repositories or ipfs services, now appears on the top level, just below 'manage' - the file maintenance menu is shuffled up the 'database' menubar menu - fixed mr bones! I knew I was going to make a file status typo in 447, and he got it
- in the downloader system, if a download object has any hashes, it now no longer consults urls for pre-import predictions. this saves a little time looking up urls and ensures that the logically stronger hashes take precedence over urls in all cases (previously, they only took precedence when a non-'looks new' status was found) - fixed an ugly bug in manage tag siblings/parents where tags imported from clipboard or .txt were not being cleaned, so all sorts of garbage with capital letters or leading spaces could be entered. all pairs are now cleaned, and anything invalid skipped over - the manage tag filter dialog now cleans all imported tag rules when using the 'import' button (issue #768) - the manage tag filter dialog now allows you to export the current tag filter with the export button - fixed the 'edit json parse rule' dialog layout so if you transition from a short display to a string match that has complicated controls, it should now expand properly to show them all - I think I fixed an odd bug where when uploading pending mappings while more mappings were being added, the x/y progress could accurately but unhelpfully continually reset to 0/y, with an ever-decreasing y until it was equal to the value it had at start. y should now always grow - hydrus servers now put their server header on a second header 'Hydrus-Server', which should allow them to be properly detectable through a proxy that overrides 'Server' - optimised a critical call in the tag mappings update database routine. for a service with many siblings and parents, I estimate repository processing is 2-7% faster - optimised the 'add/delete file' database routines in multiple ways, particularly when the file(s) have many deleted tags, and for the local file services, and when the client has multiple tag services - brushed up a couple of system predicate texts--things like num_pixels to 'number of pixels' - . - boring database refactoring: - repository update file tracking and service id normalisation is now pulled out to a new 'repositories' database module - file maintenance tracking and database-level file info updates is now pulled out to a new 'files maintenance' database module - analyse and vacuum tracking and information generation is now pulled out to a new 'db maintenance' database module - moved more commands to the 'similar files' module - the 'metadata regeneration' file maintenance job is now a little faster to save back to the database - cleared out some defunct/bad database code related to these two modules - misc code cleanup, particularly around the stuff I optimised this week next week Next week is a 'medium job' week. To clear out some long time legacy issues, I want to figure out an efficient way to reset and re-do repository processing just for siblings and parents. If that goes well, I'll put some more time into the Client API.
>>16372 That did it. Thank you!
Did the latest release (448) break downloading from pixiv? I added 3 queries to my "gallery downloader" page 15 minutes ago, and none of them have downloaded a single file yet. Otherwise the latest query I added was 14 hours ago, which completed without issue on version 447.
>>16376 Actually, my pixiv subscriptions are fetching images just fine- it's only the "gallery downloader" page that is permanently stuck on "pending". I guess I will just add them as a temporary subscription for this release? Please fix
Is saving window layout per-tab on the todo list? I prefer making my download pages just show the downloader, with the thumbnails on the right and the preview window completely removed. Then, on the pages which I use to search, the search is small with the other two parts large. Right now, when I start Hydrus, all pages become the same layout. It's slightly annoying having to resize every part of the tabs I want to use each time I restart.
>>16378 Honestly I like the current way it works, where all pages assume the format of the first page. I hope I can keep it this way, even if you gain the freedom to save your different page formats in some way.
>>16359 bump maintainerkun
>>16377 After posting this I restarted my client, and it managed to actually completely finish downloading 137 images from a pixiv that wasn't in my client before. But the other two are still "pending/working" with 0 images downloaded many hours later. I am the same guy who's been throughout the thread, with the vertical black bar on previous versions, lag on boot always, etc. etc
(11.96 KB 487x191 Untitled.png)

>>16381 I really don't know what to make of this, but it appears to be working- I just have to re-add the queries after the program has been open for many hours, otherwise they will never download a single image, except when they do before the client has finished booting.
Trying to download all images from a twitter account but Nitter gallery download will only let me download a few (less than a thousand) of them even though there are a lot more. Anyone else had this issue?
>>16373 does hydrus verify integrity of data/db in the hydrus backup dir?
Is there an option to collapse namespaces in the tag view panel? This is literally the only thing left that I need for my organizational purposes since the tag view becomes so cluttered with creator and character tags. If there isn't a collapse feature, is there an option to allow me to hide certain namespaces in the tag view panel?
(8.46 KB 666x319 files.png)

>>16385 You probably mean something else but are you talking about this? Because if so uncheck "Show parents expanded by default on edit/write taglists" in options>tags
>>16386 This is nice too but I'd like something where each category of namespace is by default collapsed like you just see in the tag panel "character:collapsed (152)" or something like that und when you double click on it it will expand to the full range of 152. The problem is that the creator and character tags start cluttering the tag panel very quickly but you also need them often enough too. I always have to scroll down to the namespaces I want. I have now found the option to hide namespaces by right clicking a tag in the tag panel but it's very inconvenient to unhide things, there is no real quick option. Maybe if it's not too complicated that feature could be added, I would be very grateful.
>>16387 I think I have the same issue, I save all twitter images with their tweet as a tweet: tag and even with less than 100k images it already lags the tag search.
How can I export Pixiv with the original filename?
>>16358 Thank you, I will fix this! >>16359 If you are ok to create your own PTR account, you can do this yourself. Hit up services->manage services and go to your PTR, then click 'check for automatic account creation'. It will generate you a new account that can upload tags and siblings and parents. Then hit up tags->manage tag siblings and enter 'character:bonbibonkers' on the left and 'person:bonbibonkers' on the right and click 'add'. The default 'merging' reason is probably good. Then you can click the 'pending' menu up top and upload, and a janitor will check it out. It sounds like a good tag sibling to me. >>16360 I'm afraid I am not sure what's going on here. Sounds like it is an empty page or html instead of json. Maybe a redirect to a login page or similar, if instagram do that sort of gating for more nsfw? Actually, isn't all instagram gated behind a login? I'm not familiar with it I am afraid. >>16361 No worries. If you are new to the more complicated stuff on Linux, we can go much slower. If you like you can email me or DM me on discord and we can go through it one on one. If >>16362 means you figured out how to get to your extract folder, great. Most normal Linux will let you right-click on a folder and say 'open terminal here' or similar. Unfortunately that error is unusual. I can't even find anything relevant when I search for its details. I suspect there may be a problem with your python or virtualenv, or that 'platformdirs' module, and fixing it may take expertise a little beyond you for now. If your OS is due an update, or its package manager has outstanding core updates, you might like to try running them. Python 3.5 is also quite old and may have trouble with hydrus's syntax (which seems also to be the problem here). Unfortunately, that booru seems to be offline now, I am sorry. I am still happy to help if you would like. Since you are jumping in the deep end and it may take more headaches to get hydrus working, do you have an old windows laptop or anything lying around? You might like to try hydrus on that first, just to make sure you like my program, before you get stuck into trying to fix esoteric python issues on your Linux machine.
>>16363 >>16364 >>16370 I know next to nothing about rsync--can you tell me how it works vs normal downloading and how you would expect it to work with hydrus? At the moment I just use normal python 'requests' module and normal https downloading of normal URLs--how is rsync different? As for TOR, yeah, we have really limited support and you have to fudge around with the limited proxy settings atm. I will be extending the network engine to have per-domain proxy settings and separate 'use TOR for this' and ideally full .onion support in the future. >>16365 >>16367 This isn't the first time this has come up. Thank you for the report, and sorry for the inconvenience. I will make a 'I can't get them back m8' emergency recovery button that creates those empty folders for you in a location you pick. >>16368 >>16371 This problem does 'fix' itself, ultimately, but I haven't thought of a clever way to get over the first hump. If multiple files refer to the same URL in the client, then the client ignores that URL for pre-import status prediction. The same is true if one file refers to multiple URLs on the same domain. This situation of incorrectly going "ah, I have seen that URL before, set 'already in db'" only exists as long as one file has that one URL. Once you get another file imported with the same URL mapping, or the same file from a different/'real' URL on that booru, hydrus recognises something is fucked and ignores that untrustworthy URL for import logic. But getting from hydrus false-positively thinking it has seen a URL before to getting that second file is obviously difficult. It is a tricky problem. One possible solution I have talked with people about is tracking URLs you have definitely visited before differently to parsed associated source URLs, but that will add complexity to parsing and storage, and I don't really know how big this problem really is and if it justifies it. The problem may also be solveable with more logic, though it'll take more thought. This 448 I just put out helps a little here--if a site provides a file hash (many boorus do), then all URL rules are ignored, so these situations where a 'source' url on a page is incorrect can be ignored.
>>16376 >>16377 >>16381 >>16382 I think we had talked before about me improving the 'background job' debug UI, and I have now done this. Please hit help->debug->data actions->review threads. There are now three tabs there, including scheduled jobs. This may shine light on your client and how cluttered the different schedulers are. I still have a megajob to rewrite the main downloader loops, which is the main cause of the 'pending'->'working' bottleneck. I don't know when it will be done, but I'll likely have to take several weeks for it. >>16378 I hadn't planned it, but I think that is a nice idea. Optionally, as >>16379 says. After the recent session save rewriting I did, I am now in a position to save more session details. Things like tag sort or even currently selected thumbnails. I'll keep layout position in mind. >>16383 Try the newer 'twitter syndication profile lookup' downloader. It works straight from twitter and gets videos now. I've got up to a thousand files from it before. As a side thing, I think twitter only lets you browse a feed back about 3,000 tweets, it is just an API limit they have had. >>16384 No. If you would like to do a manual check, please check out 'help my db is broke.txt' in 'install_dir/db' directory as background reading. It'll teach you how to use the sqlite3 executable and the 'PRAGMA integrity_check;' statement.
>>16385 >>16386 >>16387 >>16388 I know what you mean, a way to expand/collapse namespaces as a group, like a tree folder view. I'd like like to do this, and other users have asked, and I have prepared the taglist UI code to do this in future. For now if you just want to hide a tag or namespace, right-click it in the list and hit 'hide->character tags from here'. You can manage this hide list under tags->manage tag display and search. There are two hide lists, and you can even hide per service, so if you have specific needs, check it out. >>16388 Just a little thing--I always try to improve hydrus performance, and I have slowly raised the ceiling on the max size of pages and so on, but in general any page over about 20k files is going to lag out. 100k is going to be a killer generally, so if you can possibly add a system:limit=5,000 to that page, you'll instantly make it run a hell of a lot faster. >>16389 If you have the filename as a namespaced tag (like 'filename:picture of flower', then the export modes of hydrus will let you use that using a filename export 'phrase' that you can edit in the export UI. Some sites offer filename like this, and some hydrus users rig up import workflows that keep a filename on hard drive imports too. I don't think pixiv does, but I don't know much about the parser. If the filename is not saved as a tag, then I am afraid hydrus does not know it. Hydrus does not save filename when it downloads/imports. I have a longer FAQ thought on filenames in hydrus here if you are interested: https://hydrusnetwork.github.io/hydrus/help/faq.html#filenames If filenames are very important to you, and you really just want to download pixiv works to a folder, check out PixivUtil2: https://github.com/Nandaka/PixivUtil2
(88.62 KB 1920x584 Untitled.png)

>>16392 >I think we had talked before about me improving the 'background job' debug UI, and I have now done this. Please hit help->debug->data actions->review threads. There are now three tabs there, including scheduled jobs. This may shine light on your client and how cluttered the different schedulers are. I still have a megajob to rewrite the main downloader loops, which is the main cause of the 'pending'->'working' bottleneck. I don't know when it will be done, but I'll likely have to take several weeks for it. Well the problem has since worked itself out, and I deleted the queries that were not downloading anything, so I dunno if this adds any new information, but here it is, anyway. Not that you asked for it.
>>16394 Sorry, I meant to greentext the second line as well, since it was your quote, not mine.
>>16393 >Hydrus does not save filename when it downloads/imports. I know, but it does save the direct image URL, which for Pixiv contains the original filename, so I hoped it could be retrieved from there. Anyway, I fixed it with a bit of parser modification. If anyone is interested: 1. manage parsers > pixiv file page api parser 2. Under content parsers, add a new parser that retrieves the file id (body > illust_details > id) and add the id as a namespaced tag. 3. Under subsidiary page parsers, edit manga pages and tags, then under content parsers edit the page tag to remove the integer addition of 1. This will change page:1 to page:0, et cetera. 4. Under subsidiary page parsers, edit single file page, then under content parsers add a tag that adds a page:0 tag (you can take the page_count and then add -1 with string processing). 5. Export files using [pixiv id namespace]_p[page] and you will get the original pixiv filename. You might also need to make the same changes to other pixiv parsers, not sure yet.
>>16376 I'm having the same issue with the gallery downloader but it's a bit more mixed. It will download some image sets just fine and others not. If I add the image set to the URL downloader it downloads the images just fine. Adding the user ids to a subscription doesn't work for me though. It only finds the image sets that could be downloaded through the gallery downloader. Rebooting Hydrus hasn't worked for me so far.
(21.16 KB 995x257 Capture.PNG)

How do you actually fully completely delete a file from hydrus so that it has no memory of ever holding that file? And before you say "options -> use advanced file deletion dialog, and then click Permanently delete this file and do not save a deletion record" - that still leaves one of these pic related!
I might switch from windows to linux soon, can I pass over my sessions and stuff or am I fucked?
what the fuck is going on with client.exe
>>16390 that reminds me; kernel updates on my system regularly fail. I should get that looked at. There are other computers, but they aren't entirely mine to fiddle with. The computer I'm using now is the best i've got. >Unfortunately, that booru seems to be offline now, I am sorry. What? I'm browsing the site right now: https://ourobooru.booru.org My ultimate goal is to have a backup for this booru with all the tag metadata, so reinstating a new booru if the one in use goes under becomes trivial. Thank you for the help, I've learned a good bit trying to get this to work. I think I might just get a new computer and try it there, since I've been considering getting something with a clean slate for a while anyway.
>on big import page >accidentally hit f5 >nice order of files is now gone does this happen to anyone else? it'd be nice if there was a sort option that would order files based on their # in the file import log window. sorting by time imported doesn't quite work because all the previously imported files end up at the top. i guess that would basically require hydrus to do a known url search for each and every url in the file import log, though. which might cause an unreasonable amount of lag for large pages.
I had a mixed week. I completed a long delayed maintenance routine for repositories, letting them track tags, siblings, and parents processing separately, but it proved much more complicated than I expected, and while I am happy with the work, I have nothing else to show. Since the change also touches core areas of repository processing, I want to do a limited beta test before I roll it out to everyone. The release should be normal time tomorrow, but it will be an experimental release, only recommended for advanced users.
(176.27 KB 655x692 1.png)

>>16403 >it will be an experimental release, only recommended for advanced users. >bug warning Understood.
Is windows defender removing the server.exe and client.exe with a report of Trojan:Script/Wacatac.B!ml and Trojan:Win32/Zpevdo.B a false positive?
I have no idea why, but upon launching Hydrus today, the client.exe just seemed to get deleted, and when I copied a new client.exe into the same location from a fresh install in a different folder, none of my files or tags were there. How do I get them back? I still have all of the files in my db folder, but how do I get it to realize that?
(8.79 KB 475x330 ClipboardImage.png)

>>16406 check windows security / defender, it is probably deleting the executables
>>16407 I have McAfee and I checked its report, and it didn't delete it. It's also not deleting client.exe now upon launch; it just did that the first time today, but Hydrus is treating it like a fresh install even though all the files are still there. How can I restore all of the tags and files? Would just importing the files also import their tags or do I need to do something else?
>>16408 Actually, it just deleted it again when I tried to import some files to test that.
This is an example where Hydrus fails to properly download Pixiv images: https://www.pixiv.net/en/users/3190982 There are three image sets but the gallery downloader only finds two. The url downloader will download the other one without a problem. Anyone else who uses the Pixiv gallery downloader who cares to test if it works for them? It's five images at most.
https://www.youtube.com/watch?v=boFZ3cAws20 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v449/Hydrus.Network.449.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v449/Hydrus.Network.449.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v449/Hydrus.Network.449.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v449/Hydrus.Network.449.-.Linux.-.Executable.tar.gz I had a mixed week. I was able to get a long-planned maintenance routine completed, but that's all I have to show. This is an experimental release, only for advanced users who want to help me test it. repository processing tracking Since I haven't got anything really fun this week, and this changes something delicate, I only want advanced users to check it out for now. If you have experience with the program, run a regular backup, sync with the PTR or another repository, and want to help me out, then please update this week and use your repository normally. Let me know if you run into any trouble. One thing I noticed just now is my IRL client didn't want to catch up to some final processing until I restarted it. Note this update will delete your pending siblings and parents, so commit before you update! I'll make it so it doesn't do this next week. So, repositories now track their 'processing' status more cleverly. Hit services->review services to see--now the 'definitions' part of an update is separated, and the different contents a repository has (just files for a file repo, but mappings, siblings, and parents for a tag repo) also have separate tracking and pause buttons. Most of the time you'll see everything at the same progress, but now the client can do independent reset, so 'clear all siblings and then reprocess them', and it doesn't have to nuke and work through all your mappings as well. This sounds simple, but it turns out it touches a bunch of core systems, and many were old and dusty. I brushed everything up, maybe fixed some little bugs or lags along the way, and added some neat reprocess commands to the 'review services' panel. All siblings and parents will be reset this week--part of a long-time problem with non-determinant sibling/parent processing I have been trying to pin down with the PTR janitors--but doing this reset now just takes a couple of seconds and shouldn't take more than a minute to reprocess. There are some secondary cool things here--users can potentially now sync with the PTR just for the siblings and parents. It is still a little inefficient, since you are getting the tens millions of definitions no matter what, but you can skip the 1.3 billion mappings if you want. I also feel more able to hang new tools off it like a tag filter (e.g. 'get all the creator tags from PTR, but nothing else') in future. full list - this is an experimental release! please do not use this unless you are an advanced user who has a good backup, syncs with a repository (e.g. the PTR), and would like to help me out. if this is you, I don't need you to do anything too special, just please use the client and repo as normal, downloading and uploading, and let me know if anything messes up during normal operation - repository processing split: - tl;dr: nothing has changed, you don't have to do anything. with luck, your PTR service is going to fix some bad siblings and parents over the next couple of days - repositories now track what they have processed on a per-content basis. this gives some extra maintenance tools to, for instance, quickly reset and reprocess your ~150k tag siblings on the PTR without having to clear and reprocess all 1.3 billion mappings too - in review services, you now see definition updates and all a repository's content types processing progress independently (just files for a file repo, but mappings, siblings, and parents for a tag repo). most of the time they will all be the same, but each can be paused separately. it is now possible (though not yet super efficient, since definitions still run 100%) to sync with the PTR and only grab siblings and parents by simply pausing mappings in review services - I have also split the 'network' and 'processing' sync progress gauges and their buttons into separate boxes for clarity - the 'fill in content gaps' maintenance job now lets you choose which content types to do it for - also, a new 'reset content' maintenance job lets you choose to delete and reprocess by content type. the nuclear 'complete' reset is now really just for critical situations where definitions or database tables are irrevocably messed up - all users have their siblings and parents processing reset this week. next time you have update processing, they'll come back in over about fifteen minutes, and with luck we'll wipe out some years-old legacy bugs and hopefully discover some info about the remaining bugs. most importantly, we can re-trigger this reprocess in just a few seconds to quickly test future fixes - a variety of tests such as 'service is mostly caught up' are now careful just to test for the currently unpaused content types - if you try to commit some content that is currently processing-paused, the client now says 'hey, sorry this is paused, I won't upload that stuff right now' but still upload everything else that isn't paused. this is a ' service is caught up' issue - tag display sync, which does background work to make sure siblings and parents appear as they should, will now not run for a service if any of the services it relies on for siblings or parents is not process synced. when this happens, it is also shown on the tag display sync review panel. this stops big changes like the new sibling/parent reset from causing display sync to do a whole bunch of work before the service is ready and happy with what it has. with luck it will also smooth out new users' first PTR sync too - clients now process the sub-updates of a repository update step in the order they were generated on the server, which _may_ fix some non-determinant update bugs we are trying to pin down - all update processing tracking is overhauled. all related code and database access techniques have been brushed up and should use less CPU and fail more gracefully next week This work knocked me out. I had half hoped it would be a simple little thing, just splitting one x/y into multiple, but instead it spiralled out into ten different 'ah, but what about that?' and 'man, that's actually been running bad for ages'. Rather than kick out garbage on a core system, I decided to give it some proper time and do extra IRL testing. However, I am behind on messages, recent bug reports, other small work, and the Client API, so I'll now get to that.
>>16394 Thanks. Yeah, far as I can tell, the problem here is downloaders eat some looping work even if they aren't doing anything. If you see, one of your Job Schedulers there has '908 jobs', which is probably that. A 'normal' value for a slighter client is about 170 I think. If you click over to the 'slow' scheduler tab, you'll likely see a giant list of file and gallery lads sitting getting hit every 30 seconds. I simply need to overhaul how that stuff works, as overhead is killing big (many downloaders) clients atm. >>16396 There's no way in the client to convert URL text to tag, but if you are interested in a specific clever system for existing data, you could wangle this with the Client API. >>16398 There is no 'complete forget' yet. Even if you can nuke all the metadata like tags and URLs, I have no method to delete from the core file hashes table. I have slowly been working on a maintenance system to achieve this. I assume this is a privacy issue, rather than performance? I think your answer is: Find the file, right-click->share->copy->hash (sha256) Let's pretend the hash is b279f6c4abfc02722e4a7d41f0822339ca6feffe89fd4d8958c85ce83acba92d Close your client Go to db directory, run the sqlite3 executable, and enter these lines: .open client.master.db select hash_id from hashes where hash = X'b279f6c4abfc02722e4a7d41f0822339ca6feffe89fd4d8958c85ce83acba92d'; Let's say that hash_id is 123456; delete from local_hashes where hash_id = 123456; update hashes set hash = X'6389ea900246957b74da0b1222be96f8c479421428a922a6f0dc2ee4800a692d' where hash_id = 123456; .exit That's an ugly hack, but it'll replace the entry with a different hash, so the record of what that file was is gone. That 6389... hash I gave there is random, but you can generate your own if you like. 64 chars of hex.
>>16399 You are all good. The 'db' directory is completely portable, just move it over and point your new Linux hydrus install to it. Make sure you have a backup first, and I recommend you test out hydrus on your Linux flavour before you commit. Some versions of Linux run hydrus better than others. >>16400 Man I don't know. Suddenly this week we got a whole ton. The good news about building on github now is I can call this a false positive more confidently. I was talking with some other users about it, and it seems maybe for Windows Defender, if you aren't signed up for cloud-delivered protection and automatic sample submission, you get this stuff less often, since those tend to be a bit over sensitive. Another answer is just to disable your anti-virus on your hydrus install folder, but that sucks as a suggestion. I notice in your list there that Defender is now 'undetected', so I guess they fixed their false positive. I'm ok with anti-virus having false detections, the only thing that really pisses me off is when they say 'this program is a trojan that runs harmful commands', because I know for sure it ain't. My big hope is that in general, now we do build on github, that these shitshows will happen less often. I'm also planning to experiment with pyoxidizer instead of pyinstaller for the exe freezer in future, we'll see if that sets these scanners off less frequently.
(2.05 KB 512x111 ourobooru downloader.png)

>>16401 >What? I'm browsing the site right now: https://ourobooru.booru.org Ah, thanks, my mistake. The URL in your post above included a period on the end, so it gives a funny 404. Since that is a booru.org booru, I think you'll be able to get a parser up and running pretty quick just by altering what is already in the client defaults. I think furry.booru.org is one already in, so if you just duped the related objects and replaced 'furry' with ourobooru, it may just work. Also, don't download and import this normally as they are too big, but there was a project to support hundreds of booru.org sites here: https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts/tree/master/Downloaders/Booru.org Might be some useful info in there, if ourobooru has any oddities. EDIT: Hold up, I did it, check the attached png. Once you are up and running with hydrus, hit network->downloaders->import downloaders and drag and drop this png on it. It'll add the ourobooru components. Then hit network->downloader components->manage url class links and match the 'ourobooru file page' with 'gelbooru 0.1.11 file page parser' and the 'ourobooru gallery page' with 'gelbooru 0.2.x gallery page parser'. I tested it, it seems to work.
>>16402 If you right-click the 'file log' button on the page, you can say 'show all files on a new page', which will restore the file order. Then, hit ctrl+a on the unsorted thumbs and then ctrl+r to remove, and then ctrl+a on the new page you made with correctly sorted, and drag and drop the thumbs to the original page. Sorry for the inconvenience. >>16405 Yes, sorry, it looks like it. Sorry for the trouble. >>16413 >>16408 If you boot hydrus and it is empty and has the 'hey, looks like the first time you ran the program' popup, then what has likely happened is the database location has been changed. Nothing is broken or missing, but you'll want to redirect it back to the correct location. This could happen if your shortcut says a database location, as --db_dir here: https://hydrusnetwork.github.io/hydrus/help/launch_arguments.html But then somehow your shortcut got scrubbed/replaced, or you ran the exe raw without the shortcut. It could also happen if your install directory suddenly went read-only. Then hydrus would not be able to use the default directory of install_dir/db, and would default to somewhere in your UserDir. If you hit help->about, you can see your current db directory. You can also open it direct from the file menu. Let me know how you get on!
(1.80 KB 203x37 Capture.PNG)

>>16415 It's showing as the default directory, but it still appears empty and it did give me the first-time start-up message.
Is it possible to add tags with the url downloader based on the order they're downloaded or their url? I mainly just want to add page tags to pixiv files.
>>16417 Pretty sure the pixiv downloader already adds page tags. Do you add all tags from the downloader?
>>16418 Oh yeah, you're right it does, thanks. That solves my main problem, but is there no way to tag files with the downloader based on the order they're downloaded, like how you can add tags in the file importer based on their alphabetical order (or filesize order, or filetype order)?
I've been getting general slowness since updating to the latest version. The program becoming unresponsive at times is the most noticeable thing. I went from about 440 to 449.
>>16419 Why would you want to do that? What are you trying to accomplish?
>>16416 What's the solution to it being empty despite this?
It'd be cool if you could add shortcuts for the hydrus video player to go forward and backward 5 seconds like Mpv can. As it is, manually moving the scrubber with the cursor to move around in videos is pretty clunky, so I usually just view the videos externally with Mpv itself, but that doesn't get logged by Hydrus for view time and it's also annoying to do for every video. Having Mpv controls available as shortcuts would be helpful.
>>16410 i think this has to do with you not being properly signed in to pixiv in hydrus. there are only two image sets if you visit that page while not signed in. someone mentioned a similar issue in the previous thread. https://archive.ph/JwSO1#2985 they said sending the login cookies via the hydrus companion browser extension fixed it.
>>16421 Not him, but I can see that being useful for downloading comics or image sets so that you don't have to manually add a page tag to each one.
>>16416 >>16422 Damn. It could be the opposite situation, where previously for whatever reason your install dir was readonly, so you were before defaulting to the user dir. Please check, I think it should be: C:\Users\(You)\hydrus Failing that, try doing a search for "client.master.db" across your whole system. That's a core file in the database and should help you try to find where your old db actually was. Also, this sounds silly, but check your recycle bin too--this has happened before, to other users. Once you find your true database location, make sure you make a backup of it. Then you can either: A) Delete the small empty one in your screenshot in "D:\A\Hydrus Network\db" and then move your good by db into that folder. B) Launch the program with the '--db_dir' parameter, as that help page I linked says, to make hydrus launch to that location.
>>16417 >>16419 >>16425 Yeah, not yet, unfortunately. The downloader is generally stateless atm, so each import object is completely separate, but I expect in future to let you enter temporary variables into the parsing context of a particular object, which could, for instance, be, 'nth url in the gallery page I was pulled from'. There is already a string conversion rule that would let you increment/decrement that number if you need to, but getting the initial 'nth' value just isn't there yet. iirc, I did it with pixiv originally since they helpfully put an actual index number in their URL somewhere. >>16420 Thank you for this report. I agree, there is some additional lag, I have noticed it particularly around file imports. I am going to keep pushing on my thread debugging/profiling code so we can see what exactly is being held up where and iron it out. >>16423 Yeah, I am sorry, I keep letting this slip past me. It sounds simple, but there are like two extra things I have to do specific to mpv, and it keeps getting put to the back of my immediate list. I've made a reminder for this week to look at it again.
>>16426 The client.master.db file is still in the default Hydrus directory and I tried using the --db_dir parameter, but it still shows as empty.
Not sure if this is a problem with Hydrus or just how I installed it, but when I update openexr to 3.1.1 I cannot launch Hydrus (v448). Reverting openexr to 3.0.5 fixes it.
>>16424 Thanks. I didn't sign in at all, but now I tried and found that there is no login manager for pixiv. Unless I'm missing something.
can we get the ability to create subscriptions, that have multiple different downloaders within? for example, if I want to "sub" to someone who has both an @instagram and @twitter, I have to create two different subscriptions because I can't just create one and add both their @instagram and @twitter and use two different downloaders. It only allows one downloader per subscription.
I had an ok week. The update storage change last week went well, so that is polished and ready for everyone. I also caught up on some small fixes and quality of life and extended the Client API a little further. The release should be normal time tomorrow.
>>16432 >and extended the Client API a little further. thanks anon, I use this quite a bit so it's nice to see work done on it
https://www.youtube.com/watch?v=fLLKwIfs1NM windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v450/Hydrus.Network.450.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v450/Hydrus.Network.450.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v450/Hydrus.Network.450.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v450/Hydrus.Network.450.-.Linux.-.Executable.tar.gz 🎉🎉 MERRY 450! 🎉🎉 I had an ok week. Last week's experimental release went well, so I have polished that, and I otherwise caught up with a variety of small work. If you sync with the PTR, update will take a couple of minutes. all misc this week So, the update storage change went ok! There were a couple of little sync bugs to clear up, but overall it works--tag repositories now track their processing progress by mappings, siblings and parents separately. You don't have to do anything, and this doesn't matter much for day to day work, but it allows for individualised reset and reprocessing. All 448 users will have their siblings and parents reset and reprocessed, which will take a couple of minutes to do on update, and about fifteen minutes on your next processing job to fill back in, and which should eliminate some bad siblings and parents due to years-old processing bugs that long term users have been dealing with (leaving only current bugs, which I am also working on). The reset will not delete any pending siblings or parents you have, so no worries if you have a bunch waiting to be uploaded. Advanced Users: The PTR sibling and parent reset will however remove any siblings and parents you uploaded that were then denied by jannies (which your client would have added to itself anyway). Everyone is reset to a 'clean' sync with this change, so if you know you have a ton of surplus denied siblings you rely on, perhaps from years ago that we agreed I would deny on the PTR to help you hack in an overwrite in the old system, you might like to hold off updating and first figure out a PTR sibling/parent backup to a local service using tag migration. I fixed some things with Mr Bones. His numbers are accurate to your 'my files' again, and he now talks about your total deleted files and also your earliest file import time. I divided the ugly growing stack of numbers into tabs, which I am sort of happy with, sort of not. People like to take screens of Mr Bones, but they have different preferences on what to show, so I may replace this with expand/collapse buttons or similar, so you can show everything if you want. If you use the export files window to get a lot of files out, it now makes a progress popup. You can close the window while it is exporting and still see and cancel the job. The Client API file search now supports file and tag domain selection (like the 'my files' and 'all known tags' buttons on a normal search page), and also file sort for searches. I know the Client API guys have been waiting on this, so with luck we should see some neat new search options in the Client API programs in the near future.
full list - misc: - when exporting files from the file export window, a cancellable popup job with progress updates is also created. if you close the window, you can still cancel the job from the popup - fixed a crash bug in file export window - system:num file relationships (duplicates) now correctly only returns files in the current file search domain (previously, it returned all files, including those previously deleted etc...) - I rearranged some of the thumbnail menu file relationships actions menu. I'm not really happy with this, but a shuffle is easier than a full rework - fixed the '4k' resolution label replacer, which was looking at 2060 height not 2160 by mistake - the phash generation routine (part of the duplicates system, happens on image imports) now uses less memory and CPU for images with an alpha channel (pngs and still gifs), and if those images are taller or wider than 1:30 or 30:1, the phashes are also better quality - the 'fill in subscription gap' popup button now correctly boots its created downloader when the action also opens a new downloader page. previously, due to overactive safety code, it would hang on 'pending' until a client restart. related similar 'start downloader after creating page' actions off drag and drop or client api should also be more reliable - . - repositories (also the various improvements in 449-experimental are folded in): - fixed an issue with some 'force repository account refresh' code not kicking in immediately - when a client sees repository update period change, it now recalculates the metadata next check time - fixed a bug with the new repo sync where updates just added from additive sync were not being processed until client restart. related long-term buggy 'do we have this hash in updates?' and 'how many updates are there?' tests for update metadata are also fixed - the experimental by-content-type repository reset from last week now leaves pending content in place - the reset also now clears cached service info counts for files, tags, and mappings - . - client api: - the /get_files/search_files command now takes six new parameters for file/tag domain selection and file sort type and order - I wrote out some simple help and added some hacky unit tests for these new parameters. it needs another pass for potential bug fixes and readability/specificity (e.g. what does 'asc' for 'sort by ratio' mean?), but let me know how you get on anyway - fixed the new system predicate parsing for system:hash with only one hash - improved the url system predicate examples in client api documentation - client api version is now 19 - . - mr bones: - mr bones now reports the correct numbers for your 'my files' again (and will continue to do so as multiple local file services are added) - mr bones now reports total files deleted and their total size - mr bones now reports your earliest recorded file import time - mr bones now has separate tabs for different stats types. this neatly ditches the giant stack of numbers this was becoming, but I may revisit it. some people who take mr bones screens will prefer all the info in one easy shot, while I others I know would rather the 'viewing habits' stuff were not immediately there. maybe expanding boxes? - fixed some mr bones layout - . - boring code cleanup: - made a new base class for the different database modules to hold cursor and collect common administrative functions - all database queries (about 1,200 of them) now go through a single location in the new class - a new profile mode, 'query planner' mode, now prints query text and EXPLAIN QUERY PLAN lines to a new profile log. this is a new experimental thing, extremely spammy, but will help with diagnosing very unusually slow queries on individual clients (it'll most likely show up odd sqlite versions, weird data distributions, or un-analysed tables) - updated a core function in 'all known files' mappings change autocomplete count adjustment. this seemed to have extremely bad worst case time, and I think it might have been giving some bad counts in unusual situations next week Next week is cleanup. The long term database breakup job has been going well, making code simpler and easier to expand, so I think more of that. I also started a new database profiling system this week, and I want to experiment with it a bit.
>>16430 Logins are at "network > logins > manage logins". If there isn't a "www.pixiv.net" entry, click "add > pixiv login" then put "www.pixiv.net".
>>16412 >There is no 'complete forget' yet. That's too bad. Thanks for the sqlite steps though. Also I noticed that if you remove all the tags, the file will no longer appear when you search system:is not currently in all local files. Even if it's still got metadata like urls. Why is that?
>>16435 >mr bones additions Nice. Viewing my percentage deleted confirms what I've always been thinking, 99% of everything on sankaku is trash.
Just updated to the new version and a few minutes after updating, I got this error: 2021/08/12 12:41:04: Failed to process updates for the public tag repository repository! The error follows: 2021/08/12 12:41:04: Exception: 2021/08/12 12:41:04: DBException OperationalError: no such column: False Traceback (most recent call last): File "hydrus/client/ClientServices.py", line 1838, in _SyncProcessUpdates ( this_is_first_definitions_work, definition_hashes_and_content_types, this_is_first_content_work, content_hashes_and_content_types ) = HG.client_controller.Read( 'repository_update_hashes_to_process', self._service_key, content_types_to_process ) File "hydrus/core/HydrusController.py", line 684, in Read return self._Read( action, *args, **kwargs ) File "hydrus/core/HydrusController.py", line 201, in _Read result = self.db.Read( action, *args, **kwargs ) File "hydrus/core/HydrusDB.py", line 1009, in Read return job.GetResult() File "hydrus/core/HydrusData.py", line 1882, in GetResult raise e hydrus.core.HydrusExceptions.DBException: OperationalError: no such column: False Database Traceback (most recent call last): File "hydrus/core/HydrusDB.py", line 682, in _ProcessJob result = self._Read( action, *args, **kwargs ) File "hydrus/client/db/ClientDB.py", line 14498, in _Read elif action == 'repository_update_hashes_to_process': result = self.modules_repositories.GetRepositoryUpdateHashesICanProcess( *args, **kwargs ) File "hydrus/client/db/ClientDBRepositories.py", line 339, in GetRepositoryUpdateHashesICanProcess rows = self._Execute( query ).fetchall() File "hydrus/core/HydrusDBBase.py", line 160, in _Execute return self._c.execute( query, *args ) sqlite3.OperationalError: no such column: False I also forgot to run by backup before updating. I'm in trouble, ain't I?
>>16439 Also here's a bit more info that might be helpful. Every time I open "review services" it bring up this error as a popup, and the PTR progress is stuck on 0 for everything. Tag display maintenance for "my tags" and PTR are also stuck at 0%, not budging from saying "moving to 136" at all. Finally, all PTR tag siblings/parents are missing when I check "manage tag siblings/parents" but the ones from my tags are still here.
(115.95 KB 560x390 manage logins.png)

>>16436 There is no pixiv login in my install. I downloaded a fresh install but that didn't have it either.
>>16434 should the client api return tags? like in an app like lolisnatcher droid if i start typing, should the client api return tag suggestions? or has this not been implemented yet
Is the "use system trash" option broken in loonux? I realized my Hydrus directory was far larger than Mr. Bones said it was, turns out there was a hidden trash directory in it that contained "permanently" delete files. I deleted this directory, and found the system trash option, which was enabled. I disabled it, and even after restarting this hidden trash directory is made when I permanently delete files within Hydrus. When I delete a file from my trash I want to to be gone for good.
>>16442 one other question was, can anyone test lolisnatcher and tell me if there are issues with searching and the way parents and siblings are searched? it seems like it doesn't respect ideal siblings, for example the ideal for video is medium:video, so that should mean if i search video, it shouldn't show any results correct? but it does. was curious if this was a limitation of the client api, or an issue with the way lolisnatcher droid handles parents/siblings (or lack thereof)
Can I ask about the background of the hydrus developer? I'm quite interested since he seems to be a very talented developer.
>>16439 >>16440 Oh and also I'm running the Linux version of Hydrus on Fedora (Gnome).
Such a cluttered piece of clusterfuckshit. This makes TempleOS look user friendly and accesible. Fucking waste of time, back to imgbrd-grabber.
>>16428 I'm still having this problem. Am I going to have to just start over from scratch with all the tags I did manually?
>>16428 >>16448 Do you have any other client.master.db files in your system? Do you have anything in C:\Users\You\hydrus? That would be the most obvious candidate for the other database location. If you do have that file somewhere else on your drive, then that suggests that until recently, your hydrus was looking at that different location for your database, and that location is your old database, so to get you working again, we'll have to point hydrus back to that old location explicitly. Another thing to search for would be folders called 'f00'. That's another fairly unique name to hydrus. If you have a folder called that, and it should be beside 511 other folders with similar short names, either 'fxx' or 'txx', and those folders all have jpegs and other media files inside, then that is your old database. If you do not have any other client.master.db files on your system, then I do not know where your old database went. It would not be wiped by anything in hydrus, so I would have to assume that some part of your disk drive was deleted, perhaps a mangled update? Did you check your recycle bin? Does McAfee have some quarantine zone were it might have moved your old install or db directory once before? If you do not have a backup, and your old database has been completely deleted or overwritten, then I am afraid there is nothing to recover. If you want to start again, you can, but we should also make a plan for a backup so whatever happened here cannot happen again.
>>16429 Thank you, I saw a similar note from an Artix user who just got a system update and had a similar problem. I do not know enough about these Linux issues to talk too cleverly, but yeah seems to be there's a version mismatch with OpenCV and latest OpenEXR. His version was unhappy with 3.0 and wanted 2.9, so this may be fairly complicated and depend on OpenCV version. Please let me know anything else you discover. >>16431 This is actually a tricky issue. In technical terms, it is easier to handle a website of many queries rather than a query on many sites, so I have generally tuned things for the former. One annoyance is that artists may have different account names on different sites. Another is that different sites produce new files at different rates, so even on sites with the same query text (or where I made a system where you could change the query text for a particular artist on different sites in the same subscription), I'd be checking them on separate schedules anyway. We have played with multiple downloaders in one, and advanced users can try creating these (they are called, internally, 'nested gallery url generators'), but it only works for very similar sites, like gelbooru and danbooru, and we did not find obviously great benefits to make the technical complexity worthwhile. With the current system, which is not built for this, it quickly gets unwieldy and inefficient. For now, please create a subscription for each site you like, and then paste multiple query texts into them separately, so you might have a twitter sub with 25 queries and an insta one with 30. >>16433 Unfortunately it seems I fucked the sort order code! I'll fix it for next week! >>16437 If you were searching 'all known files' and a tag domain, then it needs at least one tag on that tag domain to turn up. And you can't do 'all known files' and 'all known tags' together, so finding deleted files with no tags is actually tricky. As I do multiple local file services--which got delayed by an avalanche of IRL and work problems recently--I'll be adding a way to search 'things deleted from my files' so you can pull these things up if you want to.
>>16439 Thank you for this report. I am sorry for the difficulty. You aren't in trouble, I'm sure we can figure this out. And don't worry too much about the errors here. Nothing is breaking, it is just failing to read the new processing progress, so any attempts to process or see progress in review services is bailing out. You might like to pause your repository processing, if it hasn't already done so due to errors. Am I right you are running from source? You are either Arch, or you set up your own source environment? It looks like your SQLite isn't parsing the query here, where I explicitly embed a boolean (False) value, rather than passing it from outside. When I look at the function here, it is talking to that table earlier on with no problems, so there is nothing broken here. It is just something with the syntax of that query. Can you hit help->about for me and say your SQLite version? As comparison, mine is 3.34.1. I will rewrite this query to be more 'proper' for 451, and with luck that will fix you and anyone else with your (I'm guessing a little older) SQLite situation. Please let me know how that works for you, and if there are still problems, we can drill down deeper.
(1.92 KB 512x85 pixiv login.png)

>>16441 Sorry, I have only been half following your issue here. I believe the old pixiv login I originally wrote was not working well, so it was taken out of new releases. The best way to log in to pixiv or any other complicated login site is to use Hydrus Companion, which will send your web browser's login cookies right across to hydrus using the Client API. https://gitgud.io/prkc/hydrus-companion If you wish to try the pixiv login script anyway, try downloading this png and dragging and dropping it on to network->logins->manage login scripts. But again, I do not believe it works. I think Pixiv added a semi-random captcha or some javascript test, and hydrus couldn't pass it, but they returned a 'you logged in ok!' cookie anyway, so there wasn't an easy hydrus-side way of seeing the failure. Hydrus Companion is your best bet. >>16442 Not implemented yet, but this will be the next big step in the Client API, full tag searching and autocomplete! >>16444 Generally in hydrus, if you enter a sibling into a search, it will be treated as the ideal. So if you have video->medium:video, typing video will give you the same results as medium:video. It is basically like the tags are merged together, and the 'ideal' is what you see in the label. >>16443 This is the 'use OS's recycle bin' option right? Can you talk a little more about this hidden trash directory? I have never heard of this before! I use a library called 'send2trash', but I haven't heard about it making any new directories for an error state. Can you check your db directory for your various recent 'client - date.log' files and search for 'It has been fully deleted instead' text? If send2trash was causing errors, they should have been printed with that text with them.
>>16451 >Am I right you are running from source Nope. Just running the Linux version, and it normally works fine. >SQLite version 3.22.0 so I guess that's pretty old. The package in Fedora's repos is 3.34.1 just like yours, so Hydrus isn't taking the SQLite from my system. It's good to know that my DB isn't fucked though. Hopefully 451 fixes this issue, because Hydrus is mostly unusable for me in the state it's in. Without any siblings and parents, the PTR is an absolute mess.
Hi HyDev. I'm the guy who after restoring his backup was having issues with right clicking seemingly random pictures causing crashes. Just updated from version 445 to 450 and everything seems to be working great so far! Thanks for fixing the issue, you're a legend!
>>16445 I am no one particularly special. Just an originalfag Anon who collected a lot of files over the years and decided one day to do something about the folder mess. I ended up falling into this weekly work routine, and I am now very happy to give back to the community that has kept me laughing for so long. I have a background education in programming. While my code does some interesting and innovative things, I would not be considered professional by anyone in the industry. I cut a lot of corners, use an idiosyncratic style, and I do not follow all the neat guidelines that modern groups tend to follow. I'm just slinging out ideas every week, making a lot of mistakes but sometimes doing something cool and free. I was born in the UK but now live in the US, so my spelling is a little funny sometimes. >>16447 Thanks for trying it out anyway! Hydrus is not for everyone. imgbrd-grabber is a great download solution. >>16453 Ah I see, that's odd. 3.22.0 should be ok (I was expecting something accidentally ancient, that 3.22 is probably what comes with python 3.8), so I can't say confidently why this is happening when no one else has reported the same trouble with that SQLite. I'll play with that method, see if I can reproduce your problem, and otherwise neaten the query, so let me know how 451 goes. >>16454 Hey, thanks for letting me know! I am not sure what I did specifically here, so let me know if it comes back!
>>16451 I'm running Hydrus from tgz from Ubuntu and I have same problems as >>16439. And mine SQLite is 3.22.0 too.
>>16456 Well it's good that I'm not alone at least. I thought it might have to do with me using Fedora, but if it's happening on Ubuntu then it must be something else.
Is there a way to set up pools like e621 has for comics?
>>16458 groups of images with a set order (e.g. comics) are currently a big weak point of Hydrus. I'm not sure what the plan is them, but for now I personally just don't collect image series in Hydrus at all.
>>16452 >Can you talk a little more about this hidden trash directory? Turns out I was retarded and the option was enabled the whole time. Must have hit cancel instead of apply when I disabled it the first time. I don't see any deletions being mentioned in the logs either way, though.
>>16457 >but if it's happening on Ubuntu then it must be something else. To my knowledge, Ubuntu is not built on a Debian Stable version, but the Testing one; then unending problems arise. This is the very reason why Ubuntu forums are packed with users asking for help.
(270.87 KB 1366x768 Screenshot_20210817_221348.png)

>>16458 >>16459 >grouping images I don't know if using namespaces might work for you, but if you are willing to type the tags, it can be done. Granted, it is a pain and very time consuming, but it is better than nothing.
>>16461 If it were built on Debian Stable, Ubuntu's packages would be stuck back in the early 2000s.
(92.25 KB 1366x573 Screenshot_20210817_223626.png)

>>16463 I use MX built on Debian Stable an I don't believe I'm missing anything. See: https://www.debian.org/releases/index.en.html
(118.59 KB 1232x589 Screenshot_20210817_234541.png)

>>16464 To be more precise, the current stable version available at most distros is still v10 Buster from 2019. See: https://wiki.debian.org/DebianReleases
I had a great work week. I fixed a heap of bugs! The release should be normal time tomorrow.
>>16452 >Sorry, I have only been half following your issue here. My issue was that Hydrus didn't see some Pixiv posts, which turned out to be because they were hidden behind a log-in. >I believe the old pixiv login I originally wrote was not working well, so it was taken out of new releases. The best way to log in to pixiv or any other complicated login site is to use Hydrus Companion, which will send your web browser's login cookies right across to hydrus using the Client API. Thank you, I will have a look. >If you wish to try the pixiv login script anyway, try downloading this png and dragging and dropping it on to network->logins->manage login scripts. But again, I do not believe it works. I think Pixiv added a semi-random captcha or some javascript test, and hydrus couldn't pass it, but they returned a 'you logged in ok!' cookie anyway, so there wasn't an easy hydrus-side way of seeing the failure. Hydrus Companion is your best bet. Will you ever consider adding a Pixiv log-in again? PixivUtil2 lets you log-in with just a username, password and a PHPSESSID cookie which you can copy manually very easily. So it's not impossible.
>>16447 >>16455 Not op of that, but I love hydrus but also hate it for a few reasons. I really think it is just extremely bloated, it has a ton of features built in most people won't use, and instead could be optional. This really is my biggest issue. More features people don't use also increase the chances of vulnerabilities. I prefer minimal programs overall, as well as just takes up more resources for no reason.' That being said, I don't want to move away from hydrus. I'm just hoping in the future things can be slimmed down quite a bit , and polished up a little. Users can always easily add features through plugins or something, but it's usually significantly more difficult to remove features baked in without breaking things. Also if I may, ensure you document your stuff nicely as you do it, and ensure it?s fairly readable to most people. In the case you ever need to step away, this increases the ease and likelihood of someone forking and continuing the project. It's also just the proper thing to do (t. bsd mindset). One idea is if it's not already, is in Hydrus exports make it so it can be parsed by other programs. For example if someone ever wanted to import their Hydrus import elsewhere, they can do so and the dev can interpret things properly. Maybe a csv file or something. Also I highly suggest implementing some kind of checksums verifications on the backups everytime a user runs it, and an option to "verify" the backup if this doesn't already exist Thanks anon. Keep up the great work we appreciate it
can anyone fix the reddit downloader so it can search terms within subreddits? for example, download all posts in r/funny that have the title "disney". also add the ability to download reddit user profiles. I was using teddit (like nitter for reddit) to download through hydrus, but it doesn't recognize any files after page one on the html so it's useless.
>>16469 was also looking for a tiktok downloader for hydrus that can download profiles.
https://www.youtube.com/watch?v=Cv87NJ2xX0k windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v451/Hydrus.Network.451.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v451/Hydrus.Network.451.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v451/Hydrus.Network.451.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v451/Hydrus.Network.451.-.Linux.-.Executable.tar.gz I had a great week cleaning code and fixing bugs. If you have a big database, it will take a minute to update this week. all misc this week, most bug fixes I fixed a critical bug in tag siblings. It was causing some tag siblings to be forgotten, particularly on local tag services, and particularly when a tag had a sibling removed and added (e.g. 'delete A->B, then add A->C') in the same transaction. I will keep working here and will trigger a new sibling reprocess in the future just as 450 did so we can fix more PTR issues. The new content-based processing tracking had a couple more issues. Some Linux users, in particular, it just broke for, due to a SQLite version issue. I have fixed that, and I have fixed some issues it caused for IPFS. There are new unit tests to make sure this won't happen again. I fixed an issue with sessions recently not saving thumbnail order correctly! I fixed issues with some of the new Client API file search parameters not working right! Big video files should import a bit faster, and will show more status updates as they do their work. We have had more anti-virus problems in recent weeks. We'd hoped building on github would eliminate them, but it hasn't completely. A user helped me trace one issue to the Windows installer. We have 'corrected' it (believe it or not, it was removing the 'open help' checkbox on the final page of the install wizard, and yes the reasons for why this was causing problems are ridiculous), so with luck there will be fewer problems. Thank you for the reports, and let me know if you have more trouble! full list - stupid anti-virus thing: - we have had several more anti-virus false positives just recently. we discovered that at least one testbed used by these companies was testing the 'open html help' checkbox in the installer, which then launched Edge on the testbed, and then launched the Windows Update process for Edge and Skype, which was somehow interacting with UAC and thus considered suspicious activity owned by the hydrus installer process, lmao. thereafter, it seems the installer exe's DNS requests were somehow being cross-connected with the client.exe scan as that was identified as connected with the installer. taking that checkbox out as a test produced a much cleaner scan. there is a limit to how much of this nonsense I will accomodate, but this week we are trying a release without that 'open help' link in the installer, let's see how it goes - semi-related, I brushed up the install path message in the installer and clarified help->help will open the help in the first-start welcome popup message - . - misc: - I fixed a critical bug in tag sibling storage when a 'bad' tag's mapping is removed (e.g. 'delete A->B') and added ('add A->C') in the same transaction, and in a heap of fun other situations besides, that mostly resulted in the newly added sibling being forgotten. the bug was worse when this was on a local tag service via the manage siblings dialog. this problem is likely the cause of some of our weird sibling issues on clients that processed certain repository updates extremely quickly. I will keep investigating here for more issues and trigger another sibling reset for everyone in the future - the 'show some random pairs' button on the duplicates page is nicer--the 'did not find any pairs' notification is a popup rather than an annoying error dialog, and when there is nothing found, it also clears the page of thumbs. it also tries to guess if you are at the end of the current search, and if so, it will not do an auto re-fetch and will clear the page without producing the popup message - fixed a bug that meant file order was not being saved correctly in sessions! sorry for the trouble! - import of videos is now a little faster as the ffmpeg call to check resolution and duration is now retained to check for presence of an audio channel - when files are imported, the status messages are now much more granular. large and CPU-heavy files should move noticeably from hash generation to filetype calculation to metadata to actual file copying - fixed a database query bug in the new processing progress tracking code that was affecting some (perhaps older) versions of sqlite - when you trash/untrash/etc... a file in the media viewer, the top hover text now updates to show the file location change - fixed a typo bug in the new content type tracking that broke ipfs pinning yet again, sorry for the trouble! (issue #955) - I fleshed out my database pending and num_pending tests significantly. now all uploadable content types are tested, so ipfs should not break at the _db_ level again
- the page tab menu now clumps the 'close x pages' into a dynamic submenu when there are several options and excludes duplicates (e.g. 'close others' and 'close to the left' when you right-click the rightmost page) - the page tab menu also puts the 'move' actions under a submenu - the page tab menu now has 'select' submenu for navigating home/left/right/end like the shortcuts - fixed some repository content type checking problems: showing petition pages when the user has moderation privileges on a repository, permission check when fetching number of petitions, and permissions check when uploading files - fixed a typo in the 'running in wine' html that made the whole document big and bold - across the program, a 'year' for most date calculations like 'system:time imported: more than a year ago' is now 365 days (up from 12 x 30-day months). these will likely be calendar calculated correctly in future, but for now we'll just stick with simple but just a bit more accurate - fixed a bug in mpv loop-seek when the system lags for a moment just when the user closes the media viewer and the video loops back to start - . - client api: - expanded my testing system to handle more 'read' database parameter testing, and added some unit tests for the new client api file search code - fixed the 'file_sort_asc' in the new client api file search call. it was a stupid untested typo, thank you for the reports (issue #959) - fixed 'file_service_name' and 'tag_service_name' when they are GET parameters in the client api - I fleshed out the file search sort help to say what ascending/descending means for each file sort type - . - boring database cleanup: - to cut down on redundant spam, the new query planner profile mode only plans each unique query text once per run of the mode - also fixed an issue in the query planner with multiple-row queries with an empty list argument - refactored the tag sibling and parent database storage and lookup code out to separate db modules - untangled and optimised a couple of sibling/parent lookup chain regeneration calls - moved more sibling and parent responsibility to the new modules, clearing some inline hardcoding out of the main class - cleaned up a bunch of sibling, parent, and display code generally, and improved communication between these modules, particularly in regards to update interactions and display sync - the similar files data tables are migrated to more appropriate locations. previously, they were all in client.caches.db, now the phash definition and file mapping tables are in master, and the similar files search record is now in main next week I've managed to catch up on some critical issues, and some IRL stuff also eased up, so I have some breathing room. I want to put some more time into multiple local file services, which has been delayed, likely some way to search over previously deleted files.
why is hydrus unable to automatically fetch cookies?' it's a pita to do manually
>>16473 It's easy with Hydrus Companion browser add-on, one click
>>16474 Unless you use Firefox. Hydrus Companion no longer supports FF.
>>16475 I'm not the person you've been replying to but the extension still works. I'm using it on Firefox, and I've had no problems. You can either install the latest signed xpi from the repo, or build it yourself and install it on a dev or unbranded version.
>>16476 I'm not the same as >>16473. But yes, the old v2.65 still works..... for now. I have not been able to get v2.66 to install in unbranded Firefox, Firefox Nightly, or Firefox Developer Edition because it's unsigned. Yes xpinstall.signatures.required is set to false, but it still won't install. So it's just a matter of time until Mozilla breaks something again..
>>16477 Interesting, I'm using 2.66 with Firefox Developer Edition 92.0b5, and I haven't had any problems with it, though I have had it installed over the past couple of Firefox updates. Did you maybe accidentally use chrome's manifest.json instead of renaming the firefox-manifest.json like in the instructions?
>>16478 I'm too stupid to build it myself. I just tried to use the already compiled one. It simply refuses to install. Gives the same error as trying to install an unsigned extension as regular Firefox would. No problems adding 2.66 as a temporary extension. Works fine, except ofc it has to be re-added every browser restart. Which is moderately annoying, so I've just been using 2.65 instead.
>>16479 If you have no problem using the developer version of firefox, it can be installed on it quite easily
>>16479 Well then I'm not sure exactly what's wrong. If xpinstall.signatures.required is indeed set to false then maybe something got messed up in the prebuilt extension? If you want to maybe give building the extension yourself a try, it's really dead simple, no faffing about with console commands or anything like that.
When's the digit limit on the tag as number search gonna be fixed? GUI doesn't allow to enter more than 8 digits and the API wouldn't search for anything larger either. Meanwhile the numeric date requires 10.
Is there a way to make it so that a blacklisted tag won't even be taken into consideration for searching? PTR's rating: namespace is annoyingly fucked and it's just subjective enough that I'd much rather do just that one namespace by hand on local.
>>16456 >>16457 Thank you for these updates. I'll make sure not to do this thing again. I'm hoping it is fixed for you now, but let me know if it is not. >>16458 >>16462 >>16459 Yep, Hydrus is just bad at images 'connections' for now. This will be worked on significantly in the coming years, but for now, for manga please use a proper comic reader program, and for (unordered) pools you can try tags, and for 'alternate' file relations like recolours or WIPs or costume variations, please hang in there for the next big iteration of the hydrus duplicates system. >>16467 I would fix the Pixiv login we have now, but I think my login engine just isn't clever enough to deal with their site atm. Next time I am doing big work on the network engine, I will see about improving how login scripts work and what that can infer from a response, and maybe even captcha support of some sort. I know some users want some other improvements to handle some API login situations, and perhaps even OAuth too.
>>16468 Thank you for your thoughts. I agree broadly that a good future for hydrus is more slimming down and 'platformisation' of the program so user mods and optional features can be slotted in to place easily, but the barebones program is not so bloated. Also improving my coding style and overall workflow for polish. I really need to get into a routine of more unit tests and keeping help documents up to date, but you know how it is--that's boring, and there are five hundred interesting things on fire that I could be working on instead. I'd like to have JSON and XML exports of all general metadata. We have a semi-borked '.txt' import/export for tags now, with file import/export, and I'd like to update and generalise that to tags, ratingns, urls, any typical sort of metadata, in a way that other devs can parse for their own uses. Also the Client API is opening some doors here too. Backup checksum is an interesting idea. My general philosophy has been not to make the internal backup too clever, since third-party backup programs are mature and will always be able to do a better job than me, so maybe my answer should be to use a program with a checksum rather than reinventing that wheel, but perhaps I should do that myself too, anyway.
>>16482 Thanks, someone mentioned this on twitter. It was an artifical limit I had forgotten about, I'll fix it this week! >>16483 Not yet, but that is the next step for autocomplete search. I'll ultimately add my Tag Filter object to the options under tags->manage tag display and search. I agree it is a huge pain having all these bullshit title: tags appear. EDIT: Ah, reading your issue more carefully, to exclude it comprehensively from file search will be slightly more tricky, but it is also planned. A Tag Filter is going on PTR processing too in the future, so you'll be able to exclude or include whatever you want and slim down what you actually get from the PTR.
>>16485 >third party backups but these programs have no way to verify the backup itself isn't corrupted or has issues compared to the actual db. Honestly, maybe you'd be better off just integrating rsyncor something into it replacing what you have now, seeing it has a history and is well established and has these features.
Plebian here, is there a parser for fediverse/mastodon/pleroma?
is it just me or is furry.booru.org's downloader borked? I got past cloudflare in a browser then copied all 3 cookies (2 for furry.booru.org and 1 for booru.org) over to hydrus under booru.org but it keeps giving me a 403
(35.37 KB 486x886 WindowsSecurityv551.png)

example of stupid anti-virus thing. Got this updating from v447 to v451
I had an ok week. I improved some quality of life and finally got around to shortcuts to seek video. The release should be as normal tomorrow.
How do I ignore a specific tag's siblings from the PTR? Say I have a tag "A" and some files which are tagged with A in my files, and the PTR has siblings A -> B, A -> C, and A -> D. How do I make it such that a search for A will only show files that are tagged A and not files tagged with B, C, or D regardless of where the tags come from (unless A is also tagged). Ideally this should also be default behavior so that I don't have to switch settings around each time and searches for A can be mixed with other tag siblings from the PTR.
https://www.youtube.com/watch?v=iePWOFOSl_U windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v452/Hydrus.Network.452.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v452/Hydrus.Network.452.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v452/Hydrus.Network.452.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v452/Hydrus.Network.452.-.Linux.-.Executable.tar.gz I had an ok week. I ended up doing a lot of boring behind the scenes prep, but there is also some nice new quality of life. If you sync with the PTR, update will take a few minutes this week. all misc this week After a very long delay, I finally have shortcuts for seeking video back/forwards in the media viewer. New users will get ctrl+left/right to seek back 2.5 seconds or forwards 5 seconds. Existing users need to add their own--please check it under the 'media viewers - all' shortcut set. You can set whatever seek distance you like, and even set multiple with different distance jumps. Sorry for how long it took to get this in--I had to update my shortcut system first! I did some behind the scenes tag work this week. The database can now handle larger 'tag as number' searches. Update will take a few minutes to load these bigger numbers into the fast search cache. If you have a subscription that is not meant to completely sync (e.g. it pulls a sample from a gallery with unusual sort order, or you have the 'normal file limit' intentionally small), there is a new checkbox that suppresses the 'hey, there was a gap, click here to fill it in' popup windows. full list - misc: - my 'simple' shortcut commands can now store additional variables. to start things off, I have finally added 'seek video' shortcut commands that have back/forwards and second+millisecond values. these should work on the native video viewer and mpv, audio and video. existing users will have to add their own (do it to the 'media viewers - all' set), but new users will get ctrl+left/right for 2.5s back and 5s forwards as the new defaults. let me know if you have any trouble! - the maximum number tracked by 'tag as number' system predicate is expanded from -99999999->99999999 to -2^63 -> 2^63 - 1. tag caches will be regenerated on update to store these, it will take a few minutes. the input ui for the system predicate is temporarily limited to -/+2^31, but I'll expand it - subscriptions now have a checkbox for 'do not worry about subscription gaps'. if you have a subscription that gets files randomly, or gets an intentionally small sample, this will disable the 'hey, there was a gap, click here to fill it in' popup messages - you can now set negative values for the duplicate score weights in options->duplicates - also added a weight for the 'nice ratio' duplicate comparison - vastly improved the cancel speed for searches in the realm of 'get the files that have any xxx tag', be that all tags or a namespace wildcard, and also some important search setup for various 'all known files' search pages. if you have ever tried to search the PTR raw and run into a three minute uncancellable initial setup lag, it should be gone now! - when you right-click on files in a specific local file domain (e.g. trash or my files), the 'view this file's dupes' number check is now run on 'all local files' as well, and if the numbers differ, a second menu is shown for all local files. this should make it easier to chase dupes of trashed files that are still untrashed while also allowing a trash-only search - fixed a critical bug in repository mapping processing that was not adding mappings to certain caches for files imported before the repo was added, and/or the new repository 'per content type' processing reset. this mostly manifested as these files not showing up in search results despite the tag being there. there is more work to do here, so it is top priority next week, and likely some maintenance to regen the bad caches - . - boring rewrites for multiple local file services: - many users have asked for the ability, when multiple local file domains are available, to search multiple file domains at once. I spent time this week doing background work to support this, and a related concept of searching 'deleted' files, which is a current gap in the program and not always covered by 'all known files'. nothing significant changes, but almost all the file search code now works on n file domains rather than 1, but for now n=1 lmao - made a new 'database search context' object to handle a virtualised but still simple and fast file 'location view' at the database level - the primary file search call is converted to use this object. references to a single file service are replaced with the view or its components - all duplicate file search code is moved to the new location search context - searching by 'system:import time' now works over multiple domains, although it is a little muddled. in future, import time predicate will have an optional specific file service and do 'import time' vs 'deleted time' - 'system:local' and 'system:not local' is adapted so it can still work fast with multiple file domains, sped up worst case 'local' time, and a new optimisation lets it run fast for 'deleted from local files' too - sorting search files by import time is now only supported if the search domain is just one domain next week While I was working on database stuff this week, I discovered a problem with repository processing that meant files imported before a repository was added (or mappings reset, with the new 'reset by content type' function) would not get fully processed and may not show up in tag searches. I fixed half of that bug this morning, but there is more to do, so that's top priority. Otherwise, it should be a 'medium size' job week. I really want to get note parsing in the downloader done, but that may take longer, so I'll just see what I can chip away at.
Finally you can properly browse videos one-handed :D
>>16484 >Yep, Hydrus is just bad at images 'connections' for now. Would it be possible to just import the pool tags on e621? I don't even mean the name of the pool, just the actual "pool:xxxx" tag.
I'm running this off of a NAS and recently I've been getting crashes seemingly at random. There's nothing in the log file, the last line is 'booting gui...' and that's it. I'm assuming it's being caused by latency across the network (also the NAS is using HDDs) and sqlite or python just can't deal with file access timing out. Is there an option for more verbose debugging I could enable?
Dev, when are you upgrading to Qt 6.x?
could an option be added so when you do a search, when browsing the thumbnails, if the system knows there's a potential duplicate, it shows a small icon on the thumbnail or title bar, and the user can quickly view and choose?
>>16491 windows constantly quarantines hydrus randomly for me, not just while updating. it's fucking annoying
>>16494 oh wow. I finally updated to 451 (it fixed that tag problem I was having btw) and the next version is out now. The seeking shortcut being added is great news! Now I can actually regularly use the embedded player for videos over a minute.
>>16500 dude add the folder to the exception list
>>16491 >>16500 >>16502 Thank you for these reports. I am sorry again for the trouble, I wish we were not getting hit by this, and it has just ramped up in recent weeks. Turning off the 'cloud sample submission' feature(s) in Windows Defender options seems to reduce this long term, and excluding the hydrus install folder from scanning is another trick. If you still want virus scanning on your database and/or media files, then check out this help to see how to split your database apart: https://hydrusnetwork.github.io/hydrus/help/database_migration.html I am giving serious thought to making a script so people run hydrus from source in a python virtual environment with just a few clicks, this is getting ridiculous.
>>16490 I believe cloudflare needs your User-Agent to match your browser, as well as cookies. I understand Hydrus Companion can now sync this: https://gitgud.io/prkc/hydrus-companion Or, if you would rather do it manually, you can edit it under network->data->manage http headers.
>>16493 There's no way yet to 'turn off' a particular sibling on a service, but if you make a different mapping on a different service (e.g. 'my tags') and put that on the PTR with higher priority under tags->manage where tag siblings and parents apply, that different mapping should take precedence. Your specific example is tricky since you want to 'undo' A->B rather than set A->Z instead. Maybe you can do A->(similar to A), something like 'clothing:stockings'->'clothing:stockings_'. If you'll forgive me, I believe your exact example is also logically incorrect, since in hydrus siblings, the 'A' in A->B can only be mapped to one thing (they are an N->1 relationship). Or are you writing siblings A->B to mean that 'B' is labelled 'A'? I generally go the other way, so 'samus_aran'->'character:samus aran'. But in any case, whether you want A to become something else, or B,C,D to become something else, I think your best shot is trying to override the specific relationship on a local tag service and having that apply with higher precedence to the PTR.
>>16496 I am not totally sure, but I think there was an e621 pool downloader floating around, maybe this one: https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts/blob/master/Downloaders/e621.net%20(json%20api)%202021.04.05.png Otherwise, seems like you can use 'pool:123456' as a tag in normal tag search and it'll work, so maybe that's a quick cheat to fudge it through normal tag search? https://e621.net/help/cheatsheet
>>16496 Oh shit, I just realised, you mean the actual tag 'pool:123456' into hydrus. My e621 parser does not pull that, but maybe that API one does. The user-made parsers tend to be more enthusiastic about pulling more namespaces. You can import it by downloading the png file and drag and dropping it onto Lain under network->downloaders->import downloaders.
>>16497 It may be the NAS is causing crashes, but I am confident it is not due to file I/O lag. Generally hydrus is super tolerant about slow drives. It might be that file I/O is raising an ugly 'disconnected' error somewhere (maybe something like the NAS having momentary disconnects or buffer problems?), and that is being handled wrong on my end, or maybe a SQLite access permission problem. Is your actual db (the database folder with the .db files) on the NAS, or just your media files? Some users have no trouble running the DB across a network, some have had serious issues including corruption. I generally recommend against it, but if you have local storage issues or you want to set up a clever multi-access system, you have to put the db on the network. There is unfortunately no good debugging mode for crashing, since the process halts and then nothing can be grabbed. Your OS will make some dump files, but since hydrus is in python, and then it is usually wrapped in a clever bootloader to make it work inside an executable, the dump files are too complicated to try to pull apart for useful info. Most of the time, hydrus crashes are due to my bad UI code. They tend to be on non-Windows. If you are on non-Windows, an eventual 'solution' here may be to get you running from source, as that tends to improve stability no matter what and may provide better error information. Just in case this is a recent change, you might like to extract a fresh install of hydrus to your desktop and make sure that works ok, then see if moving that to a NAS location causes problems, and maybe check if having its DB files local but media files remote is ok. Let me know how you get on, whatever happens!
>>16498 Not any time soon. The guy who did the wx->Qt code conversion is keeping an eye on it for me and is going to let me know when it seems reasonable to go for it. I'm wary though and wouldn't want to rush into it, since I know it is going to be a headache and likely suddenly make Windows 7 non-viable or something else unexpected. >>16499 I would love to do this as part of the next expansion of the duplicates system. Unfortunately, at the moment, thumbnails don't actually know about their own dupes yet! (when you right-click on them, it actually does a real fast database hit to check for that file). Once thumbs know their file relationships, and once I have a little more behind the scenes dupe tech and media viewer tech, I also want to show 'this file has a master' kind of label like danbooru does when you see a file with a relationship, and allow you to quickly flick to those potentials/dupes/alternates without losing your original file order and workflow.
Request: Make the import files dialog usable at smaller sizes. All the buttons in the bottom right corner are out of view when the dialog is too small even though there's plenty of room.
Any updates on downloading ugoira?
>>16508 > It might be that file I/O is raising an ugly 'disconnected' error somewhere (maybe something like the NAS having momentary disconnects or buffer problems?) I think this is the problem, I on occasion will have a file open in other things 'break' (ex. a video I had open will only play a few seconds then break). I was hoping there would be one of those magic options that fix everything in sqlite like 'try to re-initialize file handles'. For reference this is a samba shared and this seems to happen when the NAS is under higher IO. My suspicion is that the normal HDDs just can't keep up. Maybe NFS instead of samba would be better? Everything is currently on the NAS. I thought both the "actual db" and and media files were both in Hydrus Network\db\ ? If just the 'actual db' files are moveable (<30gb) I could put those on an SSD. >the dump files are too complicated to try to pull apart for useful info. Can you tell me where they are anyway? >Most of the time, hydrus crashes are due to my bad UI code. They tend to be on non-Windows. I am on windows 7, >>16509 would cause me to drop hydrus.
>>16512 One more thought, for just the actual db files in sqlite, is there an option to just like... load them all into ram and have the changes committed every minute or so? I have quite a bit of ram and I imagine it might help with my issue, would make searching tags faster, make syncing with PTR faster, etc. and generally make hydrus work better on HDDs.
>>16506 >>16507 I imported the e621 json api downloader and it pull pool:123456 tags. However, if I add an artist I was previously using with the regular e621 downloader, none of the files I already have get updated. I did check both the "force page fetch even if url recognized and file already in db" and "force page fetch even if hash recognized and file already in db" options under the subscription tag import options and then reset the query, but that didn't help. It seems like for whatever reason the e621 json downloader ignores this setting. Probably since it's not actually downloading pages. Is my only option to get pool tags really to redownload *everything* ?
Is there a way to remove the password on a database? I stopped using Hydrus for a few months and forgot mine. The webpage implies the password is just there to prevent an average Joe snooping around on your computer from accidentally stumbling upon your terabytes of goat porn and that it can be easily circumvented, but I don't have a clue what to do.
>>16504 Thanks that worked Double checked and my dumb ass had left it as "authorization" instead of "user-agent"
Hey,Quick Question. Is it intentional that using the panel in the top right of the viewer,whether to archive a file or assign a rating,takes you out of fullscreen? It's not detrimental in any way,just mildly annoying.
You said to remind you every once in a while that there's some tag filtering support that you need to work on so that you can make it so that tag relationships can be migrated only involving tags that are in your files. So here I am reminding you about it. I'm stuck with the PTR until I'm able to take just the tag relationships I'll use, instead of clogging my database with all of them, and the PTR has been processing unreasonably slowly as of late, so it's hard for me to stay up to date.
>>16034 I'm back again. Is ordered grouping of images like an image set, variant image set, short (6 pages?) comics, or themed art pack part of the program yet?
(139.33 KB 915x227 screenshot.1630371401.jpg)

I've been using Grabber (pic related) to do most of my image searching and downloading from boorus (or I guess you call them galleries?) for the last while. I'm wondering if I should swap programs. Grabber renames an image to something that I set up in a mask, and it downloads to a folder I specify. I also currently have it set to resize any images that are wider than 1920 pixels, but that's not something I always want to have on. As far as metadata, I've configured the program to save metadata tags in a separate text file with the name [image name] - metadata.txt. My thinking was that I could somehow auto-import these tags into Hydrus later. Does Hydrus have a booru browsing feature? One where I search tags, see images, and can choose which of the booru's images I want to download? Or is it limited to auto-downloading all new images that have a combination of specified tags? Essentially, I'm wondering if I can use Hydrus as a 1 to 1 replacement of Grabber (minus the storage methods of each program), and also use Hydrus' extra features. Has anyone else used both Grabber and Hydrus enough to compare the two? I got a new SSD a little while ago, so I'm thinking of repurposing the old smaller SSD for the Hydrus Database / smut stash.
I had a great week, ending up focusing mostly on bug fixes. The 'jank line' tile artifact in the image viewer is fixed for all normal zooms, and I also fixed the long-time tag search issue I discovered last week. There's also some quality of life improvements, and OR searching is added to the Client API. The release should be as normal tomorrow.
https://www.youtube.com/watch?v=YA6A8xohpxc windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v453/Hydrus.Network.453.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v453/Hydrus.Network.453.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v453/Hydrus.Network.453.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v453/Hydrus.Network.453.-.Linux.-.Executable.tar.gz I had a great week. I ended up mostly fixing bugs. If you have a large client, the update may take a few minutes this week. bug fixes I discovered a semi-important tag processing bug last week--for some users, files that were imported before they added the PTR were not getting all the correct tag info and would not appear in some tag searches. I fixed the underlying file-tracking bug and have added a retroactive 'gap-filler' to this week's update. If you used the client for a long time but added/reset the PTR recently, you'll have more gaps so your update will take longer. Another persistent issue has been the 'tiling artifacts' with my new tile-based image renderer, where at certain zooms an image would have one or more horizontal or vertical blurred/janked line of pixels. You'd notice it on cleaner vector images where a smooth curved black line would suddenly jag at one zoom. I had trouble reproducing this at first, but some users got it quite often, and with their help I was able to figure it out. I have rewritten the part of my renderer that was failing, and I think I now have the artifacts completely fixed for all 'normal' zooms. Let me know how you get on! misc Network job widgets have a little user-friendly update this week. I brushed up some of the status texts, made the text lay out better, and when the widget counts down waiting for something (like free bandwidth), if it doesn't get it because another downloader did, it says so before resetting the countdown clock. A helpful user wrote a new darkmode style called OledBlack. Check it out under options->style! I added OR predicates to Client API file search! If you are an advanced user, you might like to read this idea I had for setting up multi-tag processing workflows: https://hydrusnetwork.github.io/hydrus/help/advanced_parents.html#parent_favourites I suddenly thought of it a couple weeks ago and it worked so well for me that I decided to write it up. It basically involves using local parent tags to group PTR tags into a pseudo-OR search that you can easily edit. full list - qol and misc: - the network job status labels around waiting for 'subscription'/'download page'/'watcher' forced wait slots are reworded. now they just say a more plain 'waiting to work' with a time estimate, and if a job does not get a chance to work this check cycle, it says 'a different xxx got the chance to work' for a few seconds. - if a network job does not get bandwidth on a check cycle, it now says 'a different network job got the bandwidth' for a few seconds - when waiting on bandwidth or gallery work, network jobs should count down more smoothly, one second at a time, not skip a second so often - network job widgets are now better about updating the layout of their two text labels. the status text on the left should take all the available pixels much better, sharing with the '64KB/s' speed text as it changes width and disappear - added a new user-made darkmode QSS stylesheet called 'OledBlack' to default hydrus, try it out under _options->style_ - if the tag domain in a search page is other than 'all known tags', the 'selection tags' box, which limits itself to the current domain's tags, now explicitly labels itself with that domain - consolidated and optimised the pre-work checks on all importers/downloaders in pages. pages with idling/finished/paused downloaders will consume just a little less CPU and need to talk to fewer important objects - renamed the shortcut sets for viewer/preview media windows and clarified that they are mouse only for now. the new seek command works with these, but you'd have to map ctrl+right-click or something - improved the system predicate unit tests to catch datatype problems like with last week's hotfix and system:time imported - advanced archive/delete stuff: wrote up a neat idea I had about using local parents applied to the PTR to make fast multi-tag processing workflows here: https://hydrusnetwork.github.io/hydrus/help/advanced_parents.html#parent_favourites
- bug fixes: - an important tag search bug is fixed. for some users, files that were imported before a service was added were not appearing in some of that service's search results, or their tag counts were not added in certain tag autocomplete results. this file miscount is fixed, and holes will be filled on database update. it should not take too long to fix, although different users will have different situations - this bug was leading to artificially fast PTR processing speeds on some clients as their older files were being skipped. if you have used the client for a long time but only added the PTR recently, sorry if you notice it slow down! it is now working correct! - fixed an important bug in the image rendering system that was causing tile artifacts (little lines of double-pixel jank along tile borders) at a variety of regular zoom levels. the way ideal tile size was being calculated was often incorrect, so I have replaced it with a better calculation - the system predicate parser can now parse 'system:is not the best quality file of its duplicate group' (only 'isn't' was working, previously) (issue #954) - if the collect-by dropdown is fed garbage namespace data from the namespace sort options, it now recovers with a nicer error message (issue #904) - misc db code cleanup and minor refactoring - . - client api: - OR predicates are now supported in the client api! Just nest within the tag list, and it'll bundle the nested list into an OR. there's an example in the client api help - some permissions testing in file search is tightened up--now we have OR and system predicates, if you do not submit any regular positive tags, the search permissions have to be 'allow anything' - fixed an issue where the client api would let you ask about sha256 hashes of incorrect length (and would ultimately make a master database id for these borked hashes, even the empty string!!). now the client api throws a 400 - fixed a bug in /manage_pages/get_pages where all pages were marked as 'selected'=true (issue #841) - in the client api, if you use missing file_id(s) on a request for a file, thumbnail, metadata about a file, or when trying to add a files to a page, it now gives 404 correctly (rather than 500) (issue #961) - added a section to the client api help on variable encoding, including an example of how to convert a python tag list to JSON+URL encoded string - added new unit tests for OR pred parsing and the hash length check - client api version is now 20 next week Unfortunately, I did not spend time on notes parsing as I had planned. The people helping to run the github issue tracker pointed me to old bug reports that I had not been keeping track of, so I am going to spend a little time prioritising clearing out that queue (and generally trying to integrate important github issues into my weekly routine more, as I often have trouble naturally focusing on priorities). So, next week will likely be more like this!
just installed hydrus on a new partition. how do i get the old database to work with the new partition?
any update on the downloader pending/working issue?
>>16520 >Does Hydrus have a booru browsing feature? One where I search tags, see images, and can choose which of the booru's images I want to download? No. >Or is it limited to auto-downloading all new images that have a combination of specified tags? Yes.
(8.34 KB 402x308 ClipboardImage.png)

Thank you for this report. Is this the dialog you mean? I feel like it is scaling down well for me in pic related, but do you get something different? Or do you mean a different dialog? Could you take a screenshot anyway, so I know what you are getting? Scrub out any private data.
Sorry, >>16527 meant for >>16510 >>16511 Ugoira will need to wait for better archive parsing capability in hydrus (an ugoira is basically a zip of image frames), and then I will need to write a special renderer to display the frames. When I add CBR/CBZ support, it will become easier. Ugoira is mostly waiting for me to have some free time for a big job. >>16512 >>16513 >I thought both the "actual db" and and media files were both in Hydrus Network\db\ ? If just the 'actual db' files are moveable (<30gb) I could put those on an SSD. Check this help for full information: https://hydrusnetwork.github.io/hydrus/help/database_migration.html tl;dr: Four .db files are in the base folder, that's the SQLite database, the media files and thumbs are under client_files in 512 folders. You can split them up. >I am on windows 7 Yeah, I want to keep Windows 7 support as long as reasonably possible. But I do feel we are getting close to end of life. Vidya is starting to stop support, and it seems newer UI libraries are dropping it too. Visual C++ is also moving on. Feels to me it'll be about 18-24 months or so, for de facto end of life? Maybe sooner, not really sure. I'll hang on reasonably long, but after that there will be a period when Windows 7 users will have to run hydrus from source, and then after a bit I expect there just won't be a feasible way to make it work, like 32-bit. >>16513 You can run memory db journalling and memory temp db location. They can be dangerous, but will boost speeds. I only recommend it for testing. It is done with launch parameters: https://hydrusnetwork.github.io/hydrus/help/launch_arguments.html
>>16514 Hmm, damn, sorry, those "force page fetch even if url recognized and file already in db" and "force page fetch even if hash recognized and file already in db" should be the correct options to set. As you say, it must be something to do with the API parser and how it is pulling hash/tag data. Please bear with me, I will check this this week and see if I can fix it.
(70.10 KB 919x615 ClipboardImage.png)

>>16515 You'll have to do a little SQLite work. I think this is going to be your process: - Download SQLite Studio - Make a backup copy of client.db - Load client.db in SQLite Studio - Go to 'options' table and look at the single entry. Should be some human-readable YAML txt. - BEING VERY CAREFUL, find the 'password' key and replace it with null, as in pic related - Ok and quit SQLite Studio - Try booting. Let me know if that doesn't work, and if everything breaks, roll back to your backup client.db. Worst case we can talk one on one via email or something and you'll send me some data and I'll munge it for you and send it back with re-insert instructions.
(120.06 KB 592x210 9BYIiOCe3t.mp4)

>>16517 This is not intentional--this is the first time I have heard of it. Can you describe a bit more what happens? So you are in borderless fullscreen view, you move your mouse over the hover so it appears, and then you click a rating, and the viewer comes out of borderless and returns you to a normal window? Does middle/right-click do similar? This sounds stupid, but just to check, can you try turning on help->debug->report modes->shortcut report mode and then try this again? Maybe somehow an 'exit fullscreen' command got mapped to left click somewhere. Vid related is normal behaviour. Should just 'work', I'm sorry it doesn't for you!
>>16518 Thank you for the reminder! I will bump this up my todo list! >>16519 No, I am afraid not. This will be a much larger expansion of the program. This year's 'big work' has gone much slower than expected, with a number of delays and surprise work derailing things for a bit, so I do not think I will start any new big work until 2022. Earliest this could likely happen is end of Q1 2022. Sorry! >>16525 Yep, sorry for the trouble. I managed to reproduce it and will be putting time into it this week. Please let me know how 454 works for you. I believe sites giving 500 error responses is causing the problem, so you may wish to pause unreliable sites for a bit.
>>16524 By default, all your hydrus stuff is stored in one folder that is completely portable. Assuming you have not moved anything in your hydrus database previously, here are two easy options: - Move your entire hydrus install directory to the new partition and update your shortcut - Move your install_dir/db folder to the new partition and then point your hydrus executable shortcut at the new location with a different launch switch, like this: C:\Hydrus Network\client.exe -d="D:\hydrusdb" There is more thorough reading here: https://hydrusnetwork.github.io/hydrus/help/database_migration.html https://hydrusnetwork.github.io/hydrus/help/launch_arguments.html Let me know if you run into any trouble, and always make a backup before you do anything big.
(538.63 KB 1916x1041 wow.mp4)

>>16531 >So you are in borderless fullscreen view, you move your mouse over the hover so it appears, and then you click a rating, and the viewer comes out of borderless and returns you to a normal window? Exactly,middle and right also do the same thing.
>>16532 for me it seemed that on a sub 2 million weight session, the downloaders work fine, but the moment it went over 2 million the downloaders shit the bed and need restarting every 5-20 minutes here's hoping it solves the issue because going to sleep or being away for 3 hours and needing to restart the program for the next 2 hours for everything to work is kind of getting old.
Why aren't images that are pixel-for-pixel duplicates automatically set as same-quality duplicates by Hydrus? By definition, they're same quality duplicates. It seems weird that this has to be done manually when Hydrus has the information it needs to automatically make the decision here with certainty.
can someone help me with hydrus-dd https://gitgud.io/koto/hydrus-dd and I can't get this shit to work. Maybe i'm just too retarded. Can someone help with either hydrus-dd or something else that will do the same thing?
>>16537 What problem are you having with it? Post an example, and I or someone else here can likely help you get it working.
>>16514 >>16529 I just had a proper look at this now, and it seems like that API parser actually grabs associable URLs and tags at the gallery step and queues up raw file URLs as the file import URLs (rather than Post URLs), which is unusual, but unfortunately does not explain your situation. The tags (and urls) in this downloader should be added to files whether those advanced 'fetch page even if ... and already in db' options are on or not, since they are parsed before pages are even considered (and, in fact, there is no 'page' to check). They are supposed to be associated as soon as the 'already in db' status is set. Can you double-check for me that the files are not getting tags even though an 'already in db' status is being set? This isn't just a confusion about tags being added super quickly 'in the background'? If you are confident about it, can you check that the URLs in your e621 downloader 'file log' are like: https://static1.e621.net/data/84/40/844041833cca715e3eecafab7fb317a6.jpg rather than https://e621.net/posts/2907756 ? If you are getting 'Post URLs' in your downloader, then perhaps the API downloader you imported is conflicting with the default somewhere and there are some crossed wires. My current downloader system is terrible at updating via importing, and sometimes it is best to just deleted everything else before re-importing. If you are in this situation, please run a single u621 download with help->debug->report modes->network report mode on and see if its popup spam seems sensible when it refers to 'URL Class' names and so on. If they aren't, we might want to dive into the 'manage xxx object' dialogs under network->downloader components to clear things out and then reimport the e621 API downloader. I can help with this. Let me know how you get on.
Is there any way to rename a tag namespace, or do you just have to change every individual tag?
I had an ok week, mostly more bug fixes. Another issue with the image viewer--slightly warped tiles that were obvious in the duplicate viewer--is now much better, and I think I fixed an issue of downloaders sometimes getting stuck on 'pending' forever after serious network problems. The release should be as normal tomorrow. >>16540 Not with the current system, but I plan to add this in future.
I've been having issues downloading files from threads on this website, particularly large files. Hydrus seems to error out and only get the first couple of KB. 8chan is the only domain that does this; all other websites work just fine.
I asked about a certain feature potentially being implemented in Hydrus but nothing ever came of it, so I'll ask again, only because I think, it's a simple feature that's easy to implement and it would help me a lot. Could you add a checkbox to the `system:number of tags` predicate window that makes it so that only tags that are in your favorites list are counted. It would help me a lot with making sure that all my files are properly tagged with tags I care about using in searching frequently (as opposed to the hundred of PTR tags that files have, but aren't interesting to me), and I feel like that should be simple to implement.
https://www.youtube.com/watch?v=Ch24PpzMKog windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v454/Hydrus.Network.454.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v454/Hydrus.Network.454.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v454/Hydrus.Network.454.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v454/Hydrus.Network.454.-.Linux.-.Executable.tar.gz I had an ok week mostly working on making images look better. warped tiles tl;dr: Images look better now. I put a lot of time into the tiled renderer this week, mostly fixing 'stretch-warped' tiles. These are most obvious in the duplicate viewer when you are flipping between two very similar images that have slightly different resolution--you would see one part of one of the images stretched one pixel horizontally or vertically compared to the other. This turned out to be complicated to fix, and moreso for unusual zooms (like a 124.65% style canvas fit zoom), but I think I have fixed almost all warping, and tile join artifacts, for all zooms below about ~6000%, with the exception of some bottommost and rightmost tiles. I also added an option to options->speed and memory to govern how large the tiles should be. This is 768-pixel squares by default, but if you still have trouble with warping in the duplicate viewer or other high zoom situations, please try boosting it a bit. Larger numbers will be less memory and CPU efficient, so I don't recommend 4096 to start off, but let's see what we find in real situations. I like the tiled renderer, so I don't want to abandon or completely replace it. I thought seriously of ditching it this week, when I could not figure out a solution to warping, but I slept on it and figured it out. If I can keep patching remaining problems, I'll be happy, but I do have a backup plan as well. Let me know how you get on! the rest I think I fixed the issue where, after some serious network errors, the downloaders could get in a 'traffic jam' and all stay on 'pending', with nothing going to 'working'. Finishing a big archive/delete filter should result in less UI lag. If you are a user who hits F5 right after committing archive/delete, let me know how this works for you! The green/blue/red texts in the duplicate filter's right-hand hover window are now moved to the style system, so QSS stylesheet files (as under options->style) can finally change their colour. I set up some basic dark/light blues for all the default QSS files, so it should be a bit easier to read the blue text in dark mode styles now. These were the last hardcoded text colours in the program, so we are now one step closer to moving everything to QSS. full list - misc: - when a downloader page fetch gives a 500 Server Error, it is now handled better, status numbers are updated to 'failed' quickly, and I believe the post-500 downloader deadlock issue (downloaders staying as 'pending', not 'working', after several of these 500s) should also be fixed (issue #898 maybe, but many other reports also) - when finishing a very large archive/delete filter, the UI should not hang so much to commit the changes. the changes may be delayed a second or more, if your client is currently chugging, so if you are a user who hits F5 real quick after committing archive/delete, let me know how you get on. I've tried to mitigate for your situation, but it may not be perfect.(issue #845) - the Edit URL Class dialog will now refuse to OK if the API Converter fails. - the Edit URL Class dialog will now put up an 'are you sure?' messagebox if the URL Class matches its own example API URL - fixed some gallery error handling when a gallery cannot be parsed - improved 'cannot parse' error reporting text to include more information - the client api /manage_pages/add_files command should now always preserve the sort of both the file_ids or hashes parameter - fixed an instance where image bitmaps were being handled incorrectly (issue #876) - the client will no longer report shutdown work due for a repository when the work is on a currently paused content type - fixed some logic related to the advanced tag option of 'fetch page even if url recognised and already in db' - improved the error message when an unlucky duplicate boot causes a locked database error - I rearranged and clarified a couple of links in the 'advanced' area of the help index page - added some help texts and tooltips to the edit checker options dialog and fixed some borked layout - did a quick hack to fix some db repair code that wasn't dealing with some missing module information. I will brush the repair code up in the near future so that modules can repair themselves
[Expand Post]- . - some text colour stuff: - the green/red/blue duplicate comparison statements on the duplicate filter's right-hand hover window are now coloured by QSS. a new 'HydrusIndeterminate' object name handles the blue. - the green/red background in the advanced OR input is now governed by HydrusValid and HydrusInvalid - the various 'help for this panel' blue texts are also now HydrusIndeterminate - I have added dark or light HydrusIndeterminate and more Valid/Invalid class definitions to all the default qss styles. they may need some updates, so if you wrote any of these QSS files, please fiddle with them and send me any updates to roll in! - added a new user created QSS style called 'Dark Blue', thank you for the submission! - all text colours are now dynamically set, either QSS or through (tag colour) options! there are no more hardcoded text colours! - . - media viewer's image tile renderer: - a new option in 'speed and memory' allows you to change the typical square dimensions of tiles in the tile renderer. default is 768 pixels. you can go bigger to improve accuracy, but it'll cost a little memory and CPU inefficiency - the new 'nice' tile size calculator now tests more potential tile sizes, improving precision and reducing stretch-warping along tile borders for unusual zooms - the new nice size calculator is now also used when figuring out tile padding, making padding widths that do not cause stretch-warps - there remain slight stretch-warps in some bottom-most and right-most tiles - a new canvas tile debug report mode now draws blue lines on tile edges in the media viewer and spams some tile number info to popups - improved tile coordinate safety checks for extremely small images (e.g. 1x1) when blown up to ridiculous zooms so there are more than one tile per pixel - this took a bunch of work, and I am happy that I figured out some solutions, but I believe it may be impossible to get perfect answers here. please try out this new version and let me know how it goes, particularly in the duplicate viewer where warping is obvious. I think ultimately I may replace this with a single tile system that goes over the borders of your screen, eliminating the stitching problems entirely, although this will eat more memory and CPU next week I still have plenty of old bug reports to clear from the issue tracker, so I will keep plugging away at them. I want to focus on the UI freezes an increasing number of users are seeing. I also want to do some database cleanup and database repair code improvements.
>>16544 Thank you very much for all your work, Hydrus dev. I have a question about sorting by rating. I've made a like/dislike rating called "favourite" so I can stick a "like" on an image that I don't want to lose track of later. I don't want to manage this kind of metadata using the tagging system, which is why I have the rating system. My question is: when I sort by "rating: favourite" and put in "system:limit is 64" as the lone search query, I don't get all my liked images plus however many are needed to make 64 in total. I just get 64 random images. How do I make it sort by the rating first before limiting it to 64?
>>16532 ok, had some time with it, the quick rundown is it seems like the same problems I was having are still there, but somewhat alleviated, it didn't take me 20 restarts to unclog pending, it took 2, and from there it took 10 hours before a clog problem started screwing with checking threads. https://github.com/hydrusnetwork/hydrus/issues/971 is where i'm putting most of my thoughts and observations at the moment.
any way to change a tag into another? i want to replace "name" with "character:name" but cant find any options to do so
>>16547 Why not just make a sibling relationship? It's better that way because it'll cause any future uses of "name" to instead be displayed as "character:name".
>>16548 just did that, now looks like i can see everything with "character:name", thanks if theres still a way to completely replace it im open to suggestions, i find it kinda stupid to have the same tag twice :/
>>16549 Well sure. If you really wanna erase "name" instead of just letting the sibling pair you made take care it, you can just search for "name", then select all, remove "name" and add "character:name" That's how I do it, but I usually don't bother with complete deletion.
if i add the ptr and import images witll hydrus automatically tag them? i have over 9k images so would take some time to manually tag them :P
>>16551 If someone else who's using the PTR added PTR tags to that exact file (the SHA-256 has to match) then yeah, you'll see those tags there when you import the file.
>>16552 What if I import a file that has no PTR tags? Will it get updated with PTR tags if someone adds them later?
>>16553 yup. That's what the downloading and processing jobs are for. They keep you up to date by appending new mappings to the database.
Any way to remove the bandwidth limit and shorten the update check wait time? I use a laptop and rarely leave it idle / screen turned off, not suspended, so I'd like for Hydrus to download as much as it can while I'm using the computer, thanks
>>16555 There is but I forget how. I also got bit by the "month" limit so I removed it. It's a weird choice for a default.
>>16555 >shorten the update check wait time Didn't notice that part. For that one I believe it's set by the PTR Admins so no I don't think you can change that.
god why does it override my settings, i set it to retry in 10 minutes if it encounters errors surely thats reasonable
Is there any way to check which tags are purely virtual(?) so that i can assign atleast 1 picture with them to make them able to autocomplete.
>>16534 Thanks. I am sorry for the trouble--this is not intentional. Can you run that shortcut report mode I mentioned? Is it my shortcut system eating those clicks and misfiring, or should I be looking elsewhere? >>16535 Thanks, this threshold is useful to know. Current lag definitely seems to be a combination of A) big downloader pages and B) session autosave. I will be working on both over the coming weeks, so please let me know how you get on in future. >>16542 Thanks, yeah, I am not sure what is doing it. I have a job to check it out explicitly. Seems like 8chan sometimes cuts off the connection before it has delivered as many bytes as it said it would. I don't know if this is some clever http 'resume' protocol, or just an error state I should be catching better. >>16543 Thank you for this suggestion. I am mixed on this. Although the front-end of this is simple, the backend search code would need significant upgrade to count arbitrary tags, so if I were to do this, I would probably do it for any arbitrary selection of tags, which then makes the front-end UI complex, so this is a bigger job after all. Would I be right in saying you really want to search for =0 and/or >0 (i.e. absence or presence) for this list of tags? Is there any way you can use the existing OR search to figure it out? If you select all your favourites and right-click, it should let you spawn a new search page for them all OR'd. Another answer, since you sound like an advanced user, is maybe try out my new 'parent favourites tag' idea. Give all your favourite tags a special parent tag on a local tag service and then search just that tag: https://hydrusnetwork.github.io/hydrus/help/advanced_parents.html#parent_favourites
>>16545 Thanks, I am glad you like it. I do the same with like/dislike ratings! I think I should do more with the workflow to have one-click metadata changes. I am afraid I do not support all sorts combined with system limit. I guess I never added rating sort. If you are interested, currently supported sort types seem to be: CC.SORT_FILES_BY_IMPORT_TIME CC.SORT_FILES_BY_FILESIZE CC.SORT_FILES_BY_DURATION CC.SORT_FILES_BY_FRAMERATE CC.SORT_FILES_BY_NUM_FRAMES CC.SORT_FILES_BY_WIDTH CC.SORT_FILES_BY_HEIGHT CC.SORT_FILES_BY_RATIO CC.SORT_FILES_BY_NUM_PIXELS CC.SORT_FILES_BY_MEDIA_VIEWS CC.SORT_FILES_BY_MEDIA_VIEWTIME CC.SORT_FILES_BY_APPROX_BITRATE CC.SORT_FILES_BY_FILE_MODIFIED_TIMESTAMP I will see if I can add rating sort. I don't think it'd be too difficult, but I'll check the code. In the meantime, although it is a bit of overhead, you may be able to short-circuit the whole problem by adding 'system:rating=like on my rating service' to your search.
>>16546 Thank you. I will keep pushing at the problem, and I will make sure to stay updated with that issue. >>16547 >>16548 >>16549 >>16550 Yeah, I no longer have a system for automatic 'hard' replace. The old siblings system tried to do both soft 'display' changes and hard 'storage' replaces, but it caused more trouble than it was worth. 'hard' replace may return one day to support some advanced migration jobs, mostly stuff to do with tag repositories like the PTR. My tl;dr: about: >if theres still a way to completely replace it im open to suggestions, i find it kinda stupid to have the same tag twice :/ Is, if you can, don't worry about it too much. There isn't a significant storage/CPU problem with this stuff and there is a huge benefit in being able to undo the merge/replace if you change your mind about something in future. Tags are for searching above all. >>16555 >>16556 Yeah, it is all under network->data->review bandwidth usage and edit rules. Click the button at the bottom, 'edit default bandwidth rules', then 'hydrus service default'. I still have some funny limits in here because of database maintenance stuff. New users can accidentally fuck themselves by processing too much in their first session, and in general it is nicer for processing routines to spread things out a little, so I've kept the limit in until I can make those routines smarter. Once you've done a whack of processing like I see you have, you can take the limit off. And yeah, >>16557 is correct, that is fixed by server admins atm and is still on the old hydrus default of 100,000 seconds. Don't worry too much about it--once you have synced with ~9.5 years of data, a day update lag isn't much to think about.
>>16558 Sorry, I think this is a hardcoded error delay. It is quite rare to see that, and I would be interested in seeing more info if you have it--it may have been printed to your .log file in install_dir/db (do a ctrl+f for 'unusual update response'). Is it perhaps a proxy layer you had set up and were trying to debug? The hydrus service communications works on a slightly different system than subscriptions and the other file downloaders. You can generally force it to check again on that review services panel by clicking 'refresh account'. That does a kind of soft reset on some account and status data and boots some update daemons, letting it try whatever it was doing again within the next few seconds. >>16559 I do not think there is a way to look them up atm. However, they are supposed to show in autocomplete results (at least a/c inside a place you 'write' tags, like the manage tags dialog, where a tag with 0 count is still ok), and them not currently showing is a bug that I mean to look at. I am sorry for the trouble!
>>16560 >Can you run that shortcut report mode I mentioned? I had run the report mode,which was supposed to be the file in that post,seems it either got corrupted or my browsers failing to play it though. My apologies,not too used to recording video. Let me grab a screenshot instead. Doesn't seem to me like it's doing anything on clicks,but I might be missing something.(The initial f at the top is me going into fullscreen) Thanks again for taking the time to look into it.
(22.99 KB 430x441 ClipboardImage.png)

>>16564 Thanks! I just did the same test, and I noticed I caught the click-down event as well as the release event when I click on whitespace (pic related), but only got the release when I clicked on a rating or the inbox/archive button. I will investigate this, it seems like my buttons are not processing through the normal shortcut system.
Apologies if this is answered in the Getting Started guide, but I'm wondering how the Booru browsing works, and if I can make it work like a different program I currently use for the purpose. From reading the New User guide, it looks like I: 1 - Input a search string and select a Booru (the UI seems to call it a "source") 2 - Tell the program how many of the most recent images that have this tag to download 3 - This arbitrary number of downloads are downloaded over time, then go into my inbox 4 - Then, I go into my inbox and accept/delete images one by one The other program I use works as follows: 1 - Select which Booru sources I want to use and input a search string 2 - The program downloads the thumbnails of one page (of user configurable size) of results at a time 3 - When I click on a thumbnail to view the full-size image, that is when the full image (or webm or mp4) is downloaded 4 - If I want to keep the image, I click "save" to tell the program to save a copy of this file into a designated directory (4a) - I configured a user rule that says that if the image breaks 1920 pixels horizontally, it should be resized to the same dimensions, but no larger than 1920 pixels horizontally. An image that is too large will be downsized to fit these rules. This is to stop those retardedly huge 35 megabyte png images from bloating my storage up unnecessarily. So, for my question: I want to know if I can set up Hydrus to browse boorus and selectively download images I like. Not blindly download the most recent "x" images for a given tag search and then accept/delete the images one by one as my preferences dictate. Am I stuck with mass downloading and then saying "download 50 images for this tag, but only the images from September 5th in the order of most recent to older"?
any way to prevent specific tags from being synced with the ptr?
>>16563 no results when i search "unusual update response", any other log files that i can search?
>>16560 >Seems like 8chan sometimes cuts off the connection before it has delivered as many bytes as it said it would. I've done some poking around and it seems that 8chan sometimes returns a HTTP 206 status for the problematic images rather than an HTTP 200. My guess is that Hydrus treats it like an HTTP 200, which causes it to get less bytes than it should.
>>16566 You could browse the booru yourself in a web browser and use the extension Hydrus Companion to send the images you like to hydrus.
(22.11 KB 404x150 example.png)

could you add a sort of "locking" feature to pages of pages, that makes it so that new pages can't be added to the group until it's unlocked. This would help a lot with a problem I've been having where subscription pages or other kinds of automatically opened pages will open inside of one of my pages of pages, and I won't know where it went because I was expecting it to open at the top-level. Additionally it messes up the grouping I have when pages will just automatically open in pages of pages just because you were focused on that page of pages when the subscription finished. As for behavior, I think that if a page of pages is locked, opening a new page while inside the page of pages will just spawn the tab next to it, instead of inside it.
>In the meantime, although it is a bit of overhead, you may be able to short-circuit the whole problem by adding 'system:rating=like on my rating service' to your search. Thank you, this suffices.
Is there any way of setting a keyboard shortcut to open alternate files similar to how it is possible to view duplicates to a certain % similarity?
>>16546 ok, hdev, have an update and I think here would be a better place to ask then the git. after the first few initial hangs, 2 with starting the program up and getting all the pendings to sort out, 1 about 8 hours later when downloads failed to resolve, 3 with importing 10 watchers, I let it sit, and it had no problems after that. I then dumped 250-300 watchers into it to stress test, and it had no real issue with them. I don't know if the problem is actually fixed or if i'm getting lucky, but I am interested in if you know a reason for that behaveure. the only real thing I can think of is if whatever fix you made didn't apply as a blanket but came up each time a watcher ended, or if it didn't apply to old watchers at all.
>>16571 keep a subscription page open, either hide/remove the images it imports or keep them there, the 'open these in a new tab' function will open them in the first page with the same name it sees
>>16575 That's a useful workaround, but it's not sustainable. I'll do that for now though, thanks!
>>16576 I only have a few that auto pop up the files, the files get checked and move on. you can put the new window subs into a page of pages and just have it toward the front, I do this for a twitter bot that just reposts images, my I saved the image import, and a few artists that I want to be damn sure I see what they make. anything more than that the little notification in the bottom right lets me know if other ones caught something I want to see.
I had a not great week. Some IRL landed on me, so I was not as productive as I wanted. I did manage to upgrade the database repair code in a pretty neat way, but it is not an exciting thing that most users will benefit from immediately, so rather than do a release tomorrow, I will catch up with regular work. So, 455 will be next week, on the 22nd! I'll try and fix the UI freezes and clear out more issue tracker bugs!
(3.54 MB 3000x4000 210911163206067743.jpg)

picrandom Next time someone comes here looking for an alternative solution (one that's simple and doesn't suffer from overextension, KISS, command line etc.) point them to this [1]. Don't let the day of the last commit decieve you, the dev is just reserved I guess when it comes to that, and it's just a simple tool, too. Thank you for your service. [1] https://github.com/oniony/TMSU
>>16566 Hey, yeah, hydrus works a bit different. I generally go for 'grab everything to local, then process locally' model rather than on-demand. An important part of downloading in hydrus is not searching too broadly and ending up with more than you can process. \Another big no-no for hydrus is altering files during/after download. If a file is bigger than 1920px, it stays that way. The technical reason for this, beyond future data preservation, is to ensure users generally agree on which files are which, down to the byte, which lets the Public Tag Repository share its billion-odd tag mappings efficiently. You can't do 'look at thumbs, decide what I want' inside hydrus. As >>16570 says, you could try hooking Hydrus Companion up in your web browser and then browsing normally and sending individual URLs over to hydrus. Another thing to try is using that 'file limit' (or just babysitting the query and hitting pause when you have enough) to limit how many of a particular search you get. This can be great for non-artist queries (like 'fishnets' or 'samus_aran') to discover artists who tend to draw the things you like too. If you find you really want the other way of downloading, but you also like how hydrus searches and views images enough to want to use it just for that, maybe you could still use your old software and pipe what it downloads into hydrus? There is a thing called an 'import folder' (under file menu) that lets you set up a location to get regularly checked for files to import in the background. Most of all, I'll recommend to you what I do everyone--if you aren't sure if you'll like hydrus, just give it a go. Try some downloads, try importing some files without deleting them from their original locations, and see if you like the workflows after a week or two. If it isn't for you, no worries. Many users though have discovered they prefer what hydrus does to what they were doing before, and I think the best way to find out if that is you too is to try it out! I'll just mention last that yeah in hydrus you still select the download source before you enter the search string. The search begins as soon as you hit enter on the text box.
>>16567 Not yet, but it is coming admin side. They'll likely be blocking some garbage along with 'filename:' tags in general. Do you want the ability to stop it clientside in 'tag import options'? You can probably wangle it just by shaping the tag filter there, but I guess it depends on how big your list on 'don't parse' tags is. >>16568 Thank you for looking. No worries, I guess it didn't have anything else to write to log. It seems like the file downloaded 'ok', but then its content was incorrect. If the client has since resumed PTR work for you and seems to be working again, then we can scratch this up to an unusual network hiccup. This stuff is supposed to be auto-healing--it takes a day's break just as a safety measure (in case the server is on fire), and then tries again. If it keeps happening, let me know.
>>16569 Thank you, this is super helpful! You've done my work for me. I'll see if I can fix my network code to handle this! >>16571 >>16575 >>16576 >>16577 Thanks, I will think about this. I want to add more features to tabs, stuff like pinning as you'd have in a browser, but I also want to be careful I don't get too clever and make things just more complicated to manage and maintain. Although it isn't the answer you want, I found I drifted away from publishing to pages as I got more subscriptions and instead altered their 'tag import options' to set certain 'additional tags' processing tags to them. Now they don't publish anywhere, but I can load the files up using those tags in saved processing searches I have. Like: system:inbox limit:256 processing:aesthetic art from deviant art
>>16579 Looks great, thanks! I think the hydrus wiki has some 'alternate software' links, I should point to that and make sure there is a good list of image management alternatives. Hydrus isn't for all tasks, and it isn't for everyone.
>>16580 > There is a thing called an 'import folder' (under file menu) that lets you set up a location to get regularly checked for files to import in the background. I've set up the other program to also create a file that lists the tags for the images. Is there a way I can have Hydrus import the tags along with the images? I can configure the information file to whatever name and extension I want, as well as control how the content in the plaintext file is laid out. Thanks for the reply.
>>16582 >I want to add more features to tabs Speaking of tabs, I've found it annoying that Alt+number doesn't switch tabs like browsers do. Nested tabs makes this harder to do, though.
devanon can you add an option to automatically add tags to new files based on certain parameters, as well as remove all of a tag based off certain parameters ? for example, adding a tag to all files that are recognized as system:video be tagged with medium:video too. And system:has audio have medium:has audio be added. Furthermore, the ability to have the tag medium:video removed from all videos that areb't recognized by system:video. This can help clean up files labeled with video that aren't actually videos, etc. It can be run on new imports and so on.
I'm sure that this is requested a lot, but it would be very helpful if you could attach notes to tags like you can with files. It would help with remembering what each tag is supposed to be for and how related tags are different from each other, among other things. If this is a common request, what's in the way of it getting implemented? You already have the note system and use it for files, so that would mean the bulk of the work is done right?
>>16581 yeah the ptr is now syncing as usual, ig it was some odd hiccup
>>16581 i don't want hydrus to omit tags from certain searches, i have a tag i use to keep track of some images and i don't want it to be uploaded to the ptr in the first place as it only helps me and no one else in organization, is there a way to prevent hydrus from uploading it?
(6.80 KB 503x153 ClipboardImage.png)

Is anybody having this problem? My ptr sync was working fine up till now
>>16591 I had that same problem yesterday when I was trying to add the PTR. I assumed it was an issue with my network, but I'm not sure
>>16591 same issue here, so it's probably not us.
I had an ok week. I mostly worked on speeding up UI session save time, which should reduce periodic lag spikes for larger clients. I also did some quality of life, added 'not equal' operators to simple system search predicates, and rolled in the previous week's database repair improvements. The release should be as normal tomorrow.
>>16591 looks like it's working fine now
I'm noticing a lot of deleted files that are suddenly saying "no reason given" as their deletion reason. I haven't seen this in hydrus until now. Does the archive/delete filter not add itself as the reason when you delete files through it anymore? In what situations could a file be deleted with no reason? I have the advanced deletion reason option enabled.
https://www.youtube.com/watch?v=Gs069dndIYk windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v455/Hydrus.Network.455.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v455/Hydrus.Network.455.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v455/Hydrus.Network.455.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v455/Hydrus.Network.455.-.Linux.-.Executable.tar.gz I had an ok couple of weeks. Some quality of life is improved, the UI should save sessions a bit quicker, and the database repairs itself more of itself. Your client may warn you about a missing index on first boot. If it does, that's great--some new repair code is working! session save Some users with large sessions (typically around 2-3+ million 'weight') are experiencing severe UI lockups and general lag. This week I deal with part of that problem by greatly reducing the amount of CPU needed to save most sessions. Now pages know if they have been changed since being loaded, and if they have no changes, they can skip a bunch of session save work. There's nothing you have to do here, but if you have been experiencing 12+ second freezes every few minutes, please let me know how you get on now. I can't promise things will be perfect, but if you have any large and inactive downloader pages, you should notice things running a bit smoother (exiting the program too, should be faster). There is still a problem of lag and lockups when there are 200+ downloaders in the session. This is a different and unfortunately more severe problem that I have relieved in recent weeks but needs some other large work to completely fix. Best solution for now is to clear out finished downloaders if you can. misc Many of the simple system predicates, like height and filesize, now support the '≠' (not equal) operator! This is still in the early stages, but I'd like to add some options of the thumbnail menu so you can say 'find files that (do not) have this file's precise resolution/duration/size' etc... You can now copy thread subjects to clipboard in the watcher downloader page list! The advanced file deletion dialog now remembers the last reason you chose! The network job widget (which shows download progress, you see it on any downloader) now shows the current URL it is working on under its cog menu. You can click it to copy to clipboard. May help to debug some odd network errors etc... The way data sizes over 1KB are rendered has been overhauled. It should now generally be to three significant figures, so 3.11MB instead of 3.1MB, 12.3GB instead of 12GB. See if you like the change, and if not, try tweaking it to 2sf under the new EXPERIMENTAL option in options->gui. database repair tl;dr: Boot checks are better, you don't have to do anything. I have spent most of my 'cleanup' time this year breaking the client database into smaller modules. These modules are now responsible for their own repair (which happens on boot), and they do much of it in a neater automatic way, using the same set of definitions it uses to initialise on first start to check whether an existing database is missing anything now. Most of my old hardcoded 'oh, you are missing this table' code is now simplified and modularised, works more reliably, and will be much easier to maintain in future. You may get a popup when you boot saying you are missing one or more indices. There are several legacy reasons why this might be the case, but most often it will be because you once recovered from former hard drive damage and a clone/recover was unable to rescue an index. Whatever the case, these can now be regenerated automatically (they store duplicated data, so can be regenerated 100%), so please let it run. You might even notice PTR processing working faster afterwards. Many tables can also be regenerated, and some can be completely repopulated. It is now possible (though not a great idea!) to start a client without a client.caches.db or client.mappings.db file and have it recover to a bootable state. Error presentation around this is improved, with instructions on what to do next in the case of critical problems. I will continue modularising more of the database and fleshing out this repair code to cover more of the schema!
full list - misc: - many of the simple system predicates (width, size, duration, etc..) now support the '≠' (not equal) operator! searches only support one of these at once for now (e.g. you can't say height != 640 AND height != 1080--it'll pick one of these pseudorandomly) - the watcher page list right-click menu now has 'copy subjects', which copies the selected watchers' 'subject' texts to clipboard - the advanced file deletion panel now remembers which reason you last used. it remembers if you selected the 'default' value up top versus specific reason text, and if you enter custom text, it remembers that for next time too - the network job widget now shows the current URL as tooltip over the progress gauge, and under the cog menu, where clicking it copies it to clipboard - the various menu labels across the program should now show ampersand (&) correctly (e.g. in URLs) - the way byte sizes (like 21.7KB or 1.24GB) above 1KB are rendered to strings has been overhauled. they now generally show three significant figures. a new EXPERIMENTAL option in 'gui' options panel lets you change this, but only 2 or 3 are really helpful - if a repository clears the message on your account, you no longer get a popup telling you 'hey, new message from server x: ...' - the new ≠ system preds should be parseable (but be careful, likely buggy) using the client api's new system predicate parser, with '≠', '!=', 'is not', or 'isn't' - cleaned up some old data presentation methods and improved how client specific options are patched in to base hydrus string conversion code - . - ui freezes: - session pages can now detect if they have had no saveable changes since a certain time. they use this ability to skip redundant session save CPU time for pages with no changes since the last session save - for now, since the smallest atom of the session system is a whole page, gallery and watcher pages can only save time if _every_ downloader in the page has had no changes, so in their case this optimisation mostly only applies to completely finished/paused pages. it is still better to have several medium size downloader pages than one gigantic one - a new database maintenance task ensures that optimisation cannot accidentally lose a page (from something like an unfortunate timing of a session save after many manual session deletes) - the existing optimisation that skips 'last session' save on no changes now initialises its data as the 'last session' is first loaded (rather than on first save), meaning that if there are no changes while the client is open, no new 'last session's will be saved at all - misc session save code cleanup - . - database repair, mostly boring: - a client can now boot with client.caches.db missing and will rebuild that file. almost all of its tables are now able to automatically repopulate (issue #975) - all the new modules I have been working on are now responsible for their own repair. this includes missing indices, missing tables, and table repopulation where possible. modules now know which of their tables are critical to a boot, what version each table and index was added, and now manage both initial and later-created service tables and indices - essentially, all newer database repair code is now modularised rather than hardcoded. the repair and creation code actually now share the same table and index definitions. the code is more reliable, checkpoints its good work in case of later failure, and will be much easier to maintain and expand in future - lots of module repair and initialisation code is refactored and generally given a full pass - the core mappings cache regeneration routine now takes transaction checkpoints throughout its job to save progress and reduce journal size - master definition critical error detection code is no longer hardcoded! - mapping storage repair code is no longer hardcoded! - similar files repair code is no longer hardcoded! - parent or sibling cache repair repopulation is no longer hardcoded! - the local hashes cache module can now repopulate itself during repair - the notes fast search table can now repopulate itself during repair - the similar files search tree table can now rebuild itself during repair next week I'm not really happy with my productivity over the past two weeks. This repair and session save worked bogged me down a bit, but I also didn't get as many hours in as I had planned. In any case, I will try to prioritise smaller bug fixes next week. Keep on pushing.
>>16596 Thank you for this report. I will check if this is somehow not working. Normally you only get that for very old files, but perhaps in some cases the reason is not sticking. >>16591 >>16592 >>16593 >>16595 I understand it has been up and down a bit for maintenance and additional backup. If you have noticed more 'server is busy' responses recently, I'm going to look at that soon with the guy running it. Seems like it is spending too much CPU on some maintenance jobs.
>>16584 Yeah, in the import folder edit dialog, check out the 'filename tagging' section at the bottom. Inside is a checkbox for 'try to load tags from neighbouring .txt files'. There's a help button to explain it. This panel is basically the same for manual file imports when you click 'add tags before import', so do a test with a manual import first to make sure you have it set up all correct how you want. >>16585 Ah, that's an interesting thought. I'll see about some shortcut actions for nth tab selection and maybe 'move up/down' or whatever makes sense. >>16586 Thank you! I always lose that link, I'll put it in my help!
>>16587 Yes, I really want this. My big plan here is to make a 'file metadata algebra' object that will apply a set of rules you define on any file--like 'it is a video'--and then put that object as a filter in all sorts of locations. We could do tag migration, file delete, automatic tag application, changing thumbnail border colours, view options, all sorts. I can then add more rule types to this singular object and add filtering capability to all sorts of systems across the program. When I have time for some larger work, I'll be able to get this going. >>16588 A tag wiki or similar definition metadata is a common request. As always, the main reason why anything is not yet in hydrus is just lack of time. Everything takes longer than expected, especially anything that needs UI. Your request is simpler, just plaintext notes. I will consider whether I can do your request as a neat stepping stone to the more sophisticated structure. >>16590 The best answer for now is to add the tag to a local, non-PTR service. You can add multiple local tag services under services->manage services, if that helps keep different classes of private tags organised. The tag will work in searches alongside PTR tags as long as the search domain on your search page is 'all known tags'. There is no filter that will stop you from accidentally entering that tag in the PTR panel in manage tags dialog yet, but there will in future be a clientside tag filter for tag services that will.
(69.88 KB 541x647 Screenshot_20210922_232159.png)

(101.07 KB 1366x768 Screenshot_20210922_231940.png)

(118.28 KB 1366x768 Screenshot_20210922_232009.png)

(1.32 MB 3056x3024 Anonfilly.jpg)

Error when trying to change Qt stylesheet in a vanilla install. This only happens ONCE. The next bootings will not show the error. How to reproduce: 1- Decompress a vanilla folder (brand new install) of Hydrus.Network.455.-.Linux.-.Executable.tar.gz 2- Boot the "client" 3- Go to File/Options/style 4- Change the Qt stylesheet to "DarkerDuck (darkorange).qss 5- Get the error Booting again the client and repeating the above steps will not show the error again.
>>16601 i created a new service, what now? i tried the migrate tags option but it doesnt seem like it will actually migrate tags, only "mappings", whatever that is.
(6.40 KB 500x141 client_pvHmoXxkRX.png)

>>16601 not sure if it's worth noting that I got this upon updating to v555 I'm not sure what it even means, it might be worth explaining better on a wiki page, then adding a "learn more" link to that wiki page. Also a localized copy of the wiki, kept updated, in hydrus that users can view while offline would be cool.
Does Hydrus not do differential backups, but instead try to backup the entire thing again? It seems to take quite a while to backup, when only a few files are added and the last backup was only a day ago. Also can we please get an option to verify data base backup integrity/repair database backups.
>>16561 Not him, but I also have a problem with how the limit works. No matter what the sort is, if I add the limit:N, it'll show the N latest images, sorted by the selected method, while I need them to be sorted first and then limited from the beginning of the set, rather than its end. Is there a way to achieve that?
Do the siblings and parents even work anymore? I added a sibling for the "testing" tag, but it still shows up as "testing" and right-clicking on the tag shows "no siblings" despite them being in the list. That red warning, is it bad? It's been like that for a long time, I don't think it's even trying to finish anything. The siblings and parents I added a long time ago work fine. Did I mess up some settings? I remember deleting all PTR updates and disabling the sync once I completed it, but that was also a long time ago.
I've been trying to update some yande.re downloads with pool and page number information, but when I re-download the files with Hydrus Companion, the tags aren't updating. So far I've checked: The parser I wrote can retrieve the name and ID of the pool (yes, but not for the first and last pages which I'll have to troubleshoot later.) The tag download options have been set to "force page fetch even if url/file are already in the db" Tag whitelist includes the tags I want URL class link is correct yande.re parser is up to date Test parsing the data in "manage parsers" is successful I have no idea what else to check. Any ideas would be much appreciated!
>>16569 >>16582 Just to follow up here, I checked this out and was able to get 8chan.moe to give me a 206 if I submitted a range header in the request, and my not handling 206 properly does seem to be the problem. Unfortunately my current network pipeline doesn't want to bundle and stitch multiple requests into one response, but I will figure out a rewrite to get this to work. Thanks again for your help!
>>16602 Thank you for this report. The way I populate that style list is a bit borked due to the nature of me using python Qt and then wrapping it inside a PyInstaller environment, so I wonder if it is getting name hints from the OS Qt but is then unable to access them when explicitly called for. I thought I had a hack to deal with this, but seems like it happened again. At the very least, I will brush up the error handling here. Seems like it is moaning about not being able to set something it already has but can't name. >>16604 Great, this is the new repair code working! You have nothing to worry about, and with luck you should find some searches or file result loading should work faster now. Keeping the help updated is a constant battle. Linking to longer explanations from dialogs is something I have tried with places like the siblings and subscriptions dialogs, but I was never super happy how the 'help ------> [ button ]' links worked. I'll have to keep thinking about it. I'm sorry to say I'm not the most tenacious and conscientious person, so the documentation follow-up is often lost to work on the next feature.
>>16603 I'm afraid I am not totally sure what you want to store/migrate, so I can't be too precise. Do you have a lot of 'pending' tags on the PTR that you don't want to upload, so you now want to migrate them to your local service? A 'mapping' in hydrus-speak is a single tag-file pair. Like 'samus aran' goes on (this file). If you migrate mappings, you are moving all the tags. If you want to move your pending tags from PTR to your new local service, if you just have a couple of unique tags to move, it might be easier to do it with manage tags dialog, but if you have hundreds of different tags to move, it might be easier with migrate tags. As the migrate tags dialog says, please make a backup and be careful, but you'd probably want something like: mappings | PTR | current and pending/my files/all tags (or a careful whitelist of what you want to pull) | add | my local tag service However I do not think migrate tags can do 'rescind pend' action yet, so if you have a lot of pending you do not want to commit, you may have to un-pend it either by forgetting everything under the pending menu up top, or by going in to manage tags anyway. Let me know if the problem of what you want to store/migrate is different. If you haven't created any of these custom tags yet, then you don't need to use 'migrate tags', you can just start adding tags to that other tag service using the new tab on manage tags. A quick shortcut on manage tags to jump between tag services is to press keyboard up/down arrow while the cursor is focused on an empty tag input box.
>>16605 It updates media files efficiently--it only updates a file if its filesize or modified date has changed, which usually means it can skip everything already there--but the database itself can get pretty huge if you sync with the PTR, like about 40-50GB, and since their modified date changes regularly, they'll always need to be overwritten on a backup call. If your backup needs are getting serious I strongly recommend you move to an external program like FreeFileSync, which will always be able to do a nicer backup than I can hack together. Being able to verify and repair backups is an interesting idea, thanks. I'll make a job for this.
>>16606 Hmm, I am afraid I am not sure I exactly understand your problem. This sorting tech does need an F5 if you change the sort to refresh the search, otherwise changing the sort will just change the N files in front of you. Normally, if you say 'filesize, smallest first' and 'limit:64', then you'll get the 64 smallest files. Flip it to 'filesize, largest first' and hit F5, you'll get the 64 largest. Do you get something other than this? Or do you get this, but you expect a different behaviour? When you say 'N latest images', does that mean it always seems to give you the Nth newest files sorted by 'time imported, newest first'?
>>16607 I rewrote the system some time ago so it spreads out CPU work in the background, doing one or two siblings every five seconds or so, rather than doing everything in huge monolithic jobs. This was part of the 'virtual' siblings and parents overhaul. Please hit up tags->sibling/parent sync->review... to see how you are doing. I assume it has a whole bunch of rules to process for your PTR rules. When it has, that text will be green, and then any changes from that dialog will occur within seconds of oking that dialog. The answer here I think is just give it time or tell it to 'work hard now!' in that review dialog. If it is basically completely caught up but doesn't seem to be doing the last handful of rules unless you hit 'work hard now', let me know.
>>16608 Hmm, one useful debug mode when testing in the wild is help->debug->report modes->network report mode. That'll spam a whole bunch of info about which URLs are being hit and then which parsers are dealing with them. It can expose URL Class match or link problems. I realised recently that I need to hang more inspection commands off of import objects in the 'file log'. If you could see all the current hashes, urls, and tags on an import object, that would make a bunch of this easier to figure out.
>>16615 Thanks! I enabled the network debug mode and tried the URL downloader, and this time it worked, and I could see that it was using the correct parser. I tried Hydrus Companion again, and it didn't update the tags. Perhaps Hydrus Companion is blocking repeat downloads for files that it recognizes as already being in the database. I could swear I've used it for this exact purpose in the past though..
I updated my manjaro linux install yesterday. Now Hydrus Network can't find mpv. I installed arch today and it's also broke on there. It use to work just by installing mpv. Arch/Manjaro do not have an mpv-libs or mpv dev package because there mpv package comes with everything. It should work after installing just mpv.
(49.38 KB 789x401 ClipboardImage.png)

(119.50 KB 784x1169 ClipboardImage.png)

>>16614 I remember that virtual update, I think it worked fine for me. I don't see the work hard button on either tab here. The text here is green, but it's still red on the screenshot from my previous post, and that sibling still does not apply. Here's also my PTR status, not sure if relevant. I certainly don't want to redownload everything and keep in sync with it, I'm fine with what I have now. I press the "process now" button, but it doesn't seem to start doing anything.
Recently I've noticed parents of ideal siblings not being properly applied to unideal siblings (i can see them in manage tags, but search treats them as not being present). Is there some kind of maintenance I can run to fix this?
I was going to try importing 1tb+ of images and syncing them with the tag database. I have no experience with hydrus, is my potatoe going to explode? What potatoe do I need to try such a feet with hydrus?
Hello, it's >>16305 again. So, I have syncing issues again... Tried my usual solution, this time, it did not work though. Error message is as follows: >An unusual error has occured during repository processing: an update file (8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance to fix them, or tell it to do so manually, before unpausing your repository. >Traceback (most recent call last): > File "/opt/hydrus/hydrus/client/ClientServices.py", line 2039, in _SyncProcessUpdates > raise Exception( 'An unusual error has occured during repository processing: an update file ({}) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance to fix them, or tell it to do so manually, before unpausing your repository.'.format( content_hash.hex() ) ) >Exception: An unusual error has occured during repository processing: an update file (8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance to fix them, or tell it to do so manually, before unpausing your repository. Already did a full metadata resync, regenerated hash cache and restarted the client, did not fix it. Also, I removed the update file with that hash, it downloaded it again afterwards. I did the maintenance job too, still occured afterwards. Any clues on what might be wrong? I can still upload to the PTR despite being 50 updates behind, is that intended? >>16620 Not devanon, but here are some common issues people have with hydrus >It has it's own directory structure, no, you cannot symlink it, import and delete your files (please make sure you actually like hydrus first!). If you want to keep your structure, you need your images twice. >Hydrus is (allegedly) not magic, so you cannot look at all those images at once. Having them managed by hydrus is not an issue, but don't expect to look up system:everything with that kind of dataset >File importing will take ages. I imported about 5 million images, that took around 5 months (might have been optimized since then). >On each import, hydrus needs to calculate the checksums for all of those images, do multiple DB entries, etc... >Depending on your commitment, filtering all those images will also take forever. However, there are great tools that you can use in hydrus (for example, searching for similar images). Some tips that you might not otherwise not do right away: >Make a new tagging service for imported tags. That will help you later when you want to see what tags were imported vs which you entered. All tags that were imported go into that tagging service. >Put all imported files into your inbox. Yes, you like your images, but you can bulk-archive them later, having them all in your inbox helps you categorize which ones you did not already look at. >Put all relevant information into tags. Filename, directory names, if you have some metadata, convert tags to .txt files and rename them so hydrus can automatically add them. Any other metadata (for example, gallery-dl info jsons) should be somehow linked to a checksum (SHA1, SHA256, SHA512, MD5) of the file, so that you can link them later. The only way to find a file in hydrus easily is by it's checksum! >Make import folders (file > import). Why? So that when (not if) hydrus crashes, you don't need to re-enter your settings. It also remembers the paths of all files, so you don't need to rescan them. You can even run multiple import folders! >BACKUP. YOUR. DATABASE. You have no directory structure to rely on. ALL metadata is in the DB, back it up at least monthly! Imported files are only really there once you have them in a reliable DB backup! Otherwise, they are in the hydrus data directory, but hydrus knows nothing about them, they won't show up in searches. If you want to sync to the PTR, have an SSD (or NVME SSD) with 150GB storage (PTR takes far less, but having that many files locally might bloat your DB to that size - talking from experience). Processing will take a while (weeks), but that probably works in the background next to your imports. You probably want to split up your data from your DB and thumbnails, see https://hydrusnetwork.github.io/hydrus/help/database_migration.html#different_drives Thumbnails can go on a HDD if you can live with a couple of seconds of delay before a page has all thumbnails loaded, but they are pretty small, so they can be on an SSD too. If you can, put the source images and hydrus file-directory on the same drive and the same partition, because otherwise, copy operations will take forever.
>>16617 there's python-mpv in AUR you can use it.
I had an ok week. I eliminated more UI lag, added downloader support for a special kind of URL, and fixed some more bugs.
>>16623 Thanks for all your hard work! Are there any plans to be able to right-click tags and add them as a downloader or subscription? In such a case, it'd be useful to also know what tags were added as a downloader in the past (in fact, this latter feature would be useful all on its own as its very clunky to avoid redownloading a tag that sucked but you forgot about).
https://www.youtube.com/watch?v=MxaD8_Vazpo windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v456/Hydrus.Network.456.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v456/Hydrus.Network.456.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v456/Hydrus.Network.456.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v456/Hydrus.Network.456.-.Linux.-.Executable.tar.gz I had an ok week. With luck, the client should have less UI lag, and I also fixed a bunch of stuff and improved some quality of life. basic highlights I removed some very hacky memory management code this week. It was eating far more CPU than it was worth, particularly for large clients. If you have a very heavy client, particularly if it has lots of heavy subscriptions, please let me know if you A) have fewer UI lockups, and B) see any crazy memory spikes while running subs. As bad as the old routine was, it was aggressive and effective at what it did, so I may have to revisit this. All multi-column lists across the program now catch enter/return keystrokes and trigger an 'activate' call, as if you had double-clicked. Should be easy to navigate and highlight a downloader page list just with the keyboard now. advanced highlights The 'file log' window now lets you see and copy an import item's hashes, tags, and urls from its right-click menu. I hope this will help debug some weirder downloader problems and generally inform on how the downloaders work. The Edit URL Class dialog has had a layout makeover. Also, URL Classes now support matching and normalising 'single value' parameters (this is where you have a token/keyword parameter rather than the traditional key=value pair). The hydrus server now remembers custom update and anonymisation periods! Previously, it was resetting to defaults on a restart! Thank you for the reports here--I apologise for the inconvenience and delay. I added an 'mpv report mode' to the debug menu. If mpv loads for you but you have silent audio or similar (and perhaps some crashes, but we'll see if this catches useful info in time), this'll dump a huge amount of mpv debug information to the log. full list - misc: - the client no longer regularly commits a full garbage collection during memory maintenance. this debug-tier operation can take up to 15s on very large clients, resulting in awful lag. various instances of forcing it after big operations complete (e.g. to encourage post-subscription memory cleanup), are now replaced with regular pauses to allow python to clean itself more granularly. this may result in temporary memory bloat for some very subscription-heavy clients, so feedback would be appreciated - right-clicking on a single url import item in a 'file log' now shows you all the known hashes, parsed urls, and parsed tags for that item. I hope this will help debug some weird problems! - all multi-column lists across the program now convert an enter/return key press into an 'activate' command, as if you had double-clicked. this should make it easier to, for instance, highlight a downloader or shift/ctrl select a bunch of sibling rows and mass-delete (issue #933) - the subscription gap filler button now propagates file import options and tag import options from the subscription to the downloader it creates (issue #910) - a new 'mpv report mode' now prints a huge amount of mpv debug information to the hydrus log when activated - improved how mpv prints log messages to the hydrus log, including immediate log flushing - fixed a bug that meant the hydrus server was not saving custom update period or anonymisation period for next boot. thank you for the reports, and sorry for the trouble! (issue #976) - cleaned up some database savepoint handling after a serious transaction error occurs - the client api now ignores any parameter with a value of null, as if it were not there, rather than moaning about invalid datatypes (issue #922) - . - url classes: - the edit url class dialog is now broken into two notebook pages--'match rules', which strictly covers how to recognise a url, and 'options', which handles url storage, conversion, and normalisation - url classes can now support single-value parameters (a parameter with just a value, not a key/value pair). if turned on, then at least one single-value parameter is required to match the url, and multiple are permitted. a checkbox in the dialog turns this on and a string match lets you determine if the url class matches the received single value params - added unit tests to test the new single-value parameter matching - fixed an issue where StringMatch buttons were not emitting their valueChanged signal, guess how I discovered that bug this week - fixed the insertion of default parameter values when the URL Class has non-alphabetised params - refactored and cleaned up some related parsing and string convertion code into new ClientString module
[Expand Post]next week More small jobs and bug fixes. I would also like to seriously explore and plan out an important downloader pipeline rewrite that will reduce UI lag significantly and allow for hundreds of downloaders working simultaneously.
Is there any benefit performance wise to using multiple download gallery pages vs a single download gallery page? I've been adding tons of tags to a single downloader gallery.
>>16625 Hopefully the siblings & parents will be fixed as well. >>16613 Oh, so it requires F5, I got now. Was it mentioned in the docs? I can see why re-sorting the current batch might be useful though, but it's a little inobvious.
>>16616 I've since added in the recent 456 that thing where you can right-click on 'file log' items to see what tags they have. This should let you see if tags are being parsed in any downloader that gets queued up, but it won't show tags that are force-added externally on a per-service basis (e.g. via the API, or the 'additional tags' section of a tag import options sub-panel). >>16617 >>16622 Hydrus needs libmpv1, which is slightly different to mpv. Getting the right versions lined up can be a real pain here, as some versions of 'python-mpv' wrappers cannot talk to some versions of libmpv1. Afaik, in Linux, python-mpv 0.4.5 should be able to talk to the latest libmpv1 you get with apt-get. pip3 install python-mpv==0.4.5 sudo apt-get install -y libmpv1 But I don't know anything about Manjaro or Arch, so ymmv.
(15.50 KB 682x335 ClipboardImage.png)

>>16618 Ah, shit, your sync on that service is paused for PTR processing. Normally it would be like pic related. I am not sure why process now is not kicking anything off. There was a bug in some of this code a few weeks ago, when I triggered the sibling and parent reset, with either siblings or parents not working as expected (I think until you restarted the client or something), so if you are on an older version, please try 456, I may have fixed it. >>16619 Can you please check your sibling/parent display sync, as I want talking about with another user here >>16614 ? Are you completely synced, or is there work to do? If there is work to do, then with luck those are just out of sync tags and will fix themselves. If it seems like you are completely synced, then something is unfortunately broken. If it is broken and you don't want to fix the huge PTR, but a smaller/local service, then you'll want to try database->regenerate->tag display mappings cache (all, deferred), and then select just that small service to regen. If it is PTR, let me know and we'll have to figure out something else. >>16620 My best general advice is to try hydrus with 500-1,000 files to start with. There is a way to import them to hydrus without deleting them from their original location, which makes it harmless. If you don't like hydrus, you can just delete it and never use it again, no harm done. Go through my getting started guide to learn the hydrus principles of inbox/archive and how to tag: https://hydrusnetwork.github.io/hydrus/help/index.html 1TB of files is no problem, it just depends on what you want to do with them. >>16621 has the right idea about SSDs: no SSD = no PTR
>>16624 Yeah, I'd love to do something like this. I want it so you can right-click a downloader page query and have it say 'hey, this is in xxx subscription' or 'add this to x, y, z subscription' so you can do basic sub preview and editing without having to load the dialog. I'm close to getting this working, when I broke subscriptions apart earlier in the year it became feasible, I just need to find the time. Unfortunately I cannot tell you if a tag is subscribed yet as the hydrus downloader engine has no way of working back from a query in a sub to a tag, so it can't tell if 'character:samus aran' exists in the sub as query text 'samus_aran'. I expect we'll be able to fudge some solutions in future though--most of the time, the text will line up ok and/or with a sibling. Right-clicking a tag to open a new downloader is an interesting idea. I do this myself already, sort of, by going something like right-click->copy->subtag and then pasting it into a downloader page I have on standby. That isn't as convenient as doing it straight from the menu, I'll think about this--maybe only for currently open downloader pages, to keep it small and easy to work with? >>16626 Yeah, generally several smaller pages is better than one big one. Just for boring technical reasons. Things break down when you have about 200k total URLs in one page, so see if you can keep it below that. About 100 watchers in a watcher page is similar. I'll have improvements to mass downloader performance and 'lots in one page' for session saving in future. >>16627 Thanks, I don't think I document the sorting+limit well in the help yet. I will make sure to give it a pass.
>>16629 >>16619 here, that somehow made it worse! I was fully synced, so I ran the regeneration and let it sync again and now tags that previously weren't displaying that issue suddenly are. Possibly pertinent information: I was a previous PTR user and I recently removed the service (I realized it was making life harder rather than easier for me). I was having issues like this with a few things that were solely on local tags even then though, iirc.
(295.79 KB 1387x1617 67xdd7.png)

>>16628 >Hydrus needs libmpv1, which is slightly different to mpv. Getting the right versions lined up can be a real pain here The Linux's dependency hell.
>>16630 >>16627 Actually, applying system:limit while sorting by tag as number namespace gives me a different set of images on every F5. That's weird. Fortunately for my purposes I can just use the import time sorting instead.
>>16629 I'm on the latest version, the sibling problem is still there. I also have pending upload to PTR, but it won't let me do that, since I no longer sync to it (makes sense). I'm confused, why should my local siblings be tied to PTR status? Is there a way for me to fix it without resuming the sync and redownloading all that awful lot of data? I just want to continue working with that I have now (I synced 100% with PTR a long time ago and then stopped it).
Is it possible to change the default export location? Hate having to change it every time.
>>16628 Arch doesn't have a libmpv1 package it all comes bundled when you install mpv. Other programs that need libmpv like qimqv and celluloid were working just fine with only Arch's mpv package installed. So, I think it must have something to do with python-mpv. It doesn't matter anymore though. I'm too busy to mess around with arch. So, I just installed Fedora. Hydrus Network works just fine with its mpv-libs package installed.
>>16631 Damn. You did the deferred regenerate call? How does your tags->sibling/parent sync->review maintenance look? Does it think everything is synced there? >>16632 >>16636 I was actually talking with another guy the past week about hydrus on Arch, which for him (running my ubuntu-built package) recently broke. It doesn't really apply to your problem, but as background, he said getting the AUR hydrus package (which another user maintains) fixed it all. Apparently Arch rolled out an unusual version of libgio or glib2 or something in an update, and it made loading libmpv1's .so break during pyinstaller's pre-boot. >>16633 Yeah, I am afraid I only support the nice system:limit sorting on simple sorts. Stuff like filesize or import date I can pull really quick from the database and sort before I load results, but tag sort needs me to load the full media object (which you see when a search adds up blocks of results in 256-file blocks in the status bar), so I can't do it fast. I've updated the help to talk about this tomorrow. I may add some UI too.
>>16634 Aha, did you ever apply your PTR siblings and parents to your local service? If you have some red text in tags->sibling/parent sync->review maintenance talking about 'waiting on PTR to process', that would explain why it doesn't want to start. And if you paused the PTR, then it'll wait forever. Please check tags->manage where tag siblings and parents apply. I assume that your 'my tags' service has the PTR siblings and parents on it. If you don't want this, then remove it and I think your sibling+parent sync will resume ok. If you do want the PTR siblings and parents, but you don't want the mappings, this should be doable on a more recent version of the client. Please check services->review services and your PTR tab. If your 'processing sync' section has four progress bars, then please pause mappings but resume parents and siblings, and then allow your client to sync with the PTR again. If you don't want to sync with the PTR at all, but you want to keep what you did sync, I am afraid I don't support that at the moment. I mostly assume they are live services, so some things get disabled when they are in error states or otherwise paused. I think your best bet in this case would be to use tags->migrate tags to copy the tags, parents, and siblings to a new local tag services to be a 'frozen' copy of this data. Let me know how you get on. I may have misunderstood something!
>>16635 Try options->files and trash, should be 'default export directory' option. Let me know if it doesn't work!
I had a good week. There's more UI anti-jank work, with a smoother menubar and better minimise-to-tray support, faster png file import, and some quality of life. The release should be as normal tomorrow.
(24.76 KB 669x334 ClipboardImage.png)

>>16637 Yes, I did the deferred regeneration call. I even did it again for good measure since it's fast on such a slim tag service (I didn't take any parents or siblings with me from ptr) and still no luck. I wonder if it has to do with the fact that I always fix sync using the "work hard now" button? I don't like dealing with the client locking up intermittently while I browse or tag so I prefer to let it spend however long to get it all over with at once. I do keep my client up to date, so there shouldn't be problems to that end, either. Thank you for taking the time to talk me through this.
>>16639 Yep, that worked just fine. Honestly forgot about the options menu in the file tab. Found out how to change the default gallery download source too which I had been trying to figure out, so thanks for that too.
>>16637 Do you have any suggestions for me to try? >>16621
>>16591 Is there any way to have the dupe filter go through pixel-for-pixel duplicates before showing similar files?
https://www.youtube.com/watch?v=T4D3Qmn0nuY windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v457/Hydrus.Network.457.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v457/Hydrus.Network.457.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v457/Hydrus.Network.457.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v457/Hydrus.Network.457.-.Linux.-.Executable.tar.gz I had a good week. Some UI jank should be much better! highlights I reworked how the menubar menus (file, network, pending etc...) update this week. They update labels and swap items in and out more efficiently. Most importantly, the 'pending' menu should now update with no flicker at all, so if you have a bunch of downloaders/subscriptions running and continually pending new tags, you should be able to commit and upload with no trouble! Let me know how it works for you. I also removed some ancient and now obsolete safety checks that stop the client from updating certain UI while the program is minimised. With luck, when you restore the client--and more significantly, when you restore it from minimised to system tray--there should be less judder, and hopefully no freezing, since the client no longer has to catch up with hundreds or thousands of updates. If you minimise to system tray and have had hangs, let me know if the situation is better now. Also, if you suddenly get popup message sizing problems or similar UI jank after minimising or putting the client on a virtual desktop or similar, please let me know. The client now uses much less CPU to parse and import png files! I updated the mid-tier file searching help here: https://hydrusnetwork.github.io/hydrus/help/getting_started_more_files.html full list - smoother menubar updates: - improved the way the menubar menus update. rather than generating a whole new (e.g. 'pages') menu and replacing the existing out of date one, now there is a static menu skeleton that has subsections or labels updated in place. this means fewer objects changing, less flicker/jank, and should allow you to upload pending even if you have, say, a bunch of subscriptions running - . - misc: - thanks to a user's help, the filetype parser now detects pngs (this mostly happens during import) much faster! the problem previously was determining if a png is actually an apng--figuring out if they are truly apngs is now done with very fast file header scanning, rather than the previous method that booted ffmpeg. this brings filetype parse time for pngs down from 50-150ms to 1-2ms - getting apng metadata is also now faster. num_frames is now pulled from the file header, it no longer has to be manually counted by ffmpeg - clicking the session weight item in the 'pages' menu now gives you more detailed info on your session weight, including on currently closed pages in the undo list - stripped out a lot of ancient wx-era safety code that stops the client from doing certain UI work while it is minimised or minimised to tray. also brushed up some ugly update routines for menus refresh and modal message presentation that could lead to a pile-up of updates as soon as the client was unminimised, causing lag or freezes. with luck, the client should be better about restoring itself from minimised to system tray. if you minimise to tray, feedback on how this works out for you would be appreciated - when a network job stalls with the 'this domain had some errors recently' message, the cog menu on the widget now allows you to 'scrub domain errors' and try again immediately - if your search has system:limit, then any tag search you type in the autocomplete will now search the database, not your thumbnails. previously, the hack to enable this behaviour was to flip 'searching immediately' off. let's see if this new behaviour is ultimately confusing/annoying, I am mixed on it and think this subtle search option needs more thought and UI to make it more obvious and user friendly - if you have autocomplete tag search typed, and results from thumbnails displayed, and you flip 'searching immediately' off, the search will now automatically update and give you full database numbers immediately - . - help: - I moved 'searching with wildcards' from the advanced help to the 'more getting started with files' help here: https://hydrusnetwork.github.io/hydrus/help/getting_started_more_files.html - I also wrote a more detailed description of what the autocomplete dropdown buttons do in that page - I also wrote a brief description of how a system:limit query will try to clip according to the current file sort, getting the n 'biggest files' and so on - . - boring code cleanup: - cleaned some network job widget update calls - improved some misc autocomplete search status tracking - improved some account object permission checking and tests. accounts now never say they have permissions (e.g. if you click the 'see account permissions' button on review services) if they are banned or expired - file and pages menus now uses the new update routine - pending menu now uses the new update routine, with an emphasis on anti-jitter so you can interact while it is updating - database, network, service, and undo menu now use newer async update code and also use the new update routine - cleaned up help and tags menu init code
[Expand Post]- the signal that causes the pending menu to update is now only sent on tag changes if the tag service is a repository (previously, local-only updates were janking this for no reason) - the pending menu now updates its sibling/parent numbers when repository processing causes a clever row change to stuff you have pending - also, some menubar items that only show when in advanced mode now update their visibility when advanced mode is flipped on or off - misc menubar code cleanup and improvements next week I've got many little jobs in my immediate todo list, so I'd like to keep working like this. A grab bag of misc items, and some github bug reports. Windows 11 is rolling out now. My understanding is that it runs hydrus fine, but there may be a couple of UI bugs around things like the taskbar. I will update my dev machine to 11 and will try to fix any problems. If and when you update, please let me know if you have any trouble!
>>16641 hmm, I am afraid I am not sure. By that, it looks like everything should appear as expected. Can you walk me through a specific example of one of the errors here? What does the sibling relationship in manage siblings look like, and how does it actually show? You can rename the tags to stay private, but what is the basic look here? Is it like: samus_aran -> character:samus aran samus aran -> character:samus aran But when you look at your files as thumbnails, you still see 'samus_aran' and 'samus aran' in the tags on the left?
>>16644 Not yet, but this is the next thing I will do in the dupe backend. I'd also like to introduce the first optional automatic resolution rules, since pixel dupes are sometimes (e.g. a jpeg and a png) trivial to solve. >>16621 Damn, sorry, I missed your error. This error is raised when an update file is registered to the database as a content update but when it is loaded it turns out to be a definition update, or vice versa. Please hit up database->file maintenance->manage jobs--do you have a bunch of files waiting for a metadata rescan there? That is where the database would figure out that what it had had been incorrectly parsed the first time around. (Although, I am not sure how this originally happened). It might be the file maintenance job was in place but got cleared when you deleted the file, so we might as well add it again. Go to 'add new work' on that dialog and click 'all repository update files' and then select the 'regenerate file metadata' job and click 'add job'. You can hurry that new work along in the 'scheduled work' tab. Once it is finished, you can try unpausing repository processing again. Another option (assuming you did not already do this) may be to make sure help->advanced mode is on and then open a search page and set the file domain to 'repository updates' and then search for system:hash=8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c. That'll let you look at the update file inside the client and see its current filetype and force file metadata regen from its right-click menu as needed. EDIT: I just did that search on my IRL client. It looks like 1.15MB definition update to me, imported about three weeks ago. Do you see it as a 'content' update atm?
>>16646 The issue is that I have, say samus_aran -> character:samus aran and then character:samus aran => series:metroid but in the thumbnails and the viewer on files tagged samus_aran I see character:samus aran but not series:metroid. On files properly tagged character:samus aran I DO see series:metroid, and in the f7 window for files tagged samus_aran the parent is displayed (but not applied in any way, including search results which act as if there is no series tag) Currently I have run the regeneration once more and I'm waiting for it to complete at normal speed to see if that fixes it.
>>16648 oops, f3, not f7!
>>16648 Nope, my theory has proven incorrect.
>>16648 Hmm, thank you. I will think about this a bit and make a note to get back to it on Saturday.
(484.19 KB 1280x720 studying.png)

>>16637 >Apparently Arch rolled out an unusual version of libgio or glib2 or something in an update, and it made loading libmpv1's .so break during pyinstaller's pre-boot. A noob question. The dependency problem is an eternal quest against moving goalposts. In order to squash this annoying dependency hell once and for all, would be possible to statically link the required libraries in the Hydrus tar.gz?
>>16652 Never mind. Somebody just explained to me that because permanent changes in distros' libraries, to keep up with all of them is an extremely taxing endeavor and better not to enter in that minefield.
>>16638 >Please check tags->manage where tag siblings and parents apply. I assume that your 'my tags' service has the PTR siblings and parents on it. If you don't want this, then remove it and I think your sibling+parent sync will resume ok. That helped. thanks. Then I added PTR back in. But does that mean that I'll have to do this every time I add local siblings for them to apply?
>>16647 Hello, sorry for the late reply. I was not as clear as I should have been there - I did the file maintenance job twice already, then deleted and redownloaded the file, already did a full metadata rescan and reprocessed defintion and mappings gaps. I checked the file on disk, has the same checksum as in the client, it is registered as "hydrus-update-defintions". What I noticed is that there are some mappings processed, after a couple of seconds of processing, it stops and I get the "please do maintenance" error.
BORING NERD THREAD.
Dev, is it still necessary for Hyrdus to set the user agent to Firefox 56 for Sankaku Complex?
Is it possible to have Hydrus use network mapped drives for everything? I'm getting ready to move all my files over to a TrueNAS Core setup, which means my Hydrus files too. Am I able to setup Hydrus to r/w to network drives? Second question being, is TrueNAS Core Hydrus support possible at all? or no and never will be? Not using a VM I mean natively.
When downloading from e-hentai / exhentai with url import, is there a way to pause download queue when you get a 509 bandwidth error from e-hentai / exhentai? Currently it just downloads the 509 image and goes down the list racking up image limit hits trying to download pages. New to hydrus, looked through options and the help document but couldnt find anything :<
>>16658 Not devanon, but I would not recommend it. depending on your OS, your possibilities will be limited (Linux has really good network file system support, windows realistically only has SMB). The database has lots of small reads and writes, meaning you need to send loads of packets back and forth, each with a couple of ms latency. If your computer crashes during any of those transmissions, good luck getting your DB back. The other way would be to force sync every write, with a SEVERE performance penalty. Only thumbnails and files will probably be a lot better, I used NFS for that without issues, but ymmv a lot. You may try ISCSI, but SMB and NFS will not work for your DB at all. Second part of your question is basically asking devanon to write a network filesystem, which is something that only huge companies (Oracle, Microsoft, Red Hat) do, and even they fail on some aspect most of the time.
>>16660 second question i mean no as a plugin for truenas. as for the first part, i faind it hard to believe there is no solid, safe way to do network storage. some checksum system maybe. neteork mapped storage is not uncommon at all, and hydrus is the type of software people may have running on a separate server than their nas.
>>16648 >>16651 Ok, so if I test this here, with Sa->Sb and Sb->P, I see the parent tag P as expected for either Sa or Sb. It did it when I added the tags and if I regenerated the display cache. So there must be a bug or other issue particular to your end. Since you see the parent for samus_aran in F3 manage tags, that means the lookup tree is ok. It knows it should have that parent, but it isn't being applied to the file. This is happening on tag display regeneration, which means tag sync must have a bug where it is able to miss a particular implication pair or otherwise not apply what it knows should happen correctly. Can you do a quick test for me? From your reports I know that older relationships are broken, and that display regen (i.e. syncing) does not fix them, but I am not sure if you have actually seen it for new tags. Please go to a file and add samus_aran to it. When you close out the manage tags window, does that file now have 'metroid'?
>>16662 Huh! Yes, newly added tags seem to work properly.
>>16652 >>16653 Yeah, and I am also not the guy to do it. I know a bit about Windows, but when it comes to Linux I am lost half the time. Best answer for now, any time some Linux flavour has a weirdass .so import problem is just to recommend people to try running from source. Tbh I think making a frozen executable is not really Linux 'style', and in future I'd like to just include some simple virtual environment install scripts and let anyone run from source in a couple of clicks. >>16654 If you want the PTR siblings and parents but you don't want to keep syncing and processing with the PTR, I think your best bet is to export those siblings and parents you want from it to a fresh local tags service. Hit up services->manage services and add a new local tags service, like 'Local PTR' or something, and then use tags->migrate tags to export siblings and parents from PTR to that local service. Use that local service for your options, and there won't be any complaints or difficulties related to it not being synced. You can even give it the PTR tag mappings too, and then you can delete the PTR completely. >>16655 Thanks. It looks like you did everything correct, and normally hydrus should have fixed the issue for you by now. We have a nuclear solution here, fixing the database entry manually, but that doesn't diagnose what happened in the first place, why on earth your client recognised/s this file wrongly. Please do one more test--load up the file using our 'repository updates' domain and the system:hash=8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c . Then right-click it and hit manage->regenerate->file metadata. I have tested this here now with a bunch of hydrus update files I forced to have the wrong mime, so I know it should work. I assume it will not in your case. The nuclear fix follows. Please close the client and make a backup of your client.db before you do this. Then, in your install_dir/db folder, run the sqlite3 executable and copy/paste the following lines one by one. .open client.db attach "client.master.db" as cm; select hash_id from hashes where hash = x'8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c'; (write down this hash_id, I will refer to it as 123456 now, but you replace with what you have) update files_info set mime = 29 where hash_id = 123456; Then boot the client. Your file should magically now be a content update file. You can resume PTR processing, and we'll see what happens. Ideally there are no more problems, but given your client wanted to treat this file, which we know is byte for byte the same as mine, as a different thing, there may be other problems going on here. In any case, let me know how you get on!
>>16663 Fantastic, thank you--this shows this is an issue with tag sync on existing tags, not on the normal content update process. I will investigate this section of code. The answer for you, once I have this fixed, will be to run that 'regen display cache' once more to force resync one more time. Sorry for the inconvenience, and thank you for your help!
>>16657 I don't know--I haven't done any sankaku work in a long time. Please feel free to try a newer User-Agent, or disabling it completely, and let me know how you get on! >>16658 >>16660 >>16661 Yeah, my general advice on this is: YES for media files, NO for thumbnails, NO for database files. As >>16660 says, the latency is a killer for small stuff like db i/o and thumb load, and network storage drivers often fake how good their file locks are, so while SQLite may think it has a great EXCLUSIVE connection to the database, it could suddenly drop or be interrupted at a critical moment and you get database malformation. You can try it out, I know some users who successfully host their db on a network, but if you do: please make a backup of your database files beforehand. I also know users who tried this and broke their db. I am afraid I do not know what TrueNAS Core is. One of the users is a Docker enthusiast and helped put together a Docker package, which is here: https://github.com/hydrusnetwork/hydrus/pkgs/container/hydrus I think that's basically the only 'host it on my NAS server' option we have at the moment. It runs locally, and I think for his client, he VPNs in, which is different to what you are looking for. I have to confess that a lot of this cloud/auto-deploy stuff is a bit beyond me. I'm still boomer-ing it up with batch files and handwritten html. If you know TrueNAS stuff and figure out a script to get hydrus to work on it, please let me know and I'll stick a link in my help!
>>16596 >>16599 I just imported some files that I previously deleted (1 from either the file page or the archive/delete filter, and the others from the duplicate filter) and they showed up as "no reason given". I think you're right that the reasons aren't sticking. I really hope that's not indicative of a bigger problem, but even then this is frustrating on its own.
(552.21 KB 1019x768 Screenshot_20211010_054044.png)

>>16664 >Tbh I think making a frozen executable is not really Linux 'style', and in future I'd like to just include some simple virtual environment install scripts and let anyone run from source in a couple of clicks. The Linux GOD, Linus Torvalds has a strong opinion about the Linux packaging philosophy. He says that that light "Linux style" is a disaster and makes packaging a nightmare. He also says that recompiling from source is fine for techie fags, but not at all for normals. Additionally he supports fat static binaries with everything included, making life easier for developers, maintainers and end users. Linus Torvalds' pertinent statements can be watched in the below video link. From 05:33 to 08:23 it is the statement resuming the whole issue. Further, there are also many other moments when he criticizes the libraries and packaging problems. >DebConf 14: QA with Linus Torvalds http://saimei.ftp.acc.umu.se/pub/debian-meetings/2014/debconf14/webm/QA_with_Linus_Torvalds.webm Mirror: https://www.youtube.com/watch?v=5PmHRSeA2c8&t=357s Current solutions to the problem: https://linuxhint.com/snap_vs_flatpak_vs_appimage/ https://ostechnix.com/linux-package-managers-compared-appimage-vs-snap-vs-flatpak/ https://www.ubuntupit.com/snap-vs-flatpak-vs-appimage-know-the-difference/ https://askubuntu.com/questions/866511/what-are-the-differences-between-snaps-appimage-flatpak-and-others https://gitlab.com/probono/platformissues
>>16666 How exactly do you select media files for a network drive? I presume just have the drive mounted and then just have it selected in Hydrus? And as for seperating it from thumbnails and db, just do it as normal per the docs? This is all perfectly safe to do it this way? I'm fine with the media files being on the NAS, and db and thumbnails being on the local server. The latter can always be rebuilt. Now it is safe to have Hydrus backup to the network mapped drove, yes? And last question being Hydrus won't fuckup with any ZFS features correct? >TrueNAS Core Also fyi TrueNAS core is a freebsd based nas os. It used to be FreeNAS. No docker support, it has it's own plugons because it's BSD. That being said, TrueNAS Scale is in beta, which is a linux version so maybe there's hope when that's stable. But if you have any possibility of it running natively on TrueNAS, it'd be cool if you could test it out in a VM and see if you or anyone familiar with FreeBSD can get it eorking and submit it as a plugin. Would be really cool. TrueNAS Core uses ZFS as it's file system. https://www.truenas.com/truenas-core/ https://www.truenas.com/docs/core/applications/plugins/createplugin/
>>16667 forgot to attach the image
>>16669 (not devanon) You will need to backup manually, AFAIK. It is "safe" to backup to a network location, as long as you don't use your database from there. Also, do not use your database while you are backing it up, unless you use the sqlite cli-utility to do the backup. I use hydrus with ZFS (on a local drive), it works just fine. There are some optimizations you may want to consider, see https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Workload%20Tuning.html You will probably want to enable compression (zstd). Also, creating a seperate dataset just for hydrus data and setting the recordsize to 1M will increase performance. >>16664 When I force regenerated it, it said "done", so no problems there... Nuclear option: sqlite3 client.db sqlite> attach "client.master.db" as cm; sqlite> select hash_id from hashes where hash = x'8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c'; 79785429 sqlite> select * from files_info where hash_id = 79785429; 79785429|1205461|28|||||0| sqlite> update files_info set mime = 29 where hash_id = 79785429; Did that, processing now works as expected! Thank you!
>>16671 Sorry, did not work after all. The mime type is still set to 29, so it should be something else...
>>16671 >>16672 Okay, so I added some print statements and type() of the content update is hydrus.core.networking.HydrusNetwork.DefinitionsUpdate. I looked at the dict "SERIALISABLE_TYPES_TO_OBJECT_TYPES" and the update in question. The update metadata (json.loads()[0]) contains the ID "36", which resolves to hydrus.core.networking.HydrusNetwork.DefinitionsUpdate in the SERIALISABLE_TYPES_TO_OBJECT_TYPES dict. If I interpreted the source code correctly, it *should be* 34, or "hydrus.core.networking.HydrusNetwork.ContentUpdate", right? I could not find out how the SERIALISABLE_TYPES_TO_OBJECT_TYPES array is populated, could this be a DB issue?
>>16663 >>16665 Hey, I had a look at this today, and I was able to reproduce one missing parent bug and fix it, but I am not confident it is your bug. Can you repeat this test where you add the tag to a file, and then restart the client? Check the file when you boot up again--does it still show the parent as expected, or is it missing again on reload? Do you regularly run search pages in the 'all known files' search domain (as opposed to the normal 'my files')? No worries if you don't know what this means--that means 'no'. If I haven't fixed your problem in 458, I think I'll have to write some debug method or something to grab more info for your situation.
>>16667 >>16670 Damn, thank you for the reminder, I think this slipped through the cracks. I will make sure I spend time on this tomorrow. >>16668 Thank you, this is useful information! >>16669 My properly written help on splitting the database across several locations is here: https://hydrusnetwork.github.io/hydrus/help/database_migration.html Let me know if you have any questions! TrueNAS sounds interesting. I'm afraid the technical side is probably beyond me and the amount of time I can give it, but if another user figures out a build script to make a docker-like package for it, I'll happily link it.
Speaking about sorting by tag as a number, how does it work when there are multiple tags of the namespace in question, but with different numbers? For example if we're sorting by page:N and a file has page:1 and page:2 at the same time. Would it be possible to make it take into account only the largest value?
>>16671 >>16672 >>16673 Damn, I am very sorry, I got confused about which ids and bit of code I was looking at and swapped content and definitions around in my head. You are correct, this file is a definitions file, you see it as that and so do I. The problem here is that hydrus loaded it into the content processing pipeline wrongly and then got confused. Running file maintenance on the file made no changes as that was not actually the problem. First thing, I will update those error messages so they say more, to reduce future confusion. Don't worry about the 28/29 thing, hydrus will actually fix that itself when it next runs into this problem and runs file maintenance again. It may already have. I will spend time looking at the code and db tables and try to figure out what happened here. I think it is probably a missing row in a table where it tracks what has been processed. I am absolutely not asking you to do this work, but if you are interested in poking around here, it is this bit: https://github.com/hydrusnetwork/hydrus/blob/master/hydrus/client/db/ClientDBRepositories.py#L396 I think the respective repository_updates_processed_x table is missing a row for that hash_id, and my lazy comparison is letting it default to the content_updates list. I'll tighten that test and write recovery for it and see if I can figure how it happened in the first place. For SERIALISABLE_TYPES_TO_OBJECT_TYPES, I populate that just below every class that uses it, as here: https://github.com/hydrusnetwork/hydrus/blob/master/hydrus/core/networking/HydrusNetwork.py#L1910 It is a trick from an old YAML library I used to work with. The class itself has some variable initialisation as well, just above. The SERIALISABLE_XXX stuff.
>>16676 It actually sorts them by comparing sorted lists, comparing the nth values of the lists against each other until they differ. This practically means it uses the lowest value most of the time, but if you happen to have two files with multiple and where the smallest are the same, e.g. one with ( 1, 2 ) and the other with ( 1, 3 ), the former compares smaller. For the simpler case, if you have a file with ( 2, 3 ) and ( 3, ), then ( 2, 3 ) counts as smaller, since the 1st value ( 2 vs 3 ) differs. I think!
>>16666 >I don't know--I haven't done any sankaku work in a long time. Please feel free to try a newer User-Agent, or disabling it completely, and let me know how you get on! I played around with it some. Switching the user agent to the default global one caused the login to fail. However, switching it to newer versions of Firefox (91 and 93, the latest) made the login work fine, and I was able to download files properly as well. Would you consider making the latest version of Firefox the default user agent for Sankaku? Is there any benefit in doing so? Version 56 just seems so old.
>>16677 Sorry, that seems like it's a little over my head - I probably can't contribute anything of worth here ;) Of course, let me know if you need any output from my side!
>>16671 When you say it's safe as lomg as you don't use your db from there, you mean it's fine to have the "database" media files stored on the nas, and have the tag and thumbnail db on the hydris client system. That's fine? My goal is to have all the media files themselves stored and read from the nas. I'm fine with ptr and thumbnails and everything being not on the nas. As long as I can make complete backups to the nas though. Which brings me to my next question, when you say backup manually, you mean just copy the entire Hydrus folder over to the nas? Would rather just use rsync while Hydrus is shutdown I think, instead of the sqlite utility. And as far as zfs goes, you have no issues with compression on the media files, ptr, thumbnails, etc." all of hydrus? or do you not have compression on some of it?
>>16681 Sorry, I think we got confused with the terminology here. When I say "database", I mean the sqlite files only. Thumbnails are stored in a directory like the data files, but the directories are called "t00" instead of "f00". You must not use the database (sqlite) stored on a NAS to run the client, because that will be slow and unreliable. thumbnails should be local so lookup is quick. You can backup your DB with rsync too, I just like to use the sqlite tools, since those were designed with databases in mind and I can be sure to get a consistent image at the end. I doubt we use ZFS in the same way, but I use zstd-3 for files and thumbnails and no compression for the database. Recordsize for the database is set to 64k, with the sqlite database page size set to 65535 (do not do this, probably more effort than it's worth). Recordsize for thumbs and files set to 1M to save storage space. "Issues" largely depend on your CPU usage. The higher the compression, the worse it gets. Using the default it is mot noticable, zstd-3 neither. zstd-19 and cp lets X11 stutter. I also use raidz1 for files and thumbnails and a mirror vdev for the database. If you use an ssd, don't forget to enable autotrim. I also have at least 32 GiB of memory reserved for ARC.
How can I retrieve a "name spaces" list? I mean, I want to know all names spaces currently in the database. For example: - color: - above sea level: - below sea level: - integer: - person: - date: - county: - weight:
>>16674 After adding the tag and restarting the client, the expected parent was still there. However, remembering what happened when I initially did the regeneration call (that images not displaying the issue suddenly were), I ran the regeneration call and waited for my tag display maintenance to finish. As I expected, after the display maintenance finished... the image was missing the parent.
>>16684 >>16674 Oh I forgot to add that I rarely change file repos, and have never used all known files.
I had a good week. I fixed a variety of bugs and added several small options to improve quality of life. The release should be as normal tomorrow. >>16684 >>16685 Damn--I don't think I've fixed your bug. I'll have to come back to it next week!
when a downloader auto-adds tags to a file that was previously deleted as a lower quality duplicate, will those tags be transferred to the highest quality duplicate automatically, or is the tag merging a one-time thing that only takes effect when you use the duplicate filter and isn't remembered?
>>16687 for more context, I'm trying to see if it's worth it to do a gallery fetch of a bunch of files that I know I previously marked as lower-quality duplicates on another website in order to get all of the tags from this website. If the tags will properly be transferred through to the higher quality duplicates that I have in my database, then that's very helpful, but if it only adds them to the lower-quality duplicates that I already deleted, it's useless and there's no point.
>>16686 actually it does seem to have fixed it? I can't reproduce it anymore (I previously hard replaced a bunch of the previous examples, unfortunately.)
https://www.youtube.com/watch?v=45pF6YtMvQ4 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v458/Hydrus.Network.458.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v458/Hydrus.Network.458.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v458/Hydrus.Network.458.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v458/Hydrus.Network.458.-.Linux.-.Executable.tar.gz I had a good week. I fixed some more bugs and improved some quality of life. highlights I fixed an html parsing problem that started in the past few weeks in the release build. I understand it broke Newgrounds searching, but it should be fixed now, so if this affected you please give it another go. You can now set the client to always boot with network traffic paused under network->pause. Useful if you have an unusual network/vpn situation that is often not connected! I have improved the duplicate filter zoom lock calculation. Previously, it forced the width of the two images to be the same--now it chooses height if it thinks that fits things better. This should stop 'B' images with a watermark banner on the bottom accidentally spilling that watermark difference below the screen. advanced user highlights I improved some repository update error handling and auto-healing. If you have had an issue processing the PTR related to 'this file was the wrong type' that did not seem to fix by itself, please unpause processing and let it try one more time. If you use the advanced file deletion dialog, you can now choose to remember the last used reason and action under options->files and trash. I also fixed a bug where some number of files were forgetting their given deletion reason once they were permanently deleted from the trash. I am sorry for the trouble with this bug, and I will make sure to add unit tests so it cannot happen again. File import objects now track 'primary' URLs (that directly lead to a file download) separately from parsed 'source' URLs. They are now split under the new 'file log' URLs menu, which also now shows the referral URL. Furthermore, file import options now lets you choose whether primary URLs are associated with imports (which you might want to turn off if you are doing some clever one-time proxy download etc...). full list - quality of life: - under _options->files and trash_, you can now govern whether the advanced file deletion dialog remembers action and reason. being able to save action (trash, physical delete, vs physical delete and clear history) is new, default off for now, and won't _always_ save (if you are currently set to trash, but the next dialog doesn't have trash as an option, then it won't overwrite to physical delete). if you try it out, let me know how you like it - a new option under 'network->pause' now lets you always boot the client with paused network traffic - the main file import object now stores primary urls (such as post and file url) separately from source url (which is produced by many parsers and typically refers to another website). a new checkbox in 'file import options' (when in advanced mode) now allows you to not associate primary urls separately to source urls (which is useful in some one-time technical jobs that talk to some unusual proxy etc...) - the new import object right-click menu that shows urls now separates primary and source urls, and also shows any referral url - when you flip between two images in the dupe filter, the zoom preservation calculation, which previously only locked to the same width, now tries to choose width or height based on the relative ratios of the two images to keep both images completely in view on a canvas zoom start. it should ensure that lower watermark banners stay in view and don't accidentally spill over the bottom of your monitor - moved popup toaster options from 'gui' options page to the new 'popup' page - added options for whether the popup toaster should update while the client is minimised and while the mouse is on a different monitor than the main gui window. these options now default to false, so if you have any trouble, please try turning them back on - a new shortcut action in the 'global' set now flips profile mode on and off. please note for now 'global' only works on main gui and media viewer--I will add a hook to every window in the future! - . - bug fixes: - you now cannot start an 'upload pending' job for a service more than once at a time. the menu is now disabled for each service while uploading is happening - fixed a bug in media load where if the file was not in a specific domain (i.e. somewhere in all known files), its tags would not show implied parents. for non-specific files, this calculation happens on the fly, and previously it was only doing siblings - fixed a bug from the somewhat recent file deletion update that meant many files' custom deletion reasons were being overwritten to 'No reason given' when trash was clearing. I am sorry for the inconvenience! - fixed an issue with parsing 'string' from html 'script' tags (and perhaps some other 'meta' tag types) on recent versions of the built hydrus release. this should fix the newgrounds gallery parser - fixed some gallery parsing error handling, for when the actually fetched url differs from the original and cannot be parsed, and when the actually fetched url redirects straight to a file page from a 1-length search result - . - update file handling bug fixes: - when repository processing runs into an update file problem, it now specifies if the file was content or definitions type
[Expand Post]- when the database gathers updates to process, it discriminates between definitions and content updates more carefully - when a hydrus update file goes through file maintenance and changes filetype, the repository update progress tracker now 'reregisters' that file, updating what content types it can expect from it and clearing out incorrect data - during normal update file registration, incorrect old data is now cleared out - . - boring cleanup: - cleaned some of the positioning code that places icons and text on thumbnails, removing hardcoded numbers and letting custom icons position better - cleaned some import url tracking, checking, and association code - refactored profile mode and query planner mode switching up out of UI code into the controller - added a hefty unit test to test that siblings and parents are transitively applied to mappings correctly for files outside and inside specific file services, and for tag sync and the normal tag pipeline - refactored some database file maintenance code to decouple the queue from the worker next week I will try to focus entirely on the bug reports on the github issue tracker.
>>16679 I don't specifically want to use that 56, I think it is just what we used at the time, I guess a couple years ago now, to bodge some user-agent filter their CDN was using. iirc, anything that didn't look like a browser was being blocked. Updating it seems sensible, although since my network engine is a bit prototype and rusty in this area, I am not sure there is a nice update path beyond me just overwriting it in a hardcoded update. It might make sense to make this sort of thing optionally global, tbh, and have a nicer way to update it, although I think sanaku is the only site I remember with this specific problem. The Client API now has a handle to set global User-Agent (via Hydrus Companion) too, which helps to solve some cloudflare cookie stuff. I'll have a think, thanks.
>>16680 Yeah no worries. Please update to this 458 and try unpausing it one more time. It will likely throw up another error after a bit. Hit up database->file maintenance->review again and hurry the jobs it made. Then try unpausing again--it should be fixed now! Let me know what happens, either way!
>>16683 There's no way in the client, I don't think. Stuff like 'show me all my tags' can be a slightly complicated question based on how hydrus generally works with intersections of file and tag domains, and the result lists can also be way to big to be useful on something like the PTR, so I don't really have good 'browse all' tech yet. If you just want a list and are feeling brave, shut down the client and go to your install_dir/db directory and run the sqlite3 executable. Copy/paste these lines one by one: .open client.master.db .once namespaces.txt select namespace from namespaces; .exit They should all be in the new namespaces.txt file. Those will be a list of every namespace your client has ever seen (including stuff now deleted), not what is currently in.
>>16687 >>16688 It is a one time thing for now (mostly since that was simple to write). However, the relationship is saved. I expect in a future iteration of the duplicates system to write live content update sync, so adding content to one dupe will add it to the others. However, before I do this, I will want more robust merging filters and rules. Too much stuff is merged atm I think, and setting up a good filter to not merge inappropriate merge tags like 'bad quality' or 'watermark' is too much of a pain in the neck. Once we've got that more nailed down, I'll start automating more of this. For your situation >>16688 , you may like to add the tags for now and wait a couple years for this tech to arrive, or you might like to plan for something else. I will be exposing the duplicates system on the client api before then, so you could even cobble your own merge/redirect tech together with that. >>16689 NICE. Let me know how it continues to go!
Great program, been using it for a few months now without issue. There's a feature I've been looking for and haven't really found any reference of, is there a way to purge any and all records of previously deleted files from the db? So that as far as Hydrus/db inspection is concerned it's never been encountered before at any stage of the process. I see there's an advanced deletion option to not record the deletion itself, but that doesn't seem to match what I'm looking for.
>>16692 Sorry, still the same error: An unusual error has occured during repository processing: a content update file (8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance under _database->file maintenance->review_ to finish its new work, which should fix this, before unpausing your repository. Traceback (most recent call last): File "/opt/hydrus/hydrus/client/ClientServices.py", line 2039, in _SyncProcessUpdates raise Exception( 'An unusual error has occured during repository processing: a content update file ({}) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance under _database->file maintenance->review_ to finish its new work, which should fix this, before unpausing your repository.'.format( content_hash.hex() ) ) Exception: An unusual error has occured during repository processing: a content update file (8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance under _database->file maintenance->review_ to finish its new work, which should fix this, before unpausing your repository.
I ran into a problem while running a gallery downloader. The downloader reached the bandwidth limit for images per day, but instead of it just not loading the image, it loads a placeholder image that says that I've reached the bandwidth limit. The problem is that the downloader incorrectly thinks that this placeholder image was the real image for each of the pages in the gallery after I reached the bandwidth limit, and it associated the urls for all those pages with that one image now, then finished up thinking everything was okay, and it didn't download any of the correct ones after that point. What's the best way to go about fixing this? Should I delete all the urls from the placeholder image and restart the downloader? I feel like if I do that, the same problem will just happen again when I run into the bandwidth limit again. The placeholder image doesn't say exactly how big the bandwidth limit is, so I can't set the downloader to respect it in order to avoid the problem. Is there a way to mark the placeholder image as a "junk" file that should never be given urls, tags or other metadata, and should just be ignored instead of downloaded? If I can do that, then I could just slowly brute force my way through the gallery over a few days, adjusting the bandwidth rules for the downloader until I find one that stops triggering the limit.
>>16695 A bit hidden, but maybe that's what you're looking for; services -> review services -> all local files -> clear deleted files record
>>16698 Thanks, I had a look at the code and if I'm interpreting it correctly it's just deleting the "deletion" record itself. I'm not having any luck finding the code that manages deleting images normally to check what's done with previous metadata. If I'm interpreting the documentation right the import record + filehash still exist on the system somewhere, with only the record of deletion being purged. (that said I might be completely wrong about how Hydrus is doing this) Ideally I'm looking for any reference to the original filehash/metadata being purged alongside the deletion record.
>>15850 Can i link together subsequent series of files? Where one is continuation of another. I remember something like that on boorus. Cant find that in hydrus/help. Something like pic.
(158.58 KB 969x519 ClipboardImage.png)

Is it possible to block a speific tag from the PTR? Someone appears to be mistagging tens of thousands of files as "guro" on the PTR. Also, how many bricks will be shat by the janitors if I send a commit to delete "guro" from over 40k mistagged files?
>>16645 >when a network job stalls with the 'this domain had some errors recently' message, the cog menu on the widget now allows you to 'scrub domain errors' and try again immediately THANK YOU. >>16668 >snap, flatpak, appimage Absolutely disgusting. Get that normalfaggot cancer out of here.
>>16703 <I don't want a solution that solves my problems if OTHER people use it too! I don't get to have a superiority complex that way!
>>16532 Hey it's me again. Since the "sibling pairs that are used in my files" thing is the only thing I'm waiting for in order to delete the PTR, is it okay to migrate the tags early, then reset processing for the mappings, then just pausing the processing?
>>16591 Hi dev, thanks for all your work. Could I check whether it would be possible if this menu in the dupe filter could be hidden either with a keystroke or ideally via mouse-overing a button? This would help with images that take up the entire screen. Also it would be great if opening all alternates of an image could be bound to a keystroke instead of navigating the right click menu
Not >>16702, but that's a feature I'd love to see as well; I hate that I have a "guro" tag on a bunch of unrelated files. I'm also wondering if there's a PTR file blacklist option somewhere. Here's my use-case: there's a lot of people adding random tags to the file I'm sending with this post (probably users with an auto-add to the PTR from Sankaku, and they just send everything without checking), so it appears in a lot of searches (and makes the client slower because it has to load a whole lot of siblings for all the linked tags). I'd like to have 0 tags from the PTR on that specific file. >Why would you keep this image if you don't want to see it? Sankaku beta-specific issue; I use the workaround described in >>>/hydrus/15560 so I need to keep the file.
>>16707 Speaking of that file, I occasionally delete all of its tags and URLs to prevent slowdown and skipping of files I want and I've realized that deleting URLs from a file is very slow. Deleting even a few dozen URLs takes a second or two, with a few thousand it takes several minutes.
>>16704 >solves my problems They don't solve *any* problems. They create them. Stapling on three pseudo-package managers in addition to the one you *should* be using that totally ignore not just the package manager that did perfectly fine until these memes appeared but also ignore each other and even the standard file hierarchy causes breakages all over (see themes, IMEs, etc. etc.). Not only is the dependency situation a nightmare, they're also less secure, take up more space, and encourage the usage of trash programs. If you want this shit go back to Windows or check out OS X.
Sorry, I went on a long thing here. If you just wanted to remove hashes for some storage or some odd conflict-resolution purpose, please ignore most of this! >>16695 >>16698 >>16699 There's no way in the client to remove the master hash record yet, but there will be some support for this in future (although I will mostly focus on reclaiming hard drive space for users who delete the PTR and have millions of rows to recover). If you clear all your deletion records (or if you enable the advanced deletion dialog under options->files and trash, which lets you delete and forget the deletion record from any normal file delete), then there will be no record that that file was in your local files. However, it is slightly more complicated. When it comes to other metadata, Hydrus makes no distinction between a file in your local collection or not. This is a key feature to how the PTR works, where you can import a file and it suddenly has tags--the truth is it had tags before you even imported it. It had tags in the database, but there was just no intersection between it and your local file collection until now. So, even if you clear a file's deletion records, the hydrus database will still remember things like url-hash mappings, a rating if you set one, any tags the file received, basic filetype info like resolution and filesize, that sort of thing. It just won't remember that it was ever in your 'my files'. If I ever write a 'privacy purge' to go along with my maintenance routine above, it will have to clear out all this additional metadata knowledge about a file. And if you want to be really strict, I think any mode like this would probably have to run a database vacuum to remove unused pages that might still have that hash in them, and then the hard drive should have one of those 'shred empty pages' programs that writes over empty space 20 times run to clear those deleted pages too. If you absolutely need to remove some hashes from your database now, and you know their hash or hash_id in the db, then your best shot is to update the 'hashes' table in client.master.db. That is the only place the actual hash is stored. You can replace them with random hex replacements, I think like so: UPDATE hashes set hash = x'c7ede5f137d86f4cbbcce353d9421c942101a525cdc44441dc645141fe211c48' WHERE hash_id = 123456; But beyond that, I am afraid there is no super privacy purge command yet, and as above, I am not sure how perfect such a command can be without external software too. In general, my opinion on this is that if someone has access to your hardware and has a plan to access a hydrus database, then your whole system is compromised and your privacy is evaporated, and while I can add some history erasing routines to help the situation in future, our efforts are also best spent on stopping that initial breach. Hydrus runs well from any encrypted volume, and if you have concerns about someone looking at your stuff, check out Ciphershed and other similar software.
>>16696 I expected you to see that one more time--is that the first time it showed up, or did you let the file maintenance run and it happened yet again? (Basically I thought I fixed the repair code that error is supposed to trigger, so one more go and it should break out of the loop)
>>16700 Unfortunately hydrus has very limited 'series' support. I've tried some file sorting tech based on namespaces (you can sort comics by giving them page:4, page:5 style tags), and the duplicates system as in >>16701 has limited ability to link actual duplicates together, but relationships like 'this is a WIP of this' or 'this is a recolour/different costume of this' or even 'this is the page after this page in a comic series' are planned for a later expansion and these relationships are currently being gathered unsorted under the 'alternates' label of the duplicates system. https://hydrusnetwork.github.io/hydrus/help/duplicates.html#duplicates_examples_alternates
>>16711 I did as you said, after file maintenance it still failed. I also force-regenerated that specific file metadata and deleted and redownloaded it all again (after processing the maintenance), still the same error.
>>16697 Ah, damn. Hydrus has some logic to try to recognise this situation in future. I don't think you need to remove the urls. Just try and run one of the searches again once you know you have bandwidth--I think hydrus will recognise that the bad file that matches up for an url has many matches on that domain and therefore is not trustworthy as an 'already in db' source, and it should try to get the correct file again on this subsequent attempt. I assume you know how to edit bandwidth rules, but let me know if you don't. There's no action in hydrus yet to deal with these shit files. Like you say it'd be nice to say 'hey, hash abdcef123... is one of those placeholder files, don't trust it'. Same deal with the bastard here >>16707
>>16702 Not yet, but I plan to let the jannies set tag filters to block out some garbage like 'tagme' and 'filename:' tags. Unfortunately, that filter will not stop 'guro', since that tag does have legitimate use. If you know the 40k guro tags are all wrong, that's a GREAT petition, but if there is a mix of actual guro in there, that's a bad petition since it would nuke true content. If you can petition some of those 'guro' tags with a reason like 'this dude is tagging incorrect guro everywhere', then the jannies can block the account doing it and send him a message telling him is parser is working wrong. I hope to make more powerful janny tools here in future to give us more options while still keeping contributions anonymous.
>>16705 Yes, I think this is a very good compromise, except I would not move them to 'my tags'. Make a new 'local tags service' under services->manage services to be a separate container for them. Call it 'PTR copy' or something. I think you could migrate your tag siblings and parents to that service too, and then once all that frozen content is migrated out of your PTR service, you can delete the PTR. This will free up several tables of data and no need to mess around with paused processing. Then, when I have some filter tech for sibling/parent migration, you can clip that local copy at your convenience.
>>16706 Ah sure, hiding that when mousing over is a neat idea! I had been hesitating on too many shortcuts for the duplicate system, but now I made that upgrade so shortcut actions can store some extra data, I think I am ready for it. I'll make a job for a shortcut action to open alternates, thanks.
>>16707 Yeah, when I add the tag filter to the PTR, I'd like to figure out a file filter too. The PTR admin wants one for exactly this reason, and it would be sensible to do the same clientside too. That would be a good solution, now I think of it, to get the ability to go 'this file is shit placeholder, don't do anything with it'. >>16708 Thanks, I will check out why this is running so slow. If you would like to help me out, can you try running help->debug->profile modes->profile mode and then doing one of these slow deletes? Turn off profile mode once it is all done. There should be a 'what's this?' menu entry there too to explain where to find the profile log. Pastebin it here or email it to me, whatever, and I'll be able to see IRL what is taking so long. No worries if you can't do it for whatever reason!
>>16715 >>16702 here. Guro isn't my thing. There *shouldn't* be any in any of my files, but i can't promise one or two didn't accidentally sneak in somehow without manually checking all 40k files. I'd rather not have to manually check that much, which was why I was hoping to be able to blacklist it locally somehow. For now, I will take some time to petition the removal of a few hundred badly tagged ones and hope that's enough to find the culprit.
>>16719 If you don't normally run into any guro, then 99.98% accuracy sounds great to me. I think stick that information in your petition 'reason', and say some idiot seems to be spamming it to sank files, and the jannies will handle it best they think. You'll also see those tags disappear as soon as you upload. Thank you for the effort.
>>16710 Thanks for the in-depth reply it's good to know how it all works. So in a case where you've never used the PTR or such, any orphaned db metadata entries would stick out like a sore thumb? Or if you use tags not otherwise used in the PTR? But with PTR use + normal tag usage it'd fit in with the PTR data giving plausible deniability. I wonder how viable/relatively easier it'd be to setup a lite-privacy purge that uses still existing deletion records to target hashes contained within + a db vacuum if that's needed. Fucks over anyone that purges deletion records beforehand but going forward from there it'd work decently for most people. I definitely agree harddrive-level stuff is definitely out of scope of what Hyrdus needs to worry about. Usecase here is untested/overzealous/shithole legal situations where mundane content might need to be cleared out, some jurisdictions count metadata of since deleted files as enough to go on. Far fetched in reality but it's nice tooling to have.
>>16703 >normals Ahem. Statically linked binaries are THE solution to the "Dependency Hell". Linus is right. >>16704 This. >>16709 >Stapling on three pseudo-package managers in addition to the one you *should* be using Not quite. Appimage doesn't use any manager. It is a totally independent, self contained executable like a Windows one. Yup, like it or not, most EXE files just work, be on win98, win2000, winNT, winXP, or Win7. On the other hand, Linux zealots can't claim that, not even close because of their left unchecked arrogance and narcissism.
(83.28 KB 500x545 70b.jpg)

>>16709 >If you want this shit go back to Windows or check out OS X. Nope. I'll remain in Linux. However I need that my system be able to run any version of a given program; package managers can't do that, but Appimage can indeed, with the bonus that the binaries are portable.
(512.22 KB 1280x720 fucking_stupid.webm)

Dependency Hell is a maintainer problem.You all are only having problems with it because you are being exploited by lazy distros who don't want to put in the effort,mostly because they aren't dogfooding when they really ought to. While I personally don't mind appimage/snap/flat/whatever in theory they all have implementation that are so shitty as to cause active damage to the environment they operate in. >>16723 >I need that my system be able to run any version of a given program; package managers can't do that You are using shitty package managers. >>16722 Appimages aren't actually self contained in practice,they just pretend to be. >most EXE files just work, be on win98, win2000, winNT, winXP, or Win7. On the other hand, Linux zealots can't claim that You are actively refusing to use functionality that you acknowledge as a valid solution,even if you did it jokingly.A portable exe file is a static binary,your system is also capable of producing static binaries through standard system functionality,that you do not use such is entirely out of your own lack of desire to do so.
Could you add a way to save advanced searches as advanced searches, so that they can be edited afterwards? Right now, if you make a complex advanced search, but find out when you run it that you messed up part of it, you just have to start all over again. There's no way to save it and check to make sure its correct first (except for copying it to the clipboard, but that's finicky), and there's no way to go back to an advanced search you put in your saved searches some time ago, and edit its original advanced form. All you can do is edit the output form that was saved, but for complex searches, that's much less user friendly. Currently I'm just saving the whole advanced text as part of the saved search's name as a workaround, but that's unpleasant to deal with and I'm worried that a character limit might bite me.
(169.40 KB 894x894 butthurt.png)

Easy faggots.
Sup. Just wanted to ask a question to a dev. What is this shit? Why in client.db there is this weird dumps of oddly structured json with some random bullshit? How is this got there even? I don't think i've ever gave hydrus access to the internet, and i can't grep any of this crap in the source repo, so wtf? Even if i did, why this random shit is there and why is it in this shape? I don't even have ((Triss_Merigold)) imported to hydrus, and don't physically have other shit from this json on my hard drives, so this can't be some results of parsers or something. Got my hydrus from aur/hydrus btw.
(47.08 KB 1580x971 ClipboardImage.png)

(43.74 KB 1127x933 ClipboardImage.png)

(30.15 KB 492x952 ClipboardImage.png)

(133.54 KB 961x433 ClipboardImage.png)

>>16728 Waddup. Looks like this shit is a downloader, the character name looks like a fucking sample query. However, hydrus can encode lots of shitty stuff like this. Bloody tags, fucking pages (your shit session will be saved to this trash table, for example), etc... Not a god damn developer btw.
>>16716 I followed your instructions, and I'm now deleting the PTR from "manage services" but after clicking apply after deleting it, Hydrus has been hanging and won't respond. I figured it might take a while to delete it, like an hour or so, but I left it over night and it's still going, and Hydrus is still frozen. I check in the system monitor and it looks like the client process is still reading and writing, so it's probably doing something, but is it supposed to take this long? It's probably been around 15 hours at this point of Hydrus just being frozen with the dialog box still being there after I clicked apply. I'm afraid that if I kill the client then it'll have to start all over again, so I've just been waiting.
>>16730 One more thing btw. I had the foresight to enable the ui hang relief mode before going to "manage services" to delete the PTR service. I don't know if that matters, but it means that I can see what the client says its working on in the bottom right corner, and the job it's been saying it's working on this whole time is "write_update_services", so it hasn't even been moving on to different parts of the deletion if there are any. It's just been stuck on this one. I'm concerned that it's actually stuck in an infinite loop and I wouldn't know, but I'll just keep waiting since I can't use Hydrus until the PTR is gone anyway, because having the PTR and the local copy I made slows down the client too much.
Hey, unfortunately I am super sick. I didn't get much work done, so I will put the release off a week. 469 should be next week, on the 27th!
(11.95 KB 420x460 ccg.jpg)

>>16732 >Hey, unfortunately I am super sick. F
Just wanted to pop by say thank you for a really nice feature that I found when digging. When using the file relationships tag, combined with a sort by number of files in collection, I am able to go through and determine which alternates I want to keep. Quick question though: is there a way to add "file relationship" or "alternate" as the collection? Visually, that would let me see a collection of alternates in the main panel, and a single click + F12 would bring up a quick delete filter for just the images of that type.
>>16539 Hello, I am sorry I've been slow in responding to this. Based on my testing it seems there's a much more insidious and pervasive issue going on here. When downloading new items with "force page fetch even if url recognized and file already in db" and "force page fetch even if hash recognized and file already in db" enabled, no tags are picked up at all, even for new items. I've tested this with three different sites (e621, gelbooru, rule34.paheal) in a new client (latest version, 458) using the default importers. To replicate: 1.) Download the windows extract only package, v458. Extract and run client.exe 2.) Go to network -> manage subscriptions. Click the add button. 3.) choose a query, ex. e621 tag search, click apply. 4.) click the add button. Then choose a query text, ex. "anthro". click apply. 5.) click "tag import options". change the drop down from "Use the Default tag import options at the time of import" to "set custom tag import options just for this downloader". 6.) check both "force page fetch even if url recognized and file already in db" and "force page fetch even if hash recognized and file already in db". click apply. 7.) finally click apply in edit subscriptions and then again in manage subscriptions. 8.) the client will then download the last 100 (ie. default) amount of items for the given query. None of the imported items have tags. As it stands now I've got a bunch of shit in my db now that's untagged and see no way to fix it. Not just because the way to fix this would be by forcing hydrus to re-download the tags (which is what's broken in the first place) but also because how do you even search for something with no tags? Right now I can't even assess the extent of the problem. I think this might've been the initial problem all along. After all, if no tags ever get imported with these options checked, then that explains why the json parser doesn't add additional pool tags. P.S. While we're on the subject, could you add a way to either rename parsers when you add duplicates or maybe make the names of the default ones obvious (like 'default e621 tag parser'). When I was testing this having everything named just whatever (1), whatever (2), etc was really confusing. Or maybe just tell the people who make the json parser to name their shit better. P.P.S. Can you remove the 1k hard limit on the first check for files in subscriptions? I've never understood why this was there in the first place when most of what I want to do is download all items for a given artist and if they have over 1k items it just means I have to do it manually first for seemingly no reason. With this bug if/when it gets fixed I'll still only be able to re-check the last 1k items to ensure they have tags unless this gets removed. Yes, I know I could run from source and edit this but that's a pain.
>>16732 Get well soon, devanon! I'd like to ask, is there a more streamlined way of adding page numbers than individually adding "page:1" tags, especially if the order displayed in the thumbnail / gallery viewer is the correct page order
(377.82 KB 991x761 ClipboardImage.png)

>>16729 >Looks like this shit is a downloader, the character name looks like a fucking sample query 324201 characters of sample queries? So, from these? Okay, next question: why pick such an odd format for downloaders? Just so they look pretty?
Can hydrus map namespaces for imports/downloaders, like tag siblings for tags? For example map creator:* -> artist:* or series:* -> copyright:* Or maybe there's a way to configure downloaders to import copyright: as copyright:, not as series:, and artist: as artist:, not as creator:, eh?
>>16732 Hopefully it's not something serious - Please take your time to recover and get well soon!
>>16737 You mean why is the JSON so "weird", or the PNG? The JSON is hydrus standard way of encoding things. Again, sessions (which pages you have open), subscriptions (have I seen this file before), downloaders, everthing is encoded this way and you can export some data as PNG. Are you worrying about 32KB with an application that manages TB of files? Just wait until you see the caches.db... And why PNG? Say I want to share my downloader with /t/. I can just post it and everyone sees what it is. If there is filename fuckery, no worries, it says what it is in the PNG. I think it is quite nice. Also, data is compressed, so you probably won't notice the "true" file size. And that dump not only contains sample text, but also where to go, what links to follow, where are tags located in HTML, how do I get to the next page in galleries, ...
>>16738 And there's also the same thing with spaces in tags. I've created 800 tags with underscores instead of spaces, the boorus use underscores instead of spaces, and then the downloader maps underscores from boorus to spaces locally, duplicating a lot of tags. How do i go around this? Maybe if not setting my own options for tag mapping, i can somehow replace underscores with spaces on my existing 800 tags? **I've tried to do that manually with SQL: Something like DELETE FROM subtags WHERE subtag LIKE '% %' -- | delete all with spaces (to delete that i've already downloaded) -- (OR) i've tried to delete only newly downloaded tags, not all with spaces UPDATE subtags SET subtag = REPLACE(subtag, '_', ' ') -- | substitute underscores with spaces but no success, it just breaks db. I think it's because hydrus already stores duplicates of all tags with spaces instead of underscores for some reason, probably a dirty hack to enable searching with spaces. If so, dev, you could just search with OR'd original and substituted search string, you know?**
>>16741 file > options > tag presentation > EXPERIMENTAL: Replace all underscores with spaces I don't have any experience with this, so you might want to wait for devanon to give his two cents, but it's there..
>>16742 >Replace all underscores with spaces >tag presentation That's only changing looks of tags. The tags themselves remain the same and if i have 2 files with "blonde_hair" and one with "blonde hair" (as imported through downloader) search for "blonde hair" will give only one file though it will show blonde_hair in tag suggestions/search.
(1.34 KB 112x31 ClipboardImage.png)

>>16742 >>16743 This, essentially.
>>16744 Well, since you already have a list, if devanon added an API call, you could iterate through that list and just add all of the siblings, since that seems like exactly what siblings are supposed to be used for. If it's "only" those 800, you probably can do it manually in the tag siblings menu in a couple of hours. If you use the PTR, you can migrate the siblings/parents to your local tag service, the most common ones (your blonde hair example) exist already. In the meantime, you can search for blonde*hair too.
>>16721 >But with PTR use + normal tag usage it'd fit in with the PTR data giving plausible deniability. Maybe, maybe not (on plausable deniability). The client also remembers stuff like resolution and file size, which PTR doesn't give you. If you had someone attacking your database, some of that data (I am particularly thinking the local hashes, the client generates and saves md5, sha1, and sha512 hashes for quick 'previously deleted' lookups on websites that offer hashes) will have only been generated from a file that has passed through your client at some point. I plan to have more client-to-client comms in future, through the Client API. I expect more cross-contamination of various sorts of file metadata between trusted clients, which may ameliorate these concerns and stop the 'sticking out like a sore thumb' problem, but yeah I think the solution to your problem would have to be aggressive recycling/purge of definition ids. I do plan this. If you end up using it, let me know how it works for you. If you really want to get bonkers about it, the sha256 hashes are unique enough that they should never be repeated by accident on any storage medium anywhere, so after a purge works, if you search for the bytestring in a hex editor or similar, you shouldn't find it (although you'd have to ensure it was there previously to make it a fair test, it might be little-endian stored or encoded/indexed in some way).
>>16725 Thank you for the suggestion. I will think about this. Advanced search is kind of a hacked on system, and while I can go text->predicate object, I strangely enough can't always go object->text. We ran into this problem in the Client API system pred parsing recently too. If I can hack something into place easily, I'll do it. Otherwise I may have to update the actual search objects to remember their initial text too.
>>16727 >>16728 >>16729 >>16737 >>16740 Yeah, I serialise a whole bunch of Hydrus objects to JSON. I used to use YAML, but it didn't scale up well when we started hitting PTR updates with >100,000 rows. The 'triss merigold' stuff is likely example URLs and example queries and example parsing text for various conversions in the downloader system. You can check out all the downloader objects you have under network->downloader components. Have a browse around if you are interested, most of the objects have an example URL they use to link up with other objects and generally serve as a good test to see if they are pulling tags etc... correctly. Some of the example URLs and so on over the years have been jokes, so there's a couple easter eggs in there I think. I am not sure if that 300KB thing you highlighted is the one, but I know one of the downloaders accidentally had a whole html page as example text somewhere! It isn't a huge deal in terms of storage/performance, but we meant to fix it the next time some new defaults roll out or I update the system. If you want to read more, my main serialisation enum list starts here: https://github.com/hydrusnetwork/hydrus/blob/master/hydrus/core/HydrusSerialisable.py#L23 Check json_dumps, which stores one-off stuff like the bandwidth manager and options structure, json_dumps_named, which stores stuff with names like subscriptions and session containers, and the new json_dumps_hashed, which stores session pages. There should be a dump_type column, which correlates to the serialisation enum. There's hydrus code that reassembles the json into a hydrus object, but it is scattered all over the place. You can ctrl+f the whole codebase for the serialisation name to find them, if you really want to dig in. There's even object versioning and update routines.
>>16737 >>16740 Ah and to follow up here, I originally wanted my serialised objects to be shareable on imageboards and similar, which is the reason for the pngs. Pngs because a CDN will not change their pixel content if they try to optimise, and since I embed the data in the image, if the CDN strips the file metadata (some other formats store their serialised stuff in png/jpeg metadata frames), nothing is lost. I had mixed success--the pngs that the data can serialise to are greyscale and basically just print the bytes at the bottom, and they work well and have sometimes proved super useful when sharing downloaders initially and doing things like migrating subscriptions from one client to another, but ultimately keeping downloaders updated when sites change has proved the real weakness. As always, management is more complicated than distribution. In the future, I am going to rework my downloader components system to have component versioning and central repos you can check, so the work of going to a place like: https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts/tree/master/Downloaders And finding the updated png and then importing and having it overwrite the existing object and relink all nicely is all done automatically. In my mind is something like the old Nexus Mod Manager, if you ever used that with Oblivion or Morrowind. My work here is all still prototype garbage in many many ways.
>>16730 >>16731 Shit I am sorry for the trouble. Sometimes this fires off in moments, and sometimes it takes hours, I am not sure what it is in SQLite that is happening, whether it reaches some threshold of internal maintenance or if some clients have additional data that needs to be regenerated or what. For the most part, when I delete a service, I am just dropping tables, which is usually super fast. I assume it has finished by now, or you quit the process. If anything in hydrus hangs for more than an hour, please quit the process. If you like, you can try deleting the service again--it may suddenly go in seconds. I will check my code and run some profiles to see if there is anything obviously doing too much work. I wonder if part of the problem here is related to your large number of siblings. One thing it does have to recompute on a service delete is some sibling lookup stuff. Maybe that is taking ages, or maybe it got itself in a loop. I will check it out, sorry again!
>>16734 Not yet. Thumbnail objects don't actually 'know' their relationships yet, so any time I want that data in media UI (usually thumbnail right-click menu), I actually have to look it up there and then. In future, thumbnails will know their relationships and I'll be able to add some sort/collect options! >>16736 No, but I would love to have one. I'd like something in manage tags where you have: namespace: [ page ], start: [ 1 ], step: [ 1 ] kind of thing, and it then tags your selection page:1, page:2, etc... I was kind of waiting until I had thumbnail drag and drop reordering before I did it though, but then I never got around to that. I think some guys working on Client API apps were hacking around with solutions, but I am not sure whether it got anywhere.
>>16735 Damn, I think we may have hit a user interface problem here. If I repeat your steps exactly, I get the same problem--no tags--but that's because a custom tag import options gets no tags at all by default. If I tell the TIO to 'get tags' for a service (just as my defaults are set up to do), then it works. Is there any chance this happened to you, or am I just reading uncharitably? If this is what happened, then the fault is my bad UI design. TIO has a complicated dialog that could benefit from smoother workflow for one-time jobs and some red text somewhere saying 'THIS GETS NO TAGS' kind of thing. If it didn't happen and you are sure you had the tags set to parse right, let me know. If it helps btw, you can use the 'load one of the default options' buttons on the edit panel to load up your default and get all your tag settings sorted, and then you can click the 'force fetch' checkboxes to have the same options, just forcing them to go. PS) Yeah, I am sorry, there are legacy update issues here, I hate the way the downloader objects update and rename with all the (1) stuff. I will fix it, but it will have to be part of a larger downloader overhaul and I am not sure when it will happen. As I say here >>16749 , the dream is Nexus Mod Manager and it all doing version updates without you having to do anything. PPS) Subscriptions are designed for and run better with smaller file lists. I recommend you do all custom/manual jobs and 'initial' backfilling of an artist's entire catalogue in a normal downloader page. You can queue up many thousands of items here and pause/play and process much easier. Once that is all finished, then you can set up a quick small subscription just to 'keep up' with new items in future. I think I talk about this workflow in more depth here, if you missed it: https://hydrusnetwork.github.io/hydrus/help/getting_started_subscriptions.html
>>16738 >>16741 >>16742 >>16743 >>16744 >>16744 No 'namespace siblings' yet, but I strongly want to add this. It will unfortunately take a decent amount of work. Optionally unifying underscores and spaces with a that same 'efficient mass sibling' system is another goal. There's no easy fix for now. Sadly you can't just update subtags either, since you'll run into conflicts and there are multiple secondary FTS tables that refer to subtags--and I think a subtag-mapping table that does some other search tech which is probably related to your specific conflicts problem--that you'd have to update to actually get search working. If you really want a fix now and these tags are on a local tag service, your best bet is to use the Client API to automate manual tag removal and replacement.
>>16750 I actually left it running until just earlier today, when (after about 5 days straight of running) it suddenly completely locked up, no longer reading or writing anything, and froze, even with ui hang relief mode enabled. I checked the terminal, and saw a bunch of weird errors about keys not existing, with the "keys" appearing to be SHA-256 hashes. So with no other options, I killed the process, and started it up again, and now it's been stuck on booting db... for a few hours. It's back to reading and writing... something again, but I have no way to know if it's actually do anything or just in some kind of infinite loop, so I just gotta wait some more I guess. I even thought ahead once again, and used the --boot_debug flag when I started the client, but I'm not getting any output. I checked in the db folder and saw that "my db won't boot file" and there you said that it's probably fixing up the db. It's that's true, then that might mean that deleting the PTR actually worked and it's clearing out all the empty tables or rows or whatever those entries were stored in (I don't know sqlite). That would explain why the client threw missing key exceptions. I didn't know that deleting the PTR would be such an ordeal. I just wanna get back to using this wonderful piece of software you made, but I don't wanna quit now and restore from my backup (naturally I made a backup before going through with this) only to have to do this all over again some time in the near future. Anyway yeah I'm pretty annoyed, but I appreciate the assistance. >If you like, you can try deleting the service again--it may suddenly go in seconds. Unfortunately, that didn't happen. I tried deleting the service 3 times for about 10 minutes each, before finally deciding to strap in for that 4th time and just let it keep running to see if that gets me anywhere.
>>16752 You really need to define your acronyms. It took me a while to figure out what a "TIO" was (and I'm still not 100% that it's "Tag Import Options"). Anyway, looking at it now I see the "get tags" checkbox and if I check it this works as expected (I was able to get tags for previously blank files in my test client). I don't know if this is really terrible UI, but the one question I do have is... why is "get tags" not enabled by default? Are you expecting people to regularly setup subscriptions that only have custom defined tags or something? >Is there any chance this happened to you, or am I just reading uncharitably? I thought I was clear but to be entirely unambiguous I now have at least several thousand items that have no tags in my main database. Although it's not that big of a deal now that I know what I was doing wrong and I can force-recheck stuff to re-pull the tags. This does tie in a bit with the last thing though. >PPS) Subscriptions are designed for and run better with smaller file lists. I recommend you do all custom/manual jobs and 'initial' backfilling of an artist's entire catalogue in a normal downloader page. You can queue up many thousands of items here and pause/play and process much easier. Once that is all finished, then you can set up a quick small subscription just to 'keep up' with new items in future. I think I talk about this workflow in more depth here, if you missed it: >https://hydrusnetwork.github.io/hydrus/help/getting_started_subscriptions.html Yes, I'm fully aware that is how _you_ think the workflow should go. However, as a user this essentially boils down to "do significantly more work per artist/tag/query and for no reason". If I can just add them to subscriptions then that's all I have to do, and I know I have everything from that artist. If I have use the gallery downloader as well, there's a decent chance I'm going to miss a query at some point and be missing the older stuff for some subscriptions because I have to manually sync the two. If I try to be super conservative and only add artists to subscriptions after I've downloaded them in the gallery, that means add artist -> wait several minutes - a few hours -> add them to subscriptions which for many queries would take ages. And to tie in re-checking tags from earlier, the entire point of this is to have a well-tagged library instead of a folder mess. I am not going to tag all of this myself when it's easily available on whatever site I'm downloading from. However, sometimes they have the wrong tag that then gets fixed, or sometimes I don't understand the TIO interface, or sometimes I want to use the json downloader to get pool:xxxx tags on everything. So occasionally I want to be able to re-fetch all the tags in my library. I can't do that though if I can't reset a subscription and have it check everything because of the 1k limit. And no, I don't want to manually re-enter all my queries a third (or fourth, or fifth) time in the gallery downloader. For my current situation I doubt any one subscription has over 1k untagged items, but if they did (say I hadn't caught this quickly) I would be shit out of luck. Also, I've gotta say, this last bit is really patronizing. I just gave you a set of detailed reproduction steps for (what I thought was) an issue using a clean client I setup and tested of my own volition. I am not some dipshit boomer who is insisting that - no really, the power cord is totally plugged in - when it's obviously not, so don't just paste me the link to the getting started docs 'in case I missed it' like some copy-paste response from a call center.
>>16755 >why is "get tags" not enabled by default? People have lots of different file services, so for which one should be enabled by default? "my tags", so you can't differentiate between tags that were automatically parsed vs ones you entered yourself? Or all of them, so the PTR would drown in booru-tags? How about only file services named "parsed", because that would fit my workflow. >Yes, I'm fully aware that is how _you_ think the workflow should go. However, as a user this essentially boils down to "do significantly more work per artist/tag/query and for no reason". Well, *as a user*, I disagree completely. Subscriptions are for checking out new stuff, not downloading an entire artists library. That's the entire point of gallery-pages. You are not meant to re-check subscriptions at all, since they probably don't change all that much. I do have an entire page called "staging" where I add all of the tags I would like to be downloading to gallery downloaders, and before adding them to my subs, I check the files to make sure the query gives me what I want. Like a query, copy it, add it to subscriptions, done. Don't like it? CTRL+A, delete, maybe blacklist some tags. And after I am done, I delete the query from the gallery page. No missed queries at all, if it's there, I know there is work to be done on the query. >that means add artist -> wait several minutes - a few hours -> add them to subscriptions which for many queries would take ages And? You don't need a subscription right away, you can wait a couple of minutes to download all uploaded files, make sure they are to your liking and then add them to subs in a second step. What would a subscription do better than a gallery page anyway? >And no, I don't want to manually re-enter all my queries a third (or fourth, or fifth) time in the gallery downloader. >And no, the solution is not a solution because... WELL IT JUST ISN'T, OKAY!? Select all you want to re-check in your subscriptions, hit "copy queries", open a gallery downloader, adjust the settings (or edit the defaults, which you should do anyway) click the clipboard. Done. No hassle at all for the rare times when you actually want to do this. It's also faster because it does all queries in parallell. However, I never had to do this anyway, not sure why you would. >I am not some dipshit boomer who is insisting that - no really, the power cord is totally plugged in - when it's obviously not, so don't just paste me the link to the getting started docs 'in case I missed it' like some copy-paste response from a call center. Well, you either did not follow it carefully enough, or ignored it on purpose. He posted it so you may find an answer there quicker than having to wait for him to reply. Also, you did not pay anything for the support, so don't go complaining about the quality. Be grateful that a dev even responds to your user error and even gives you so much information in such great detail. Go post on linux mailing lists that your NVIDIA GPU does not work and see how that goes.
>>16749 > In my mind is something like the old Nexus Mod Manager, if you ever used that with Oblivion or Morrowind I've played both and used NMM. And.. NMM is crappy, nobody uses it if they looked into the subject for more than a second. It just blindly overwrites your Data directory while the de-facto standart Mod Organizer keeps your mods in separate folders, mounting a virtual Data when launching the game. So, analogy with NMM sounds very bad.
How to automatically add artist id in tags when downloading images of different artists from pixiv? Many images don't have any tag in PTR. I google for a while, only find third-party tools (such as PixivUtil2) that can insert artist id into filename after downloading images, and Hydrus supports using regexes that parse filename when importing and adding tags at the same time.
>>16756 >People have lots of different file services, so for which one should be enabled by default? Right now when you setup custom tag imports, it defaults to literally nothing. This is not a sane default and I can't imagine anyone disagreeing, but here you are. >Well, *as a user*, I disagree completely. Subscriptions are for checking out new stuff, not downloading an entire artists library. ... You are not meant to re-check subscriptions at all You know, I started writing some really snarky thing about how I, as a user, disagreed and was going to quote the dictionary definition of "subscription" and how it is literally the opposite of something 'you aren't meant to recheck' but I kinda gave up. I don't know if English isn't your first language or just arguing in bad faith because you're upset or whatever, but a subscription is something that is checked regularly. I'm not referring to the definition in that last sentence either, it's quite literally something that the program itself rechecks periodically. >And? You don't need a subscription right away, you can wait a couple of minutes to download all uploaded files, make sure they are to your liking and then add them to subs in a second step. What would a subscription do better than a gallery page anyway? Given I'm asking for a 1k limit to be removed, saying "a couple minutes" is pretty disingenuous. The part you seem to have either missed or skipped intentionally is "for many queries" (to be super clear for you: doing this many times for each query would take an excessive amount of time). Tools are supposed to save time, not waste it for no reason. >Select all you want to re-check in your subscriptions, hit "copy queries", open a gallery downloader, adjust the settings (or edit the defaults, which you should do anyway) click the clipboard. Done. No hassle at all for the rare times when you actually want to do this. It's also faster because it does all queries in parallell. Yeah, I have enough queries that that would be a bad idea. But please, go on about how your specific use case is the only one that exists, tell us about your "staging" page, etc. etc. Make sure to mis-quote me again too so you have a nice, fully stuffed straw-man. >However, I never had to do this anyway, not sure why you would. I literally gave 3 examples. You are arguing in bad faith. >Also, you did not pay anything for the support, so don't go complaining about the quality. Be grateful that a dev even responds to your user error and even gives you so much information in such great detail. Ah yes, the 'it is free so you cannot complain about anything' trope. Well, this website and my post were free for you to read, so don't go complaining about either of them now, or else you're a hypocrite.
>>16754 >>16750 Okay so I left the db booting overnight and a few minutes before I went to go check it next morning, It actually finished booting. It looks like the error was from the ptr being removed, because it appears to be gone. Great! So I'm vacuuming the database pieces now. Is that all I need to do to reclaim all the space that was taken up by the ptr (well except all the siblings that are still here) and get everything back to how it was before I added the ptr? Are the other things I need to do, or parts of the ptr that Hydrus isn't able to remove yet?
>>16759 >This is not a sane default and I can't imagine anyone disagreeing, but here you are This is a safe default, which sounds pretty sane to me. If you wanted the parsed tags but don't have them, you can force a reparse, but if you didn't want the parsed tags but Hydrus decides to add them to every tag service by default, you can't undo that. >Well, this website and my post were free for you to read, so don't go complaining about either of them now, or else you're a hypocrite As long as you remember to not complain when no one wants to help you anymore, or else you're a hypocrite.
>>16759 >Right now when you setup custom tag imports, it defaults to literally nothing. This is not a sane default and I can't imagine anyone disagreeing, but here you are. Yes, because if it adds lots of tags to a tag service, I have no recovery mechanism. Whereas if nothing gets added, I just add the same query again, with different tag import options... If there are users with both workflows, "better not add anything" seems to be the route to go. Especially since the other camp would just need to run a gallery downloader to see no tags get added. >You know, I started writing some really snarky thing about how I, as a user, disagreed and was going to quote the dictionary definition of "subscription" and how it is literally the opposite of something 'you aren't meant to recheck' but I kinda gave up. I don't know if English isn't your first language or just arguing in bad faith because you're upset or whatever, but a subscription is something that is checked regularly. I'm not referring to the definition in that last sentence either, it's quite literally something that the program itself rechecks periodically. I mean, if you want to argue dictionary defintions, a subscription checks every so often if new results are available for a query - seems like "an arrangement to receive something, typically a publication, regularly by paying in advance." to me. What it does not do is re-check everything. English is not my first language though, you are correct. Do you also expect your newsletter subscription to send you their entire archive once a year? >Given I'm asking for a 1k limit to be removed, saying "a couple minutes" is pretty disingenuous. The part you seem to have either missed or skipped intentionally is "for many queries" (to be super clear for you: doing this many times for each query would take an excessive amount of time). Tools are supposed to save time, not waste it for no reason. I don't get it - what is time consuming here? You copy all the queries (using the "copy queries" button in the subscription) and paste them in a gallery downloader (using the clipboard button). This will download all the queries in your clipboard, no need to do it one by one. How many subscriptions (not queries) do you have that this would be a lot of work, especially about 4 times per year? >Yeah, I have enough queries that that would be a bad idea. But please, go on about how your specific use case is the only one that exists, tell us about your "staging" page, etc. etc. Make sure to mis-quote me again too so you have a nice, fully stuffed straw-man. You said: >However, as a user this essentially boils down to "do significantly more work per artist/tag/query and for no reason". I said that I am also a user and I do not have any of the issues you are describing, using the workflow that is outlined in the docs. I tried describing my workflow so you too may have less issues. Also, it just occured to me: Are you reffering to "subscriptions" as "queries"? If you open network > manage subscriptions, how long is that list? I ask because every item in this list is "a subscription". And every item in a subscription is a query. In my experience, you should have lots of queries, with only a few subscriptions. If you had thousands of subscriptions, I would get your situation. >I literally gave 3 examples. You are arguing in bad faith. Fair enough, here are your 3 examples and why they don't make sense to me: >However, sometimes they have the wrong tag that then gets fixed Which would still not work for hydrus, because it just adds new tags and does not remove old invalid ones. You have *more* tags, but you keep both the old (bad) and new tags. Odds are, you probably don't care about the new and improved tags, since you did not specifically look them up to begin with. >sometimes I don't understand the TIO interface This could be avoided entirely if you just used a gallery downloader beforehand. Then, you would see that no files had tags, check and fix your import options and would never have an issue with subscriptions, since you would not make the same mistake twice. >or sometimes I want to use the json downloader to get pool:xxxx tags on everything. JSON downloader? You mean you use an external tool? You also said that taking the queries from the gallery downloader and adding them to subscriptions would take too much time, but it is literally the same thing I described backwards. Copy all queries by the downloader to your clipboard, paste them in the subscription. The subscription will then check all the results of the query and check if their URL exists in the DB. Seriously, I think you are doing something very wrong if this takes you more than 30 seconds for any number of queries. >Ah yes, the 'it is free so you cannot complain about anything' trope. Well, this website and my post were free for you to read, so don't go complaining about either of them now, or else you're a hypocrite. I complained about your entitlement. From your post, it seems like you do not appreciate the effort that devanon put in to help you out, which is quite rude.
(21.07 KB 723x283 downloader.png)

(30.14 KB 1898x726 subscription.png)

>>16762 Have some pictures, maybe it helps to clear some things up...
>>16762 >JSON downloader? You mean you use an external tool? Literally the e621 json downloader for hydrus which is what this was initially about. You did read the, what, whole 6 or 7 posts in this chain right? You're not just jumping in on a bug report because you're upset someone would disagree even slightly, *right*? >I complained about your entitlement. Ah yes, "really patronizing", what a sense of entitlement! Truly, some of the strongest language I've seen on the internet. Let my prostrate my self before you and devanon for my horrible sins! I'm not going to bother replying to the rest of this garbage as I think it's clear your just some ass-blasted sycophant acting in bad faith. Also, you did not pay anything for testing or issue reports, so don't go complaining about their quality. :)
>>16764 I was trying to help you, because I think you did something wrong that was easily fixable and devanon takes a long time to respond. I was also trying to show you an alternative way of doing things, so you could better understand why "add tags to everything" was not the right default. Since you don't care about that "garbage" (Me asking if you misunderstood something fairly fundamental), have fun with your problem. I have nothing to gain from your client not working, so I see no reason to argue at all. By entitlement, I talk about the fact that you are arguing with people trying to help you, how their help could have been better, how dare they not remember every post in this thread for weeks.
>>16714 I ran the gallery search again, and it indeed seemed to ignore the placeholder file from last time and just check the urls in the gallery for files anyway. So now what do I do with the placeholder file? Do I delete it normally, or do I delete it without the deletion record? And do I clear the urls for that file now, or do I leave them?
(399.63 KB 3758x3370 4de0.jpg)

Even though I paused one of the queries in a subscription of mine, it keeps starting up. It's really annoying and I don't know what to do. I don't know what info to give you though. I have a Sankaku Channel subscription for creators I like, and one of the queries is a creator who I have paused at the moment, but Hydrus keeps ignoring that it's paused and starting that query up anyway.
I had a great week. I fixed many different bugs and improved the network code to better handle and resume interrupted downloads. The release should be as normal tomorrow.
>>16765 >...have fun with your problem. I have nothing to gain from your client not working, so I see no reason to argue at all. It works after I set the tag import options properly *and* this is already figured out before you even respond. >how dare they not remember every post in this thread for weeks. The whole post chain between when I say there is a problem and when you come in to "help" is literally 6 posts. >>16755 >>16752 >>16735 >>16539 >>16529 >>16514 >I was also trying to show you an alternative way of doing things, so you could better understand why "add tags to everything" was not the right default. You call me entitled while you sit here smug in the knowledge that your way of doing things is the "right" way, which is why you know what the "right default" is. Let me guess, you have the "right" opinions too? So correct are your opinions that you know for sure that you should not use subscriptions to *subscribe* to an artist >>16756. >By entitlement, I talk about the fact that you are arguing with people trying to help you It takes two people to argue. If this is what you call "help" - jumping in after the issue is solved, posting text walls without even being bothered to read the context (SIX whole posts! such a burden!), and just telling me how right you are and how wrong I am about how to use something - then I don't fucking want your help. I would *much* rather wait for devanon to respond. You're not some gift to the world or even this thread, all you've done is shit it up. You're just some smug asshole who thinks much too highly of himself. >>16761 I'm not sure if you're the the same guy as the other posts, but presuming you're not: >This is a safe default, which sounds pretty sane to me. If you wanted the parsed tags but don't have them, you can force a reparse, I don't think a default which gets you a bunch of tag-less files is a safe default. It could be some time before you notice a problem and with the current 1k limit for initial checks there might be a situation where you can't reparse everything. Additionally the default tag options (which apply to every subscription by default) do import so I'm not sure why having the custom options be different would be an issue. >but if you didn't want the parsed tags but Hydrus decides to add them to every tag service by default, you can't undo that. I think most of the point of hydrus is to have stuff tagged right? Either way can you not delete tags? Thinking about it I've never actually tried.
>>16770 >You call me entitled while you sit here smug in the knowledge that your way of doing things is the "right" way, which is why you know what the "right default" is. Seeing as the documentation agrees with my way of doing things, it certainly seems like hydrus was designed around it being done this way. I wanted to explain with an example, since maybe you did not get what the docs were telling you. So, am I objectively correct? No. Am I more in line with how hydrus was built? Probably yes. I do it as the docs suggest and never had an issue, you can go against the program and the docs all you want, that does not make me right and you wrong. >Let me guess, you have the "right" opinions too? So correct are your opinions that you know for sure that you should not use subscriptions to *subscribe* to an artist >>16756. I think you are reading too much into this. What I was trying to tell you was that this (in my opinion) isn't how it is supposed to work in hydrus and that you would have a much easier time if you were to do it like me. The tools you need to do what you want already exist, instead of using those, you need to take dev time away so that subscriptions do what you want them to do. This would not benefit me, so I tried to find a solution that works for us both, in this case, me telling you an alternate way to achieve your goal. Also note that these limits are very likely there for a reason. Removing them implies either a substantial amount of work to be done, or a lot more issues from people that go past these limits. >You call me entitled while you sit here smug in the knowledge that your way of doing things is the "right" way, which is why you know what the "right default" is. As the other anon already said, this is the safer way of the two options. If you got your way and got this default changed, I may very well end up with a lot of garbage tags that I cannot reasonably get rid of, because I do not know which of the tags were auto-added. You, on the other hand, just have to re-fetch those tags. Also, you really don't seem like you are familiar at all with hydrus. Therefore, I would claim that yes, I do know, better than you, what defaults should be set. I will not put any more effort into this conversation, it is pointless since you do not wish to read and consider this anyway. If you do not have any more issues, great for you, we may now stop discussing this. If you do, not good, but I am of no help either. Please take care.
Devanon, is there a "copy as curl" or similar feature available in Hydrus? In the Firefox dev console, you can right click a request and "copy as curl", which will give you the whole request with all the request headers that are sent, that you can then paste in your terminal and play around with. I think this would help for debugging downloaders (I'm still struggling with some images from Sankaku, that I can display in the browser but that get me the "refresh page" in Hydrus). I'd see this as a right-click item under the search and file log in downloaders, for example. As always, thanks for the hard work!
https://www.youtube.com/watch?v=gZgbF2TRK2k windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v459.2/Hydrus.Network.459.2.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v459.2/Hydrus.Network.459.2.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v459.2/Hydrus.Network.459.2.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v459.2/Hydrus.Network.459.2.-.Linux.-.Executable.tar.gz Hey, the release I put out earlier had a problem! The links above point to the fixed version. If you got the old one within an hour of me putting this post up, please download and install/extract again and you'll be able to boot. Sorry for the trouble! I had a great week mostly clearing out bugs. highlights I gave the new duplicate filter zoom locking calculation another pass. Thank you to the users who submitted examples of my last attempt not working right. It is now more careful and targeted towards fixing the 'a watermark banner spilled over my monitor edge' problem, and it deals with different combinations of portrait and landscape images and viewers better. Let me know if you still have any borked zooms! The client's downloader system can now deal with some 'partial/interrupted download' situations and automatically resume from where it left off. If you ever saw a network job widget error out with 'was expecting 21.3MB but got 458KB', this will try to fix that! The program should be better about saving the work of subscriptions that are running when you exit the program. The way their jobs ran was a little hacky, previously, so I moved them to the main worker pool everything else runs on and brushed up their shutdown signals. Let me know if you encounter any situations of them not shutting down nice and fast with client shutdown. To help with debugging and other screenshotted reports, the UI now puts the program version number in the title of windows and dialogs. Also, if you previously set a custom 'main gui title' under options->gui, I have reset this this week and renamed it to 'application display name'--it now shows on all windows. Big Sur macoS clients have had a problem for a while where menus spawned from dialogs can't be clicked. It seems to be a weird Qt bug. Until there is a better fix, I hacked together a new window to display the menu items instead. If you are a Big Sur user, let me know how it works for you. You can turn it off if you need to under options->gui. I wrote a new help document, 'help my media files are broke.txt', in the install_dir/db directory. This collects the different repair routines I have developed with users who have run into trouble with broken drives or incomplete backup restores. If you are missing many files--or you know you have many surplus files--and were not sure how to fix the situation, please check it out! I fixed the new 'advanced file deletion' checkboxes under options->files and trash! Sorry, they weren't hooked up right in 458! full list - main highlights: - to help debugging from screenshots etc..., the client now puts its version name on every window title, like 'review services - hydrus client 459'. (issue #447) - the 'main gui title' option is reset and replaced with 'application display name' this week. it now alters the 'hydrus client' part on every window title. the actual 'main gui title' is now "main" lmao - wrote a new help document, 'help my media files are broke' in the db directory. this collects the different recovery routines I have developed while helping users after drive failure or other problems cause many missing files or a desynced database and file storage structure. I will be pointing people to this in future, please feel free to do the same - two new file maintenance jobs are added: for 'presence' and 'integrity' checks, you can now do 'if has URL, then try to redownload, else remove record'. this tidily combines the two more specific jobs that are commonly run after a hard drive problem. the 'presence' version is now the default selected job and recommended for most simple situations - a new easy-select button on the review file maintenance panel lets you select all media files - I put some more time into the new duplicate filter zoom locking calculation. thank you to users who sent in examples of my code not working well--I have scaled back what it tried to do. now it will tend to heigh-lock for landscape images and width-lock for everything else _unless_ you are currently viewing the default zoom and that roughly fills the canvas on a dimension and doing the default lock would cause the next image to spill over the screen. the 'solution' here hence targets the 'watermark spilled over' problem more specifically and deals with all combinations of landscape/portrait A/B/canvas better. I'd still like to introduce some zoom locking options here for regular browsing, but pinning down what exactly is useful is trickier than I expected - the edit tag import options panel now shows 'THIS CURRENTLY GETS NO TAGS' warning red text if it is non default and no tags are set to parse and there are no additional tags - the status bar now shows '1,234 files in 20 collections' when you have just collections or just collections selected (previously, it wrongly said '1,234 collections') (issue #807) - macOS clients will now show dialog-created menus in a debug dialog unless the new BUGFIX checkbox under 'gui' options page is unchecked. this _should_ help Big Sur users who are unable to interact with menus created in dialogs like manage tags or manage services. I threw this together, so let me know how this works for you! (issue #986, issue #858) - the program now waits specifically for currently running subscriptions to stop work and save themselves before moving on with further shutdown tasks. hand in hand with this, subscriptions are now faster at stopping work on client exit, even when they have no popup message (through which some hackery dackery shutdown signals are sent otherwise) (issue #790) - physically deleting thousands of files in one go should no longer lock up the file manager and other systems for ages--physical delete is now serialised and processed on a new threaded mainloop, so it doesn't matter how fast the requests come it, it will chunter at a polite speed and take breaks and should not choke other consumers and freeze up other 'things are great, you can start new work' status checks
Edited last time by hydrus_dev on 10/27/2021 (Wed) 23:53:43.
- network job improvements: - hydrus network jobs now try to resume incomplete responses (previously they just dumped out and tried again from the beginning). if a server provides less content than it said it would, or it explicitly gives us a partial response, we now resume at that point! should fix dowmnloading of longer videos on 8chan.moe - hydrus network jobs now send a range header by default, letting servers return 206 (partial content) if they wish - SSL errors (cert verification and similar) are now caught in the network engine separately to generic connection errors. they will not be reattempted, and the failure note will display specific error info - refactored some response header parsing code, cleaning up how some variables are initialised - greatly improved the job reattempt system, resetting variables more neatly - improved some response range and content length calculations - . - smaller items, mostly bug fixes: - fixed a recent typo bug that caused the edit url class dialog to always spawn with 'file url' type set. sorry, this was stupid! (issue #982) - the edit url class dialog now sends the 'normalised' url as the example text for the api and referral string converter edit panels - fixed the new advanced file deletion 'remember last' checkboxes in _options->files and trash_. they weren't hooked up right, sorry! - fixed the tag menu's siblings submenu's copy command where it says 'ideal is "xxx" on: yyy'. despite the correct label, this was sometimes copying a different service's ideal (issue #855) - fixed the 'media zooms' text input under _options->media_ not turning off the 'red' invalid mode once its text is again valid - when you cancel the 'edit parser' dialog, it shouldn't say 'it looks like you made changes' so much when you didn't make any. the 'has changes' test now ignores some background test data updates that may have happened (issue #875) - if a JSON parsing formula is given HTML, the 'cannot parse' error now tries to detect this and present a better error text (issue #888) - I _think_ I fixed a problem in the new bytes rendering calculation (where it goes 1018825 to "995KB") where on some unlucky edge-case numbers it could non-determinitively choose different sig figs (e.g. flipping between 994.9KB and 995KB) - fixed a couple of file move actions that were unable to move across Windows partitions when the timestamp was before 1980-01-01 (issue #989) - mr bones now recognises you are not a new user if you deleted all your files. you can never exit - after some testing, it seems like large 'drop table' operations in SQLite sometimes work within seconds but generally take far longer, often working as slow as 10MB/s (and I just talked to a guy for whom it took _days_(!!!). writing a fix to make 'delete service' always run fast for something as large as the PTR will take planning and work, so for now I have attached a warning note to the delete service confirmation dialog - updated the file maintenance review panel to newer async code - fixed a typo bug in URL export when a file is missing/bad in file maintenance next week I am glad to be clearing out this older work, and I will try to continue. My plan is to try to get my github bug report queue under control and then return to the larger jobs of janitor petition workflow and multiple local file services.
(139.98 KB 1366x737 Screenshot_20211028_040107.png)

(109.65 KB 1027x698 Screenshot_20211028_040746.png)

(113.76 KB 1366x735 Screenshot_20211028_041105.png)

(83.70 KB 1280x720 DFBDFHX.jpg)

>>16773 I just downloaded tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v459.2/Hydrus.Network.459.2.-.Linux.-.Executable.tar.gz, and it went wrong. 1- I overwrote v457 with this new version and when I booted my database went missing. See pic 1. By the way, the declared version is v459, not v459.2 2- Then when I closed this v459 client, a dialog showed up asking me if I wanted to do some kind of maintenance, I pressed OK/YES and the client closed after some database reading. 3- Again I overwrote my Hydrus folder but this time with v457. A dialog showed up complaining that my database was v459 and not compatible with v457. Then I killed the process as recommended. See pic 2. 4- Lucky me, I followed your advise to do a prior database backup before any upgrade. I overwrote all four *.db files with the v457 backup and now my client is working fine again. See pic 3.
hydrus dev can u look at the comment on this commit about the client api please https://github.com/NO-ob/LoliSnatcher_Droid/pull/64#issuecomment-954014650
(1.42 MB 1883x917 ClipboardImage.png)

Is there any way to change the default width of the thumbnail viewer (right) and search/tag viewer (left)? Also if possible, to apply the change to existing pages
Is there a way to quickly see how many tags a file has (including virtual tags) either from the file page, or the media viewer? If there is, I can't find it.
Devanon, can you please add a progress indicator to windows such as db backup, migrating files, and all those other windows where hydrus will be sitting for a while. It'd be nice to see how long it will take roughly to complete, some logs of what it's doing, and how long it's being running for.
Hi devanon, would it be possible to have the option of displaying the number of alternates in a thumbnail similar to the page number display? As well as to have a keyboard shortcut to open the set of alternates? This would help quite a bit in tagging alternate images
why is hydrus unable to handle backups using the built in backup tool, when the database files and thumbnails are scattered across 3 locations? All it should do is place these 3 folders into a folder of choice by the ussr.
>>16781 Hydrus isn't a backup program, it's database. Just use FreeFileSync or any other of dozens of backup programs. Hydrus Dev has better things to do than recreating the numerous backup programs that already exist.
(27.15 KB 1187x444 client_CX3TJOPspn.png)

I was the person trying to setup Hydrus on a NAS. Someone here suggested having thumbnails and the db on the local drive, and then having the media files themselves on the NAS and said that's fine. I was reading the docs and it's very confusing what I need to do to separate these 3. I think I did it? Pic related. >Top Path is the NAS, which should be the media files. >Middle Path is the original directory (this is a local drive where all the files and db and thumbnails used to be stored, before I moved the weight over to the NAS and setup the thumbnail path. Not sure why it won't let me remove that path though). >Bottom Path is the thumbnails folder I made on a local drive. Now where I am still confused is, how to separate the db out of the media files on the NAS, to put the db onto the local drive? So it's only the media files on the NAS-and then the db and thumbnails on the local drive. >Other Questions >Backups To back this up, I just manually (or use rSync) to make a copy of these separate 3 paths (media, thumbnails, db), to a folder on my backup location correct? That's all? What's the safest way to do this automatically? Or am I going to have to manually close Hydrus every-time before I backup then manually run rSync. Also just a suggestion to make it so you can manually input the weight, because sitting there clicking the mouse like 500 times is fucking terrible.
Dev, is the Hydrus package on AUR managed by someone you or someone you trust? Also, I noticed it hasn't gotten Wednesday's update yet.
(94.43 KB 1600x900 ellen-cover.0.jpg)

>>16783 >backup >That's all? Just my 2 bits. I don't have a hard drive to spare and with room enough to do a full backup (almost 2 TB of files), however, my approach is just to backup the SQLite database files; which I believe contain the file paths, hexadecimal ID, the tags and notes. That said, if anything goes wrong besides a hard drive failure, just restoring the four *.DB files will allow to recover the Hydrus database. When copying these files Hydrus must not be running. The 4 files are (all inside the /db/ directory): - client.caches.db - client.db - client.mappings.db - client.master.db Additionally you may want to backup the video viewer settings, the pertinent file is (if exists): - mpv.conf
I'm just gonna copy paste my posts from 4chan: I just updated hydrus to latest (459.2), but when I clicked on a video for the first time, my hydrus crashed. Previously when that happened it was cause my audio drivers crashed when I ran out of RAM and I hadn't restarted them yet. But my audio drivers are working. Is this going to happen every time on this release? >Are you playing shit through WASAPI exclusive mode or anything similar? I don't even know what that means, so no I guess. But It doesn't matter anyway since I just tried clicking a video, and it played- well. As I was formatting this, hydrus crashed again. I think the way I reproduced it was, first I clicked on a video, which worked, in that it showed up in the preview window and shit. Then I clicked on empty space so the video wasn't selected. Then I started formatting this post, but in the middle of it, clicked on a video again, but clicked on another video right after, without clicking on empty space first as a buffer. Perhaps it's only clicking on another video while a video is playing that causes the crash. Either way, I will avoid playing videos at all on this release. Really annoying. I hope this has been brought up as an issue already so I don't have to. This version was released 2 days ago.
>>16777 I'm pretty sure if you set your leftmode "page" as the dimensions you want and reboot (dunno if that's necessary), all subsequent pages you open will share those dimensions. But I don't think thus applies retroactively to pages already open.
>>16787 >leftmode leftmost*, as in, imagine you had 5 pages open, the one on the far left is the template for any pages you open (at least after a restart I'm pretty sure, but maybe even without restarting)
>>16754 >>16760 Damn, I am really sorry for this. I did some tests on a larger test database and found deleting about 3GB of mappings would sometimes take 13 seconds, sometimes 140. By the sounds of it, this has scaled in a squared or worse way with you. After doing some research, I discovered basically SQLite says 'DROP TABLE is slow when the table gets big'. It seems there is a certain layer they cannot optimise for, and it simply has to go through every page of the table and wipe something or update some master metadata. I can see two ways around this: 1) Store big tables in their own files, one for each service, then when I want to drop a service, just delete the whole file. This would be a neat solution, but it would add significant code and transaction complexity since I can only have about 7 files connected at once so I would have to swap them in and out as needed, and not allow transactions that altered more than one or two services at once. 2) Instead of the instant DROP TABLE, I rename the tables to 'pending_table_delete_x' or similar and have a maintenance task that will slowly shrink them, deleting a few thousand rows at a time, and then drop them when they are empty. This means you cannot recover your database space for a while, and if the main PTR table is 1.3 billion rows, even deleting 10,000 rows at a go would mean 130,000 operations before it was empty. That could means weeks to clear out an old PTR. I guess it matches the weeks to initially sync. I think 2 is the best way forward, but it will take time to figure this out, so I added a warning label to that delete menu. Your case is the worst I have heard of (before, a few hours is the worst I remember), and I regret the inconvenience. I have added a warning note to that delete confirmation dialog and will thinking about other possible answers here. I don't want to force users to shut down when they delete a service, but that might be a good step in the meantime--if I force them to shut down and do the delete when only the 'exit' splash screen is open, that will reduce some related UI freeze problems that may be why your client never woke up nicely. ---- As to your question of if there is anything else to do, I think you are done. client.master.db will still be maybe 8-9 GB since I do not recycle master definitions yet, but I will be adding code to do this in future. It'll be another maintenance routine that will go through all master ids and delete those that are no longer used anywhere.
>>16755 >>16756 >>16759 >>16761 >>16762 >>16764 >>16765 >>16767 >>16770 >>16771 Thank you for your feedback. I am sorry that the workflow here has not worked for you, and I would like to make it easier to set up subscriptions in future. The issue with subscriptions working better when they are small is mostly a technical limitation, a bit like how an RSS feed will store the most recent 25 posts of a blog rather than the whole catalogue, but a technical limitation is not something you as a user should be worrying about. Since subscriptions have in many cases become 'sync with all this artist's work' machines, I have had a couple of conversations before with people that maybe subscriptions should just have a workflow that is 'put in artist name' and it does all the backlog download for you. This might be a nice way for the future system to work, but it would also need a decent amount of planning and work. For now, the next big thing I want to do with subs is having a kind of 'review subs' panel that is not a dialog, much like the differente between 'manage services' and 'review services'. Now that subscriptions are no longer giant objects and can be loaded into memory in less than a second, I would like to have them always accessible in UI so we can have a right-click menu on the downloader query list that is like 'add "samus_aran" to "cool gelbooru stuff" subscription' and related "this is already in 'cool gelbooru stuff" subscription' indicator(s). It is still pretty cumbersome to edit subs, especially having to wait for them to stop working to edit them. As for your concern about a longer history or log of everything a sub has done so you can grab all the items and re-run them in some way to grab new tags, I've also had conversations about maybe having a 'this file came from x subscription' metadata, searchable too, that would be in addition to known urls. I could then emulate a huge 20,000-file strong sub using this knowledge. And it would also obviate some of the session clutter some users have with published subscription files making huge pages--now you could effectively reload those pages with a simple search. I am still thinking about this. I hope I can make things work more easily for you in future. If there is something I could have written out better in the help to better prime you for and explain the current limitations, I'd be interested to know it. I added red warning text to an empty Tag Import Options this week, and I think I could do more here. In any case, please let me know how you get on.
>>16757 Ah, thank you. Should I say 'Mod Organizer', then, maybe something else? The part I am really thinking of is where in UI it used to list your mods something like: skimpy elf clothes | author name | longer decription about the mod | version | *latest version* Basically having it check some repository somewhere for new versions and letting you update (or not) a whole bunch with one click. A big aim of the next iteration of the downloader system will be unique IDs for downloaders and proper versioning tracking so authors can publish fixes and other updates to github or something and we can have clients check that and update automatically for you.
(24.93 KB 893x611 ClipboardImage.png)

>>16758 I don't think we have any downloaders that pull this by default, but if you are feeling brave, you can try to edit your own downloader and add this. Open up network->downloader components->edit parsers and then edit 'pixiv file page api parser'. In the 'content parsers' tab, duplicate the 'creator (user_account)' parser, and edit the duplicate so it gets 'user_id' instead of 'user_account', as in my screenshot. Do a test download and parse to make sure you have it all set up right. Make sure you give the new Content Parser a nice name, like 'creator (user_id)' and make sure you rename the 'pixiv file page api parser' to something else since you customised it.
>>16766 Yeah, I think just delete it as you would any other file. You can leave the URLs. The current logic is good but inefficient for a handful of files, so I don't think we should try to get too clever unless we know there is still a significant problem to fix. In future I hope we can have a nicer solution to this class of problem. Downloaders or domain definitions might even hardcode some of this info.
>>16768 Damn, thank you for this report. I will check my subscription running code and see how this could slip through. It sounds like somehow the sub isn't being unloaded properly while you wait for the edit subs dialog to run. Or maybe I have a logical issue where paused only stops checking, it doesn't stop trying to fill in the file queue. Whatever is going on, I will try to fix it and/or improve the indicators so it is obvious what is going on here. >>16772 This is a great idea, thank you!
>>16775 Thank you for this report. I am very sorry for the trouble and confusion here. You can get the 'this looks like the first time you have started...' popup if somehow your launch shortcut has changed. Do you launch the client with -d or --db_dir launch parameter, to remap where it should be looking for your db folder? Is there any chance that changed during the update, or if you tried to run the executable raw, without the parameter? I know why you blacked it out, but if you have the original screen shots here, what are the 'db_dir' dir sections in your help->about here? Are they correct, or were they in an obviously wrong location? I don't need to know the locations, but if you look at them, maybe something will click. Another way your db folder can be redirected is if hydrus boots and the given path (or the default, which is install_dir/db) appears to be read-only. In this case, I think it should default on linux to ~/hydrus. Do you have a database there? Is there any chance your old db got set as read-only, or the user that booted the update did not have the right to see it? I don't notice anything super obviously different about 457 vs 459 linux tar.gz. Seems like the db folder still has the same permissions and so on. But perhaps there is something different with 459 and the permissions got messed up somehow. Whatever the case, it sounds like I could do with more user feedback here.
>>16776 Thank you, done. I have had similar conversations with some other Client API guys recently. I need to update the old add_tags call to use a newer and better way of referring to services. >>16777 >>16787 >>16788 Yep, put your mouse on the sash in the middle and you should be able to resize, same with the horizontal sash above the preview box bottom left. Then, when you close the program, it should remember the sash positions on the current page for next boot. You can also do some related actions under pages->management and preview panels submenu. Let me know if anything doesn't work!
>>16778 As a count, like '11 tags'? I don't think there is. That's probably a good idea--where do you think would be good to show that? Maybe in thumbnail/media viewer right-click menu? Either in the top row where it expands out to import time etc..., or below by 'manage tags', I could have it expand there and then and talk about tags a bit more.
>>16779 Yeah, I am sorry for the bad UI here. A lot of this stuff is on ancient async code that I never built progress update hooks into, and as you've seen a lot of it still hangs the UI after a couple minutes before eventually releasing it. I have a (slow going) plan to completely replace all those jobs with newer async progress popups (like PTR processing or subscriptions) that work in the background and still let you do work. DB Backup won't be able to be background so much, but I can add some progress updates. >>16780 Yes, but not yet. Thumbnails do not 'know' their dupe relationships (including alternates) yet, but when they load with that info, I'll be able to do UI things with it. At the moment, the dupe relationships you do see on a right-click menu are actually loaded from DB when you click. >>16781 >>16782 Yes, this. FreeFileSync is great, I strongly recommend as soon as you become an advanced user. >>16784 Yeah he is a good guy. I haven't spoken to him in a long time though.
>>16783 Yep that looks great. Your 'ideal' usage is all on the new path, and thumbs are separate. Keep running 'move files now' and once the old path has no more 'current' usage, it'll disappear. You can set the weight to 1 if you want. It only matters if you have two locations set and want to balance your 100% ideal between them. Once you have that all done, you can leave your db under your install at F:\Documents\Hydrus Network\Hydrus Network\db if you like. That's perfectly fine, and your thumbs are right next door. If you want to pull your db files out of your install, maybe to F:\Documents\Hydrus\db or something, then do this: - Shut the client down - Move the client.*db files and log files and mpv.conf (as >>16785 talks about) from install_dir\db to the new location - Make/change your client launch shortcut so it is like this: F:\Documents\Hydrus Network\Hydrus Network\client.exe "-d="F:\Documents\Hydrus\db" That'll let the install know to use a different location for the db itself. Should boot fine and find your files fine. Let me know if you run into trouble. (sorry for the shite UI on 'migrate database', I will improve it) ---- For backup, yes, just make sure you have a copy of these three components--the .db files, your thumbs directory, and your files directory. As long as you have those three, then if you need to restore your backup or recover from a big problem you'll be able to stitch a working hydrus client back together with those three components. You'll want to shut the client down to back up your .db files. They shouldn't be touched while the client is on. In the nearish future, I'll add menu actions and a Client API call that will lock the database so you can back the client up safely while it is running (this is what currently happens with my internal backup).
>>16786 Thank you for this report. I am sorry for the trouble. I have had this similar report for a while and I just noticed there is a fix: https://github.com/hydrusnetwork/hydrus/issues/973#issuecomment-930755546 If this issue could be ASIO, please try that and let me know if it does it! But if you have not had any problems until just now, this could be a different issue. I am not an expert at mpv, but maybe there is another similar setting here that will fix you, if your audio drivers are a persistent problem? Forgive this gigantic page, but if you know any key words like WASAPI with your audio drivers, can you ctrl+f them in here? https://mpv.io/manual/master/ https://mpv.io/manual/master/#options-audio-device Or maybe you can try turning sound completely off through your .conf and see if the crashes still occur?
>>16800 Hey, sorry, I'm kinda retarded, so I just stared at this post while scratching my head like a retard, and time keeps passing without me doing anything. Is the hydrus player meant to play audio? It never has for me; I only ever got audio by opening it externally in by default for the filetype via ctrl + e. Why is it even trying to play sound? Unless, again, it's supposed to. But it never has for me. Also I don't recognize "ASIO" and "WASAPI". But I guess if I right click my sound thing on my taskbar, it says "realtek"?
>>16801 I have two video players. My old crappy one I wrote myself (no audio), and now mpv. If you are a long time user, you may for one reason or another have defaulted back to my player. Hit up help->about to see if you have mpv support, and then options->media and set up your default player for video/audio to mpv on the list if it is set to the 'native' player atm. If you had crashes with my old video player, this is even more confusing, as that is less crashy than mpv. Let's first see if you have mpv support and if you are able to change your video/audio player to mpv, it might magically fix your crashing issues and give you sound at the same time.
>>16802 I didn't really know what to see under help->about, but under options->media "video" says "show using mpv". I just switched it to "native hydrus viewer" (for both "media viewer show action" and "preview viewer show action"), but I'm not really trying to go clicking on video thumbnails without you telling me to try to reproduce the crash
>>16803 Ah, ok, so if you were on mpv but never heard audio, it seems like you do have some weird audio driver issue. You can try clicking on videos with the native player if you want. My bet is they will work fine, since it is usually mpv that causes crashes. Since you never had audio before, the only real difference will be my native player has worse performance on 720p and above videos. I think this is probably a good compromise to stop the crashing for now. As that link I posted above shows, mpv has a million different connfiguration options. I am no expert, but one in there may fix your problem. You might like to play with the actual program mpv and see if that makes noise and/or crashes. https://mpv.io/installation/ https://sourceforge.net/projects/mpv-player-windows/files/64bit/mpv-x86_64-20211017-git-e13fe12.7z/download And also explore what is going on with your audio situation in general. You said you have Realtek, but also had some RAM issues, and needed to restart your audio drivers because of it? Is there any chance that driver is just fucked and could be replaced/updated? How do other things on your computer play audio? Ok, or are there common issues? BTW, I had a kind of similar situation recently with a mini-pc I use for some video streaming. The audio port was staticky, so I looked up hardware replacements, and a USB audio dongle is only $10-20 these days. It worked great for me. If you keep having audio shit with this device on other programs too, just spending the dosh to replace it may solve your headache all around.
>>16797 Well the first place I checked for it was the header thing in the media viewer, and after that I thought it might be in the footer thing on the file page when you have the file selected, so one of those 2 would be fine. As a bonus, maybe if you add it to the file page spot, it would show the total count for all selected files if you have more than 1 selected, as well as the total count of unique tags in your selection, so multiple files having the "female" tag would only count once for unique tags but multiple times for total tags, for example. Those 2 things could be useful if its not much more work.
>>16804 Yeah, so I clicked on a few video thumbnails with the native video player enabled, and it never crashed, but watching videos in fullscreen has extremely low fps compared to the previous window. >And also explore what is going on with your audio situation in general. You said you have Realtek, but also had some RAM issues, and needed to restart your audio drivers because of it? Is there any chance that driver is just fucked and could be replaced/updated? How do other things on your computer play audio? Ok, or are there common issues? Well, I've gotten better with babysitting my RAM, so it hasn't happened recently, but when it did crash, I had to bookmark this page: https://appuals.com/how-to-fix-cant-play-0x887c0032-error-when-playing-video-and-audio-content/ to find out how to restart the driver. To be fair a lot of drivers crash when I run out of RAM (my thinkpad clit drivers, my on-screen caps lock on/off indicator drivers), and even some programs just stop fucking working until I restart them, which I only found out way too late. So I don't think it's that 5 different drivers/programs need updating; it's just that they crash when I run out of RAM, but otherwise work fine. I do use mpv as my default player. But I only update it like once a year, if that matters. Also yeah I heard mpv can do crazy shit like cut videos using ffmpeg and even be used as an image viewer, but I don't know about any of that shit.
>>16796 Thanks, that worked very well and even was able to apply the sizing to existing pages! I had been poking around the gui tab of options since I assumed that's where the setting is, but to no avail
On the manage logins page, is there a way to retrieve the password for a stored login? I need to login to this account but forgot the password. It says the credentials are stored in plaintext supposedly.
>>16808 This doesn't help, but you should use a password manager. There are ones with a lot of quality of life features to them, but don't know anything about that. But basically it's like a fancy way to format any given account's details and stuff. It requires a password (or "key") to open.
(12.13 KB 500x288 ClipboardImage.png)

Could I have a rundown on what URL weight means? I had just closed all of my past gallery downloaders, which lopped off around 2 million session weight. All other pages are either searches or file import pages. Is the remaining 3.4 million url weight coming from my subscriptions?
(11.48 KB 516x299 Untitled.png)

>>16810 on this day we are brothers
>>16811 I'm afraid to find out how many layers deep your nested pages of pages go...
>>16812 Tbh I started sorting it at first, by my favorite tags, but then I just got lazy and left it all go horizontally infinitely until I wanted to take a screenshot to post online, so I spent an hour shoving them under a single page of pages without any sorting. Most of it is just searches I meant to get back to to arbitrary tag, or imports, cause I use gallery-dl to rip and import to hydrus with only the filename as a tag like a retard.
Is there a way to search by dis/like service in API?
>>16799 Thanks for the reply, >then if you need to restore your backup or recover from a big problem you'll be able to stitch a working hydrus client back together with those three components. for this, how would I tell it my database locations upon reinstall or install on a fresh machine? (without it trying to overwrite my media directory on my nas or something by accident) >In the nearish future, I'll add menu actions and a Client API call that will lock the database so you can back the client up safely while it is running This would be AMAZING. Could an option to simply integrate (or pass) rSync directly to Hydrus not be added, for backups? Then the user could just pass the backup to rSync and do it while Hydrus is open by just hitting a "backup" button. They specify the location they want the backups and it handles it. This seems a lot safer than doing it outside of Hydrus, and a lot easier than closing Hydrus every-time. Because Hydrus will know a sync is happening, and then lock the db, and then proceed with rSync. This would be really cool. >(sorry for the shite UI on 'migrate database', I will improve it) Yeah and honestly the docs for that is a bit confusing too. I think it's just overly complicated. Maybe an option to select what kind of folder for example you have the "select thumbnails folder", then maybe an option for "select media files" and then "select db" and then an easy way to move the weight instead of constantly clicking "increase/decrease weight". Something like that. It would be cool to have an area in Hydrus that shows you the exact lcoations of all the important files (nice for people with stuff spread about on different disks). For example it shows the paths of the .db files, the built in backups directory, the thumbs dir, the tag repo dir, etc. etc. just on one screen.
Hello, would you mind taking a look at >>16713 again (Please take your time, I am in no hurry ;) ? I am still stuck on this file, the file maintenance job and manual regeneration did not fix it. The error is: An unusual error has occured during repository processing: a content update file (3b9698f31f70f3624ca32b84a8553286ae36b85d29e4363b0ffc3a19c4f92c79) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance under _database->file maintenance->review_ to finish its new work, which should fix this, before unpausing your repository. Traceback (most recent call last): File "/opt/hydrus/hydrus/client/ClientServices.py", line 2039, in _SyncProcessUpdates raise Exception( 'An unusual error has occured during repository processing: a content update file ({}) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance under _database->file maintenance->review_ to finish its new work, which should fix this, before unpausing your repository.'.format( content_hash.hex() ) ) Exception: An unusual error has occured during repository processing: a content update file (3b9698f31f70f3624ca32b84a8553286ae36b85d29e4363b0ffc3a19c4f92c79) has incorrect metadata. Your repository should be paused, and all update files have been scheduled for a metadata rescan. Please permit file maintenance under _database->file maintenance->review_ to finish its new work, which should fix this, before unpausing your repository.
I had an ok week. I fixed some bugs, updated some Client API commands, and improved file parsing for apngs and clip files. The release should be as normal tomorrow.
Do the integrity checks, database verifications and all stuff like that work properly when the databsse, thumbnails, and media files are scattered across different locations? Also I would suggest making Hydrus auto gray out the backup option when these directories are scattered like that.
https://www.youtube.com/watch?v=gP5LXd6DFx4 windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v460/Hydrus.Network.460.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v460/Hydrus.Network.460.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v460/Hydrus.Network.460.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v460/Hydrus.Network.460.-.Linux.-.Executable.tar.gz I had an ok but light week of various work. misc When I improved the 'apng' file parsing the other week, there was a mistake in how I hooked it up and not all the file metadata was being propagated to the database. A couple of users got some weird '1 frame' apngs as a result. I have fixed this problem, and improved the parsing to deal with more sorts of apngs, and scheduled a complete rescan of all your apngs to get some nicer 'number of frames' counts. In a related thing, a user sent in a way to get some cool metadata from 'clip' files. These now get resolution and a rough thumbnail. I have scheduled all your clip files, if you have any, to update too. The Client API now supports a better way to refer to tag services when editing tags. If you are a Client API developer, please check out the updated help--you can now user service keys instead of service names. I am in no rush to delete the 'names' parameters, but I expect I will eventually. 'names' was always an early hack that has flaws as an identifier, so when it is convenient, please try to migrate to /get_services and service keys. A new help file in install_dir/db directory, 'help my mpv crashes with WASAPI or ASIO audio', now has a neat couple lines to add to your mpv.conf if you have this problem. Many thanks to the user who figured this out! full list - client api: - /add_tags/add_tags now supports 'service_keys_to_tags' and 'service_keys_to_actions_to_tags'. - /add_urls/add_url now supports 'service_keys_to_additional_tags' - /get_files/file_metadata now returns with duplicates of the tag structures using 'service_keys_to_statuses_to_(display_)tags' - added unit tests for the above - updated the client api help for the above - I recommend you move from 'service_names_to...' to 'service_keys_to...' when convenient. 'names' was an ugly old hack, and while I am not in a rush to delete it from the client api, I think I will eventually - client api version is now 21 - . - apngs and clips: - fixed a problem where the new apng metadata parsing was not completely hooked up, so num_frames was not being parsed correct for the final metadata row even when 'apng' filetype was, leading to some odd '1 frame apng' situations - apng parsing now recognises more kinds of apngs--if one has an unusual scaling chunk in the header, this is recognised and the correct animation chunk searched for - clip files now get resolution on import and a thumbnail! big thanks to the user who dug up how to extract this--it actually comes from a sqlite file embedded in the clip! (issue #996) - on update, all apngs and clips will be scheduled for metadata rescan, and all clips will be scheduled for thumbnail generation - . - misc: - right-clicking a selection tag and choosing 'select->files with x tag' now obeys the current tag domain (previously, it forced 'all known tags'). so, if you want to quickly select just the files with 'samus aran' on 'my tags', it should be doable - the new 'partial' download resumer system will now tolerate two successive empty chunks before throwing a 'this chunk was empty' error. it seems some servers will randomly give an empty chunk at times during 206 transfers - cancelling the slideshow custom time dialog no longer raises an error - after the build boot problem last week, updated the opencv version in requirements.txts--we are now officially >=4.0.0, <=4.5.3.56. it looks like pyinstaller needs a patch for 4.5.4.58 to work, so we'll wait for that. I am improving my weekly test routine to try to catch this in future - also, the windows build no longer includes two copies of an opencv dll. turns out PyInstaller finds this dll ok now (putting it in another location) and it doesn't need to be explicitly added during build - added a new help file to the db dir for users who experience crashes as soon as they load videos in mpv when using WASAPI or ASIO drivers. thanks greatly for the user who figured out the mpv.conf solution here (issue #973) next week More small work like this, and I would like to do some behind the scenes database code cleanup too.
(139.71 KB 1366x768 Screenshot_20211103_224007.png)

(146.12 KB 900x813 fluttershy - thanks.png)

>>16795 >I know why you blacked it out, but if you have the original screen shots here, what are the 'db_dir' dir sections in your help->about here? Are they correct, or were they in an obviously wrong location? I don't need to know the locations, but if you look at them, maybe something will click. Sorry OP, I had no time this week to check it, not even to turn on the computer. The good news is that I just installed v460 without any fuzz and it is running great. So, for the time being I prefer to skip the v459 troubleshooting and not to test my luck with it again. Just in case.
Can you maybe lower the accuracy or whatever of hydrus' reverse image search (open > similar-looking files > speculative)? When you reverse search either of these: https://e621.net/posts/1352927 https://e621.net/posts/1352929 hydrus doesn't show the other. But saucenao shows them both. I just find this really unnecessary. It's literally the same image besides dick/no dick. For that matter I never use anything but the "speculative" (lowest) option anyway, so I wish I could just set that as the only option, so I would only have to click "open" > "similar-looking files".
I tried to open my "manage subscriptions" window hours ago and it hasn't opened yet. I forgot I had done that until I just tried to do it again. I was able to open it before updating to latest. I can open the manage parent, and manage siblings windows just fine. Which are the only other things I ever try to open.
>>16822 I restarted hydrus, then when I tried opening the "manage subscriptions" window again, I noticed something flash at my notifications bottom right. So I tried again to open it, and now- never mind, restarting fixed it. But I can still see it says "Waiting for current subscription work to finish." But it just went away before I finished formatting this post.
>>16823 I noticed this right after submitting this post, and I assume it's been a few hours since then. But while did become able to open my "manage subscriptions" window after rebooting hydrus, it says at the top in red: >SUBSCRIPTIONS ARE CURRENTLY GLOBALLY PAUSED! CHECK THE NETWORK MENU TO UNPAUSE THEM. Maybe I can go to where it says to fix it. But it doesn't "just werk" on this release. When it did last release.
>>16824 Never mind, I didn't have to look at the cockpit of a plane and try to pretend to understand how to unpause subscriptions; it was literally just network > pause > subscriptions. As soon as I flipped the switch I started getting subscriptions, and I can still open the window I couldn't, but now the red text is gone. I assume the window not working on boot last time was a freak accident, and that somehow I misclicked the pause it after rebooting when I was trying to open the window. I assume this release is fine.
>>16814 Would I have to introduce a tag for all liked/disliked images to be able to search them in API?
How do you un-delete a file that has already been purged from the trash? I found a file that was incorrectly identified as a duplicate and delete a while back. I can view the old file metadata (tags and such), but I don't see a way to recover it, or get rid of the sha. If there was a way to delete the sha from the db, I could reimport it, but I don't see a way to even do that.
(15.01 KB 455x378 ClipboardImage.png)

>>16827 have you tried unchecking "exclude previously deleted files"?
>>16819 Maybe this isn't the right place, but here goes: would it be possible for hydrus to store a history log of gallery downloaders/subscriptions searcy terms that have been used in the past? Hydrus could use this history log to then color these search terms to indicate they were previously searched for in the past but removed for whatever reason (maybe a different coloration if the search terms are still actively used somewhere in hydrus). This would help avoiding duplicate searches. I run into this a lot where I forget I already ran a search but got rid of it because it yielded crap. I use a text file to store this stuff, but it's not foolproof or convenient. Hydrus could scan this history log whenever a new gallery downloader or sub is added to minimize performance impact.
What are some possible causes for a gallery downloader query finding far less files than are available? I have one for a sankaku search that gets to 447 when there's 3k items that could be found. There doesn't seem to be issues with contentious content or blocked artists getting in the way here. I set every option I could find to unlimited.
Dev, how well does Hydrus work with Wayland?
The latest update for AUR seems to be late...
>>16805 Thanks. I think I can do this--sometimes counting tags can get a little CPU expensive, but for single files at least it is no big deal. Those text lines are getting long, so I think what I should do is one of those 'phrase' options where you can say exactly what you want with keywords, like: %file_count% - %selected_file_count%, %file_size% %file_type% %file_resolution%, %import_time%, %modified_time% %selected_tag_count% Something like that. Then if you want tags you can have them, or if that kills a regular 20,000 thumbnail page for some guy, he can remove it.
>>16806 Thanks. Yeah, unfortunately my old 'native' video player is basically a 'software' solution rather than hardware. All the pixels are being piped in python from the ffmpeg executable raw and then sent to your GPU as bitmaps. It is an ok fallback since it is stable, but it is slow. You might like to force small/100% zoom on your videos under options->media for now. Scaling to weird zooms like 122.7% is CPU inefficient, so 50%, 100%, 200% is best in your case. And since memory is an issue, you might like to check the cache sizes under options->speed and memory. Reducing image and thumb cache size will help you if you are squeezed into 4GB or similar. Let me know if you discover anything else here. Sounds like it could be your hardware is a little old, so I should think these issues will solve themselves in the future if and when you are able to boost your ram or otherwise update.
>>16808 >>16809 Ah, now I think of it I don't think there's a way in UI. If you are feeling brave, shut the client down and go to install_dir/db and run the sqlite3 executable, and then do this: .open client.db .once login.txt select dump from json_dumps where dump_type = 48; .exit Then open that login.txt file that was created and ctrl+f your way to your username or similar. It is JSON so should be roughly human readable. The right password should be nearby.
>>16810 >>16811 It is mostly just a hack for me to implement some 'this session is about to explode' option tests. There's nothing too clever. Since you have a large session, you may have run into them. Subscriptions aren't counted. Basically for every thumbnail you have in your pages, that's +1 each, and for every 'file log' URL in your paged downloaders/watchers, that's +20 each. Your 3.4 million URL weight should be about 170,000 URLs in downloaders still open. If it helps, if you have help->advanced mode on, then right-clicking 'page of pages' tabs should show the session weight of each branch. Should help you find where this stuff is. Note this menu weight may sometimes be delayed a couple minutes to update, although opening or closing a page should force it to update immediately.
>>16814 >>16826 Yeah, not yet unfortunately. A tag mirror of your ratings is a good fix in the meantime. I want more support for this in future.
>>16815 >how would I tell it my database locations upon reinstall or install on a fresh machine? You can restore each location to exactly where it was before if you like, or: The client checks to see if the 512 file and thumbnail directories are where it expects on boot, and if they aren't, it throws up a repair dialog where you can tell it where things moved to. So, as long as you put the db in the right location (or boot into it using --db_dir as here https://hydrusnetwork.github.io/hydrus/help/launch_arguments.html ), then you can recover and stitch it all back together inside the client if you want. >Could an option to simply integrate (or pass) rSync directly to Hydrus not be added, for backups? This is probably a good idea. I vacillate on this stuff because I don't want to get sucked into being a backup program, but maybe if I just let you replace the existing backup routine with a command to run, that's as good. Although there are also more error states to deal with, and the current backup already freezes the UI in an ugly way, so I am not totally sure I am ready to extend things when they need cleanup. I'll think about it, thank you. Thanks for your feed back on migrate database. I agree. I really want you to say like 'no more than 200GB in this location' and other human-friendly stuff.
How do I prevent this tag selection dialog from popping up in the center of the screen? Can it be embedded in the main gui somewhere? Am I just missing something obvious in the options?
>>16713 >>16816 Damn, sorry, I missed your post! The interesting thing here is we have actually moved to a different file. Before you had problems with 8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c Now we have 3b9698f31f70f3624ca32b84a8553286ae36b85d29e4363b0ffc3a19c4f92c79 I have that 3b... file on my client, for the PTR, and it is registered there as a 'definitions' update rather than a 'content' update, a similar problem to what we were looking at before. Whatever happened with your client, a whole bunch of metadata got messed up. I am wondering if your client maybe recovered from hard drive damage at some point and some ids got switched around. I think just to be safe, you should check the 'help my db is broke.txt' document in install_dir/db, just as background reading. You might like to do "PRAGMA integrity_check;" just on client.db, just to make sure nothing got super borked here. I can't figure out why your client is unable to fix these files on file maintenance. I replicated the problem, improved the code, I can't quite figure it out. If your database has no integrity problems, I think your best bet, as sad as it sounds, is to run file maintenance again on your update files and let PTR processing try again. Is it still the '3b...' file that is broken, or has it moved to yet another update file? Maybe in some weird way you have like 10 files that are broken, but it can only fix one at a time? I am really sorry for this trouble, I can't explain it.
(33.72 KB 1119x402 ClipboardImage.png)

>>16839 Ah, I am sorry! I have never seen that before. That looks a little like Windows, but are you on Linux by any chance? I know that some Linux Window Managers just don't like my autocomplete dropdown, so there is a bugfix option under options->gui pages to make the autocomplete results not 'float' on top of either the main window or tag dialogs, but instead embed. If you try that and restart the client, does everything line up ok? How about the popup toaster and the media viewer's hover windows? Do they also position borked for you? It looks like your WM doesn't want to move the window when it is hidden or something. The popup toaster and media viewer hovers use similar tech.
>>16818 The only thing that is disabled when you spread out your database is my backup routine. Everything else works ok. I will try to clarify some of my text in the database menu regarding this. >>16820 Cool, ok! I do not know what happened here, but I am glad it is fixed. Please let me know if you discover anything new here.
>>16841 It is linux, in swaywm. The options you pointed out in 'gui pages' solved my problem. Thanks brother.
>>16821 Thank you, this is an odd pair of files. I have to boost the hamming distance to 14 to get a match. Something about the bepis has radically changed the DCT waveform of the file. This is rare, since normally small 'costume'-like changes like this will still match at speculative. I can't do anything to fix this now, but I will hang on to this pair as a good example, and when I next revisit my similar files algorithm I'll see if I can improve it. I thing the answer is probably to split the image into a 4 or 9 grid (or more complicated segment) and then enter each section into the search system on its own. then you'd get a near-perfect match on the top-left square despite the yes/no penis in the lower-right. As it is, for most users we have far too many duplicates to deal with already, so my top priority for this system is to improve the workflow and start on automated decision making for easy cases like pixel-perfect dupes.
>>16822 >>16823 >>16824 >>16825 Thank you for this report. The subscriptions dialog can't open while subs are running, so there is a little hack where it commands subs to halt and then waits for them to stop working. That's the little popup you saw flicker. Sometimes this process takes a few seconds or more if the current subscription is half way through a job and waiting on bandwidth or something, but having it wait indefinitely sounds like a bug. I will check out how all this works and see if I can smooth out the process. It looks like something deadlocked and the temporary pause didn't get undone neatly. Sorry for the trouble!
>>16827 >>16828 Also, if you open up the 'file log' of an importer that stopped a file because of 'previously deleted' result, if you right-click->try again on that 'deleted' file, it should say something like 'hey, since that file was deleted before and this downloader is set to stop those files, do you want to force import?'. That's a nice quick way to force a particular previously deleted file in when you didn't set up the file import options of the importer beforehand. >>16829 I'm not normally one for extensive tracked history. They always take more work than I think and end up adding storage and CPU overhead. But I think I'd like to do something like this eventually. I want better workflow from downloader to subscription, better program knowledge of like 'yeah, you are subbed to artist x on all the right places', and in your context it would want to say 'yeah, user ran a full download of that query last week, we are completely caught up'. But a lot of that is complicated. For now, the 'known urls' system, which is just for individual files, works really well to save bandwidth. But also, as you say, most big downloader users, including myself, have a sticky note somewhere with pending queries to turn into downloaders or subscriptions. That should be integrated into hydrus somehow.
>>16830 Sankaku only allows 25 pages (of 20 files each, minus some spicy content that guest logins can't see) for non-logged in users. You can test it in your browser too by trying to hit page 26 on a query. I think logged in users get 1,000, and if you are a paying pro user you can search everything on their new beta site? I am afraid I am not super expert though. All I know is they are always super tight on bandwidth. If you can, I recommend you try to get the bulk of what you want from other sites, and you'll give sank a break. When sites do limits like this, sometimes you can wangle the whole collection into multiple queries by adding metatags if the booru supports them like "id<123456". Or get your login into hydrus so you can search more. >>16831 Until you posted it, I had never heard of Wayland! It is some sort of VNC? I am afraid I do not know if hydrus works with it. Everything UI level is python Qt, but it is super hacked together, so if Wayland needs to access C-level Qt objects, or it is unhappy with some of my bad layout and hover window code, it all just might crash. If you are into Wayland, please do give it a go and let me know what happens! >>16832 I have heard this as well. I am afraid I am not currently in touch with the guy who does it. I know another user is exploring a method to drop in the current github branch into an older AUR hydrus release. Stay tuned, I think.
Sorry if this has already been asked up thread, but is it possible to completely delete tags from my database? For instance, when I download an image and get tags, sometimes it'll come with a tag I made but no longer wish to use such as unnamespaced plant while I'd rather use species:plant I don't sync to the PTR or anything, haven't messed with that stuff in any capacity
Hydrus companion isn't recognizing pixiv files as "in my files" or "deleted" when the files were downloaded through the "pixiv artist lookup" gallery downloader, and I think I discovered why. When downloading from a post page directly, Hydrus correctly applies a post url like "https://www.pixiv.net/en/artworks/[some numbers]" which is called "pixiv file page new format (with language)" in the media viewer, but when downloaded through that downloader, it instead applies a post url like "https://www.pixiv.net/member_illust.php?illust_id=[some numbers]&mode=medium" which is simply called "pixiv file page" in the media viewer. I'm guessing this is some old url format that pixiv used to use, because it's not what I see when I browse pixiv, and when I click the links that use the old format, it just redirects to the new format version. Because this is the format the gallery downloader is associating with the files though, it means that the posts aren't being recognized as "in my files" or "deleted" by Hydrus or Hydrus Companion. Could you update the pixiv gallery downloaders to use this new format like directly downloading from a post page does? I don't know the first thing about the internals of downloaders, or I would've already done it and shared the updated version here.
>>16834 Is there any way to have videos (particularly ogg files) default to scaling to fit the window? One click of the zoom button does the trick but it gets tedious when moving to the next video resets the zoom. For that matter, is there an option to keep the zoom and viewing position the same when scrolling through images? This would help with finding better quality images without feeding the pictures back into the dup filter >>16834
>>16847 >Until you posted it, I had never heard of Wayland! https://en.wikipedia.org/wiki/Wayland_(display_server_protocol) Wayland is a windowing system on Linux. It is replacing a much older protocol called X11, and more distros are switching to Wayland as the default. I believe that Qt 6.2.x officially supports Wayland, but I don't know if Qt 5.15 does. This could lead to compatibility issues for Linux users in both the short and long term.
>>16830 >>16847 So I did some more research into the sankaku issue and found that it's not logging in or the 1,000 image limit thats the issue (using another user's sankaku parser that's allowed downloading 2k+ images before). Turns out sankaku recently updated their site to hide images that are added to their dumb books feature from search results. To bypass this, you need to append in_visible_pool:true to all of your sankaku searches now on the chan site. This ends up hiding non-book images too though, so you'll need a separate search minus the in_visible_pool:true part. If anyone's created a new sankaku parser to account for this, let me know.
(24.16 KB 644x632 ClipboardImage.png)

Hi devanon, in the tag management GUI would it possible to display tags which are already assigned to the file with a different color/highlight? This would be a nice quality of life improvement when tagging sparsely tagged files, skipping the hassle of contending with the remove tag confirmation dialogue or even worse accidentally removing a tag that you forgot you had already added. For managing multiple files, there could a different color if none of the files have the tag, all of the files have the tag or if some of them have the tag. As always, thanks for all the work you've put in!
>>16840 I had some db corruption before, I fixed that by dumping as sql and importing again. I *believe* the client.db was also affected. But if that would have broken anything, shouldn't it have an immediate effect (as in processing not working right after)? That was almost a year ago, I had this issue way later... I run the client quite often in the background, so it already went through all of the update files again and I did it manually and restarted the client right now, still failed at 3b9698f31f70f3624ca32b84a8553286ae36b85d29e4363b0ffc3a19c4f92c79. It did process a few newer updates every couple of days, so maybe 3b9698f31f70f3624ca32b84a8553286ae36b85d29e4363b0ffc3a19c4f92c79 is getting processed before 8d393f8a2acb02ce9325dd3733c06ef7e6cd3fd9412891316e17823bb296643c and both would fail if given the chance? Did a PRAGMA integrity_check, output was just "ok". Should I re-add the PTR again or would that be pointless? If it would work, is there a way to move my pending tags to the new PTR service - something like tag migration?
>>16846 Well, the history would be more about avoiding re-adding a downloader that was removed already. Say you add a gallery downloader for gundam wing, but then remove it since it yielded bad results, but then a few months later you forget and try that search term again. It's more about being able to color tags to indicate whether they're a new, deleted, or current subscription/downloader. Using a text doc for tags to check out in the future is easy enough, but it's hard to avoid retreading previously covered ground.
>>16853 >contending with the remove tag confirmation dialogue or even worse accidentally removing a tag that you forgot you had already added Click the cog button and you can disable that
Is there any way to add a "parent/child" etc relation between two specific images? (Totally unrelated to parent/child tag relationships) Other than coming up with a series name and tagging them as page 1 and page 2 in the series or something, which feels like a hacky workaround I poked around a while ago and couldn't find any such option but it's been a while and I'm asking again in case I missed it or it's since been added. Pic related, a random example from the front page of danbooru. I would love to be able to give one image a that's a slight variation/edit/whatever a pointer to the original image in my local hydrus db
>>16856 ah thanks for pointing that out, I'll try that out >>16857 would setting as alternates not work?
>>16858 >would setting as alternates not work? alright maybe the example I showed was a shitty one but I want the ability to do this for stuff like page 1 and 2 of a 2-page twitter comic, not just visually images. afaik setting as alternates only works through the duplicate checker
>>16859 *visually similar images
>>16859 you can manually set files as alternates / duplicates as well, either by assigning a shortcut or via the right click menu. iirc devanon is planning on revamping the alternate system to fit use cases like yours, but for now your best bet is probably the namespaced title:, volume:, chapter: and page: tags
Is there a way to see the exact date and time that a file was added instead of a rough "file was added to my files 1 year ago" in either the media viewer, or the file page?
>>16862 file>options>gui check prefer ISO time
>>16863 I was hoping there would be some place where I could see the exact time while still having it be in the more friendly "relative time" format (just more precise than years and months) but I guess that setting is close enough. Thanks
>>16834 Hydrus dev, my hydrus just crashed, reproduced by doing the same thing as I was with the mpv player (merely clicking between video thumbnails), only, this time I was using the "native" player instead. I wasn't actively trying to reproduce the crash... I was just using hydrus, but it crashed. Is there literally anything I can do about this? On previous releases I have never experienced a crash by clicking between video thumbnails. But on this release it has happened three times, two of which were with the mpv player, and the third being with the "native" player. I didn't immediately understand what you linked me earlier in the conversation about the github issue, and of mpv having configuration options. But would any of that have helped?
>>16845 Yeah, you know, I'm actually the same guy who was experiencing crashing while clicking between video thumbnails on this release, so after my hydrus crashed again, on boot, I wasn't able to open the subscription window again. I could see that no subs had actually downloaded anything since that boot. When I looked under "network" > "pause", it appeared as if the subscriptions weren't paused (even though it said they were at the bottom of the client, and there was a notification about it). But on reboot, "network" > "pause" showed subscriptions were paused. This specific issue has actually happened to be on previous releases, only, I would just restart the client after the subscription window couldn't open. This was the first time I noticed the "network" > "pause" thing. Realistically, this happens to me habitually, and I probably had the client open for days/ weeks despite it not downloading any of my subscriptions.
I had a great week. As well as a heap of good background cleanup work in the database, I fixed several bugs, improved .clip and video file metadata parsing, added some new quick tag search actions to the taglist, and cleaned up some bad animation display. The release should be as normal tomorrow.
Is it possible to move all tags in a namespace to a different namespace?
>>16868 I need this, but not "all" tags; I need to exclude some of them. I remember requesting it like three years ago when I first found the program, and being told it was possibly the single most requested feature.
https://www.youtube.com/watch?v=oiP5bKlJ0fM windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v461/Hydrus.Network.461.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v461/Hydrus.Network.461.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v461/Hydrus.Network.461.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v461/Hydrus.Network.461.-.Linux.-.Executable.tar.gz I had a great week doing a lot of background cleanup work, and I also fixed some things and improved some quality of life. highlights I brushed up last week's .clip file metadata parsing. Some clip files were getting too-small resolutions and thumbnails due to a 'canvas unit' issue, basically some clips store resolution in mm or inches etc... rather than pixels. Thanks to a user who also provided some great examples, we managed to pin down a solution to get actual pixel resolution, and I also figured out duration and number of frames for animated clips. All clips will reparse again on update and generate nicer size thumbs if they need it. Also, if you ever got a webm that seemed normal except it somehow had a crazy 7 hour duration, I think I figured out the problem here too. All superlong-but-actually-small files will be reparsed on update and should get a more accurate duration. When you right-click on tags in the taglist, the 'search' submenu now provides actions to require/exclude 'namespace:anything' if your selection all shares the same namespace. Also, as a little test, I am trying out a new quiet shortcut on the file selection taglist. If you now hold down control when double-clicking or hitting enter on tag(s) here, they now go up to the search negated. Double-click = 'add tag to search', ctrl+double-click = 'add -tag to search'. Of course ctrl+click is awkward since it can cause a deselection, so I think this could do with some more work, and eventual integration into the shortcuts system so you can change it as you like, but let me know what you think. A user recommended adding the +/- buttons as you see on some boorus, so this is my interim step towards that. When you paste query texts into the edit subscription dialog, if any of the texts you paste are already in the subscription and currently DEAD, the dialog now revives those subs (basically the same as 'check now'). I have personally wanted this for ages and kept forgetting to add it. The sub will just do another quick check on what you paste, just in case that query started getting things again recently, rather than swallowing your input as forevermore DEAD. I moved some autocomplete options from 'gui pages' options panel to 'search'. If you are a Linux user who has trouble with the floating autocomplete dropdown window, check it out and see if 'embedding' the dropdown works better for you. full list - misc: - the text on the animation scanbar is now center-vertically aligned and should look better on taller and thinner scanbars (issue #998) - the scanbar now reports better frame number and current time for the mpv player when the current video is very short or has very few frames. screamer gifs should now report 2/2 frames if you scan to the right, not like 97/2 - fixed using the mpv player with an embed button (it previously was staying hidden even after embed was clicked) (issue #999) - the 'search' submenu when you right-click on tags in certain locations now shows add/exclude namespace:anything if all the selected tags share the same namespace - as an experiment that I think will be bulked out into proper shortcuts later, and maybe actual +/- buttons like you'll see on a booru, if you activate the 'selection tags' listbox (double-click or enter key) while ctrl is down, it now excludes the selected tags from the current query - when you paste query texts into the edit subscription dialog, those queries already in the sub _and_ DEAD will now be revived (it does a 'check now' on them). the dialog reports this - when editing subscriptions, the way it waits for the current subs to stop running is improved. it is now separate from the global 'pause subs' variable, so big delays here (e.g. waiting a long time to open the dialog, then hitting 'pause' on the network menu, which was secretly a logically messy unpause) should be less able to run into trouble - watchers now sort DEAD and 404 separately when sorting the status column (previously they were sorted by their now-defunct 'next check time') - I think I improved the speed of the new subscriptions guaranteed shutdown. I think I also fixed a shutdown hang on some lagging async jobs. there are a couple of reports of hanging shutdown, so let me know if this changes - I moved the autocomplete options from 'gui pages' to 'search', and I brushed up the layout and tooltips there generally - . - file parsing: - clip files with canvas size units in mm, cm, inches, or points are now parsed correctly! thanks to the user who helped here! turns out a point is 1/72 (two grossths :^)) of an inch - clip animations now get the number of frames and duration of the first timeline! - all clip files will reparse for fixed resolution and duration and make new thumbs as needed on update - hydrus file parsing should now detect the duration of video and audio with 10 or more hours duration - hydrus now gets a more accurate duration estimate for files with bonkers duration/start_offset pairs, for instance "Duration: 127:57:31.25, start: 460633.291000". if you ever saw a 7MB webm with 5 hour duration (and actually 18 seconds), it could have been this. hydrus now counts frames manually when you get this sort of thing - any file with resolution > 360p, a duration over an hour, and size less than 64MB will be scheduled for a file metadata reparse on update - . - client api:
[Expand Post]- /get_files/file_metadata now has an optional boolean parameter, 'hide_service_names_tags', default False, which will hide the old 'service_names_to...' tag Objects - a unit test tests hide_service_names_tags - client api help documentation now talks about hide_service_names_tags - client api version is now 22 - . - boring code refactoring and cleanup: - tl;dr: about 60KB total code moved out of client database! - moved most combined sibling+parent database code to a new 'tag display' module - moved autocomplete counts cache database code to a new 'mappings counts' module, and refactored a whole lot of of misc old a/c table creation and reference code into that module, cleaning things up - the 'mappings counts' module is plugged into new repair code and on error repopulates itself as efficiently as regen code currently allows - moved tag cache code to a new 'tag search' module, and similar related decoupling refactoring - the 'tag search' module is plugged into new repair code and on error repopulates itself very efficiently - the 'local tags cache' module can now regenerate itself on boot - regenerating the local tags cache now works a little faster and takes less memory - I _believe_ client.caches.db can now regenerate all of itself automatically, with no subsequent user actions needed - the boot database repair notifications have some quality of life improvements. modules now say whether they think they can recover everything, and there is more guidance on what to do in the different situations - during various heavy database work, a common analysis tool now saves a lot of time on regeneration vs generation - pubsubs now go through the transaction wrapper, meaning modules can pubsub - emergency boot messages (like database trouble) are now printed to the log next week More small work and bug fixes, and I really want to get my teeth back into multiple local file services.
Are there any sites that have more images than sankaku? Gelbooru and TBIB usually have far fewer results it seems like.
After updating to 461, MPV no longer works in Hydrus and it shows the following error when I check in "help --> about" 2021/11/11 15:48:10: If this information helps, MPV failed to import because: 2021/11/11 15:48:10: Traceback (most recent call last): File "PyInstaller/loader/pyimod04_ctypes.py", line 53, in __init__ File "ctypes/__init__.py", line 373, in __init__ OSError: /lib64/libgio-2.0.so.0: undefined symbol: g_module_open_full The above exception was the direct cause of the following exception: Traceback (most recent call last): File "hydrus/client/gui/ClientGUIMPV.py", line 25, in <module> import mpv File "/tmp/embedded.pldsum2m.zip/shibokensupport/__feature__.py", line 142, in _import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "PyInstaller/loader/pyimod03_importers.py", line 476, in exec_module File "mpv.py", line 52, in <module> File "PyInstaller/loader/pyimod04_ctypes.py", line 55, in __init__ pyimod04_ctypes.install.<locals>.PyInstallerImportError: Failed to load dynlib/dll '/home/[username]/Hydrus/Hydrus Network/libmpv.so.1'. Most likely this dynlib/dll was not found when the application was frozen. I have mpv-libs installed already, and it worked before updating. My system's Python version also recently updated to 3.10 from 3.9, so that might have to do with the issue too.
why is my hydrus not getting the nsfw pics from pixiv?
>>16873 You have to install the "Hydrus Companion" browser extension and export your cookies into hydrus through it. I used to find success using a generic 3rd-party cookies.txt addon, and I would import that into hydrus. But it kept fucking up, which I probably noticed extremely late to begin with, and I just thought it was the release that was broken. But it wasn't fixed on the next hydrus release. Or the one after that. So I scrambled to find the "Hydrus Companion" thing again, and that made it work. You should just not fuck around with any other method.
>>16873 >>16874 I forgot to mention that I remember hearing some bullshit about having to reset your pixiv password in the hopes of generating a cookie with a specific extension or something. I completely forgot that I had reset my password literally dozens of times trying to fix it. Pain. I assume that is seriously not relevant anymore, or maybe ever was, and was just my false cope with trying to use my generic cookies.txt addon over the "Hydrus Companion" one.
>>16874 >>16875 Interesting, thanks, do I need to send my gelbooru cookies too?
>>16876 Gelbooru has an option under "settings" > "options" > "Display all site content" to view loli/shota without an account. But I suppose that does use cookies. I don't know if hydrus needs gelbooru cookies, since I've never tried either way.
(44.26 KB 664x666 1.png)

During a particular subscription download the current downloading file progress bar (marked 1) constantly appears, goes from 0 to 100% and disappears. Because of that the entire list of the finished subscriptions (marked 2) is jumping like a monkey — up and down, up and down. Even if you try not to miss the subscription of your choice there is always a possibility that it will jump right in the moment you click, and you open (or close which is even worse) the wrong one. Can you make it more static? You can, for example, reserve the place for the current file download meter (1), so it doesn't shrink when there is no file downloading. PS: Sometimes it also jumps left to right too.
>>16878 >PS: Sometimes it also jumps left to right too. It happens when the query string is too long, so it exceeds the standard popup width. In this case the left popup border shifts to the left. The finished subscriptions buttons width is fixed and also they are aligned by the left side, so they also start shifting to the left with the left popup border. It can be fixed either by changing the finished subscription buttons alignment from left to right, or by making the buttons fill the entire width of the popup.
>>16848 The simplest way to just straight up delete I think would just be to search for that tag and then Ctrl+A (to select all files) F3 (to open manage tags) double-click the tag (to delete it from manage tags) hit apply If you want it so you never get 'plant' again but instead get 'species:plant' in its place, then hit up tags->manage tag siblings. Go to the 'my tags' tab and then put in the bad tag on the left, good tag on the right, and hit 'add'. When you ok the dialog, the tags should recalculate in the next few seconds. Check tags->sibling/parent sync to double-check it is set to sync in normal time and see progress.
>>16849 Thank you for this report. One weakness of my network engine is this sort of situation where the content stays the same but the URL changes. A big future plan is to completely unify these URLs at the db level. I just had had a look at the default pixiv downloaders and it looks like the tag search makes the new url, but the artist search makes the old one. I will roll out an update to the artist parser, although this will unfortunately cause people's pixiv artist subscriptions to do a one-time freak out due to the tech issues above.
>>16850 The zoom options are under options->media. Forgive the debug-tier UI, but check out the list of file types list. It defaults to larger categories like 'animation', but if you click 'add', you can specify for just ogg or whatever. Then go in and edit the row you want and you can default a video type to start canvas scale or whatever for preview viewer and media viewer. Zoom locking is something I want to add for the normal viewer, but unfortunately as I have recently learned in several rounds of duplicate filter zoom locking improvements, it is more complicated than you think. I will be adding several sorts of zoom lock, like 'force width to stay the same' kind of thing.
>>16851 Great. I hope to be trying out Qt6 early in the new year, so some of this may suddenly get a whole bunch easier. >>16852 Thank you, this is interesting. Sank has always been an unusual site. >>16853 This is a great idea, thank you. The autocomplete dropdown can get cluttered here, and if I can colour differently (or if that cog item is on, perhaps even sometimes hide completely), it'll make things pop a bit more. Could even, if I were feeling clever, do a thing where if you select a tag in the bottom, it sync-selects in the list at the top.
>>16854 I would say do not try to remove and re-add the PTR just yet--I am not sure what is causing this, so I wouldn't want you to have the hell of waiting like ten hours for a table to delete, and weeks of work to reprocess just to discover the same problem again. I had another user with a definition processing problem report to me today. There really is a problem somewhere in here. He also had some db corruption in his history. Damn, I am sorry. What a pain. I will make sure I give this some more time this week.
>>16855 Colouring query text in a downloader list is a GREAT idea to show their status. I will definitely try this when I do the subscription plug-in. Let's get that working and see how it does, and then revisit the idea of downloader history generally. >>16857 >>16859 I hope to add nice labels for file relationships at some point next year as part of a large expansion to the alternates system. The danbooru-style 'this image has a parent' kind of thing is exactly what I want to support. It'll be for WIPs, clean/messy variants and costume changes, meme variations, and I'd like very basic support for file ordering so you can have a sort of small pool with your page 1/2 kind of ordering for a series of files or a small 4-page manga. It will be a huge amount of work unfortunately.
>>16864 Yeah, I think I should add more quick ways to see both times. Maybe some tooltips and similar where the basic info of '3 months ago' can expand to '2021-08-blah blah'. >>16865 Damn, if you are not set to view mpv anywhere, then there is no chance mpv would have loaded, so no that configuration stuff shouldn't matter at all. If your client is crashing with my native player, that means either all video is scuffed for you, or there is something fundamentally wrong with clicking on a file/video. I don't want to sound like I am abandoning responsibility, but is there any chance you have another computer you can test with? I am afraid that your laptop has some driver or memory problems that are just causing hydrus to be unstable. If you can copy your install folder to another computer and it works ok there, we would have a better idea of the problem here. If you do not have another computer to test with, that's ok. You might want to try reducing the memory limits in options->speed and memory--maybe some of that is giving you trouble. A serious emergency solution would be to change the media view settings to instead show the 'open externally' button for video. Then you could click that and open in VLC or whatever you have. I presume that won't crash for you (but if it does, then we will know it is the mere clicking and switching out of media objects that is causing trouble).
>>16866 I hope this is better in 461. I changed how that pause thing works for the dialog, so it shouldn't interfere with the main 'subs are paused' variable any more. Let me know how you get on with it. >>16868 I want to add 'namespace siblings' (e.g. artist: -> creator:) in the future. I had hoped to add it when I last rewrote tag siblings and parents, but it proved much larger and more complex than I had hoped. There isn't a way yet. For >>16869 , if you only need some of them and it is a hard list, you might have luck just generating the pairs in a .txt file and then copy/paste spamming that list into manage tag siblings.
>>16876 >>16877 For Gelbooru that 'see all' option is controlled by a cookie as here: https://github.com/CuddleBear92/Hydrus-Presets-and-Scripts/tree/master/Downloaders/Gelbooru You should be able to import that header by dropping the png on to Lain under network->downloaders->import downloaders. >>16878 >>16879 Thanks, I agree. It is time I gave all the popup messages a pass and fixed some legacy bullshit.
(8.99 KB 239x658 ClipboardImage.png)

(28.51 KB 532x583 ClipboardImage.png)

>>16882 I forgot to mention this previously, but fit to screen scaling works for gif and webms, just not specifically for ogg files. Could it be that it is because ogg files isn't categorized as a video when I hit the "add" button? Because of that, options to scale the media is greyed out. Regarding keeping zoom levels the same, as an alternative, would it be possible to select a bunch of files and open up a dupe filter view for those files? It could skip existing alternates or do an extensive comparison, but I feel like this would be a useful functionality to have
>>16889 oh wait, upon actually looking things up it seems like ogg is primarily an audio container but can also be used for video. So it might be helpful if we can add our own filetypes and define how they are opened. loos like ogg containers that holds video usually has the ogv extension, so that could be something that is amended too
>>16771 >I will not put any more effort into this conversation, it is pointless since you do not wish to read and consider this anyway. And yet, apparently in spite of this, here another condescending wall of text. >If you do not have any more issues, great for you, we may now stop discussing this. If you do, not good, but I am of no help either. Please take care. Kill yourself you stupid fucking faggot. Everyone would have been better off if you had never replied to ""help"" or ideally, never existed in the first place. >>16790 I really don't care about the tag import options defaulting to no tags because now that I know about it I can set it (one checkbox is not onerous) and it works regardless of my opinions on what the default should be. What I want changed right now is simply to remove the 1k limit just for "on first check" in subscriptions (not the "on normal checks" setting) so that I can manually reset my subscriptions and have then re-pull the tags. This will allow me to get all the pool:xxxx tags which is what started this in the first place and have some confidence I don't have any entirely un-tagged files floating around. To be entirely clear, this is something I understand this is a very heavy operation that will re-download every page for the subscription normally (maybe not with the json downloader, but whatever) and is something that only needs to be done rarely (and "on first check" can only be run manually anyway). > If there is something I could have written out better in the help to better prime you for and explain the current limitations, I'd be interested to know it. I added red warning text to an empty Tag Import Options this week, and I think I could do more here. In any case, please let me know how you get on. Honestly, going to disagree and say that I think a noticeable warning message is enough and I think I would've figured it out myself if that had been in place. As for subscriptions becoming 'sync with all this artist's work' at the risk of re-opening a can of worms, I'm curious on how did you thought they would be used? Even if people only got the last 100 items to start, after a year or two on a really active artist you could easily crack a couple thousand. If it wasn't a specific artist and just like a combination of 'big tiddies' + 'goth gf' it would be even bigger, so what gives? Metadata indicating what sub a file came from might be neat but I'm not quite sure what your getting at or what would be useful about 'emulating a huge 20k file sub'. I do wish there was some metadata for when the file was posted to whatever site (vs. when hydrus downloaded it) so I could sort a search chronologically. I don't think you need a specific page type for a subscription because wouldn't having a files page where you put in the same tags as the subscription be the same thing? maybe a shortcut to open a files page with those tags pre-filled? >It is still pretty cumbersome to edit subs, especially having to wait for them to stop working to edit them. Would it be possible to let people edit subs immediately, but simply cache changes until the subs stop, actually apply the changes, then restart the subs? If we're talking about the next big thing what I'd really like to see is a exhentai downloader that can download the source quality archive using GP, then extract it and import the files in there with the tags from the gallery. I'm imagining an exhentai subscription type where I just enter the search tags (and put in my account in the accounts section), then I get all the source quality galleries imported without trying to scrape individual gallery pages. There would also need to be some metadata tag to tie all the images from one gallery together and ideally some way to sort them in the same order they are in in the gallery on exhentai. Well, that's enough of my blathering. I do want to say I appreciate you doing support on a chan like this. I can't tell you how many times I've run into a bug in something, wanted to make a bug report, then gave up when I needed to make a telegram/discord/github account. Not to mention most of the bugs I have submitted are months or years with no movement besides the initial categorization.
(18.28 KB 645x359 ClipboardImage.png)

>>16836 For file pages with searches the session weight adds up. The vast majority of my pages are file import pages though. I take it that every file that hydrus attempts to import counts as a URL? So in the pic attached, i presume the 13,400 page weight comes from 20 * 650 (number of files i tried to import) + 400 thumbnails displayed. More importantly does having import pages instead of file pages increases load on the client in any significant way? I usually leave my import pages alone until i get about tagging them (which will probably take the better part of my lifetime), will it decrease load on the client if I give these pics a dummy tag and reopen them in a file search page?
>>16884 No worries, please let me know if I can be of any help and do take your time - I really don't mind.
As above. I can't get the gallery downloaders for deviantart to work. Tag gives ignored, then stops and artist lookup keeps searching, but gives 404 on every search. Anyone else having problems?
>>16880 Right, I've already done for that for a few tags. But the issue is with tags that I just don't want to get at all anymore. I've removed them from all of my files multiple times but whenever I download from a booru the offending tags will raise their ugly heads again
>>16892 Clearing the file import queue should clear most of the url weight. You can also just select all the files, drag them to a new page, and then close the import page.
I had a good week. I fixed some bugs (including the new mpv audio file playback issue), reduced CPU load during heavy import sessions, improved network redirect support in the downloader, added new-user-friendly services to new clients, and massively sped up some complicated file searches that include unnamespaced tags. The release should be as normal tomorrow.
Does disallowing compression bombs override the unlimited file size option? I want to pick up movie files that were uploaded as gifs. Also I'm confused about presentation options despite reading about them. Doesn't hydrus have thumbnails of all images no matter what?
Can I access hydrus on one computer from hydrus on another computer?
>>16896 Don't think there's a simple way of clearing the file import queue, but opening all the files in a new page works great in reducing session weight. That being said, I never knew that merging pages by clicking and dragging the files is possible. The scales have fallen from my eyes
>>16899 I think you could use Hydrus Server to server the content to another computer, but I haven't tried that yet.
When will Hydrus upgrade to OpenSSL 3.0.0?
https://www.youtube.com/watch?v=Gu2Iayi3AvM windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v462/Hydrus.Network.462.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v462/Hydrus.Network.462.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v462/Hydrus.Network.462.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v462/Hydrus.Network.462.-.Linux.-.Executable.tar.gz I had a good week with a variety of fixes and optimisations. New users also get a couple of user-friendly services to start with. highlights A recent update to the mpv seekbar accidentally caused bad errors during audio playback. I have now fixed it. I regret the regression, and I have added tests to make sure this does not happen again. All 'file log' import queues now search and count themselves faster. Any heavy import session, like a very large downloader or many medium size downloaders working at once, should use less CPU just to do normal work. I sped up some file searches that were running super slow. The general problem file search was typically a mix of 'has multiple search predicates' and 'includes a short unnamespaced tag or namespace:anything'. This combination was taking two minutes or more rather than a handful of seconds due to an overly complicated database query that wasn't running well. Should be fixed now, but let me know if you have any more of this sort of trouble! new user services To help new users, new clients now start with two extra services: First is a local tag service called 'downloader tags', which the initial default tag import options is now set to get tags for. I hope this will reduce some of the confusion around default tag import options, merged downloader/personal tags in 'my tags', and having to retroactively fill in missed tags for files downloaded early on. Second is a like/dislike rating service called 'favourites'. Many users are unaware of the existence of ratings services at all, so now everyone will start with a simple clickable star. When you update, if you currently have no rating services, you will be asked if you want to get this new default. You don't have to, but if you haven't tried ratings out yet, give it a go! full list - misc: - fixed a recent serious regression that could cause a crash when playing audio in mpv (issue #1007) - the main importer file log now does 'get next/all/count imports with status y' calls significantly faster, particularly on very large lists. these calls happen all the time for different status text changes and general 'which import to try next?' work. all busy downloader situations should see CPU gains to regular and background work - fixed a problem where importing with the min/max file resolution options set would give a typo error when the size was violated rather than 'ignored' - I think I have fixed an issue with subscriptions not wanting to run a query if by random accident that query has an invalid URL selected as the query's 'example url' for various pre-work login and bandwidth tests - hydrus can now capture duration/fps of videos that specify two very close fps, e.g. 60 and 59.99. previously, these would default to the 24 fallback and could cause some weirdness in mpv - replaced the default pixiv artist page api parser with one that fetches the newer url format, matching the tag search. existing users will see no automatic change but will receive the new parser, so if you are a big pixiv user, you might like to switch 'pixiv artist gallery page api' to the 'new urls' parser variant under _network->downloader components->manage url class links_. note that if you do this, your pixiv artist subscriptions will do a mini-resync (which involves some wasted time/bandwidth) as their urls change! - . - network redirect improvements: - gallery page jobs now give their child 'next gallery page' jobs themselves as a referrer - when the gallery downloader gets a 3XX redirect, the file import objects and next gallery pages it makes now get the redirected URL as referral url (previously, it used the original gallery url) - when the post downloader gets a 3XX redirect, the redirected url is now added as a primary source url - when the post downloader gets a 3XX redirect, child import objects and direct file downloads now get the redirect URL as referral url (previously, it used the original post url) - when the raw file downloader gets a 3XX redirect, the redirected url is now added as a primary source url - when the raw file downloader gets a 3XX redirect to a Post URL, it now tries to queue that URL back up in the file log, just like when a gallery fetch comes back with a Post URL. some safety code stops potential loops here as well - . - new services: - a new client now starts with a second local tag service called 'downloader tags'. default tag import options are now initialised in a fresh client to pull all file post tags to this service. this should relieve new users' confusion about setting up default tag import options - similarly, a new client now starts with a like/dislike rating service called 'favourites'. existing users who have no rating services will be asked if they want to get it on update. many users are unaware of the rating system, so this is a chance to play with it
[Expand Post]- the 'getting started with downloading' 'and '...with ratings' help has some updated screenshots and talk about the new default services and parsing - . - database fixes: - fixed a very slow database query that was involved with file search using unnamespaced tags when other search predicates had already limited the scope of search - fixed a similar slow query when the 'bad' search predicate was 'namespace:anything', particularly when the namespace is a wildcard - fixed the 'clear orphan tables' database maintenance routine. it had decayed due to bit rot and was deleting new repository processing tracking tables. the routine is now plugged directly into the new database modules system, and any module now can be upgraded to discover surplus service tables. the system has been updated to permit the detection and removal of duplicate tables in the wrong database file, and it also makes a statement if no orphan tables were found - the 'metadata resync' repository maintenance task now removes surplus file rows from the processing tracking tables - the 'metadata resync' repository maintenance task now corrects content type rows in the main processing tracking table - the process of registering updates to a repository is now a little faster, more reliable, repairs basic damage, and keeps more good work when damage needs to be repaired - I _think_ the users who were still getting PTR processing errors related to a database confusion about content/definitions update files should now be fixed after another full metadata resync! please let me know if there are still problems next week This week ended up being packed, so I did not have time for larger stuff like multiple local file services. I'll try again to move it forward.
>>16903 >multiple local file services Please explain to me what this actually means.
>>16903 > - I _think_ the users who were still getting PTR processing errors related to a database confusion about content/definitions update files should now be fixed after another full metadata resync! please let me know if there are still problems Seems like it is indeed fixed, thank you so much!
>>16872 I updated to the latest version, and this mpv breaking bug is still affecting me.
Here's my suggestions. >Fix the redundant page warning, or give an option to disable it If you hit the limit you get a page limit warning, but if another page tries to open it creates another warning. If you're close to the limit, or have a low limit, and are running subscriptions in the background it will create a new warning per page and eventually crash the program once it opens too many warning windows. It happens pretty frequently to me as I have a lot of subscriptions and I run them all on background like once a week. >Fix the shortcut Keyboard shortcuts still only work in the media viewer. It's effectively impossible to make shortcuts for actions that require multiple files (e.g. set duplicate relationships) as shortcuts don't activate within a page. >Advanced custom sorts Customs sorts are limited to namespaces. I'd be useful to be able to set something like "sort by creator and then by date".
>>16907 > It's effectively impossible to make shortcuts for actions that require multiple files (e.g. set duplicate relationships) as shortcuts don't activate within a page This works for me in the thumbnail grid though. Setting a pic as the best duplicate is a bit finicky (is the thumbnail i select first going to be the better duplicate when i press the shortcut key or the second?) but it certainly works
>>16905 Just finished processing, so confirmed fixed. Thanks!
Is anyone having any luck with the downloader script for Deviantart? I can't get it to work. Wondering if it is just on my side.
>>16903 Hi devanon, this might be a niche usage, but would it be possible to have a shortcut / button in the rating manager that allows to copy ratings from one file to another?
>>16906 Did you get this error after upgrading to Fedora 35? Because that's what I'm getting at the moment; it worked on F34, it's now broken on F35, with the same error (same Hydrus version). This may be a packaging error but I'm not sure.
>>16912 Yes I did! That must be related to the problem then.
>>16889 >>16890 Ah, thank you. I consider all ogg to be audio atm, but since I embed a fixed black mpv screen to play that, if there is a video channel, mpv suddenly throws it up there. I think I should be writing a parser to detect '.ogv' or something and pulling resolution etc... then treating those as legit video. I think I basically have this tech already for wma vs wmv, and I should probably add support for webm, which I think can also technically just be audio (vorbis or opus) only.
>>16891 Looking at the code, if you turn on help->advanced mode, it looks like the file limits on subs expand up to 10,000. Is that enough? >I'm curious on how did you thought they would be used? Yeah, my idea is to sync with a whole query, but the main problems here are technical. Juggling thousands of URLs around, and the natural addition of more 'fill in the gaps' and 'go back to the beginning' tech with an explicit 'sync with this search' subscription is more complicated than the current system supports, and it is already giving me enough problems so I don't want to expand it just yet. Since a user can just run the queries through the downloader page, which is much better at holding big file queues, before setting up subscriptions, it makes for an easy compromise. >but I'm not quite sure what your getting at or what would be useful about 'emulating a huge 20k file sub' The problem is the attaching of 5,000+ import objects to every query you are subbed to. Subscriptions basically work as separate, fast objects to the database, and if I let them all get that big they would take too long to load and save, so I would have to start recording subscription data in the database itself and then rework all the subscription code to pull and push on that database import object storage. In that way I would emulate a subscription with 20k files even though in general that stuff would be locked away from the user most of the time because it would be too laggy to load en masse. It is basically just technical bullshit on my end and would take a lot of time to fix. >Would it be possible to let people edit subs immediately Yeah, this is my big hope with a 'review subscriptions' dialog. I think I can make some more fine-grained pause tech and let simple controls like pause/resume and 'check now' be immediate actions. And also I can do behind the scenes inspection of live subscriptions to highlight in a downloader page what is already subbed and allow for quick-add actions off a right-click menu. I can probably also figure out a system where I only pause one subscription if you only want to edit that one.
>>16892 Yeah, it is really the 'import objects' that are giving 20 weight each. In most user cases, that's mostly talking about URLs, but it is really the complicated object that can store tags, hashes, source info, timestamps, all that, which I am worried about when it comes to CPU and memory. Idle import pages add a little CPU, like fractions of a millisecond every 30 seconds, but nothing to really worry about. It does matter when you are talking 50+ at once, as there's a behind the scenes thread traffic jam going on that I still need to fix. Session weight doesn't usually matter until you are pushing several million. As far as I can tell, your numbers are no worry at all, but the proof is in the pudding--open up Task Manager and see what the client's idle CPU % is--it should be 0% most of the time, as long as it isn't importing or doing some file maintenance in the background. >>16896 >>16900 There's a semi-secret feature if you right-click on 'file log', you get a menu where you can do advanced stuff like clearing out the good/bad file imports.
>>16893 My hope is your problem is now fixed in the 462 posted above. I was working on another guy's problem and discovered some flaws in the 'metadata resync' routine. If you please fire that off from review services one more time in 462, with luck your progress bars there will actually change a little, probably shifting by a small number, and then you'll be correct. But as always, please let me know! >>16894 Thank you for this report. Yes, it all looks broken when I do a test here--I will have a look into this problem and see if there is an easy fix for next week! >>16895 I think there are two things you could try: 1. In tag import options, click the cog buttons and it will give you a menu that should have 'only add tags that already exist'. This is a neat way to filter out all new stuff if you are strict about what you already have. It may be too much for your situation. 2. In tag import options, and really the defaults under network->downloaders->manage default tag import options, where it says 'adding: all tags', click that button and it will open up a 'tag filter' dialog. Add the tags you don't want to the blacklist and they will never be added. Make sure you have a nice set in your defaults and it will apply to all new downloaders.
>>16898 The decompression bomb check I rely on is not very good. I once thought it was clever, but really it only checks for a bitmap above a certain size. I've now set that to 1GB, up from 512MB, but in reality it is just a '> 350 megapixels' test. It only applies to still images, and only giganto patreon pngs normally get near that size limit, so you should be fine with decompression bombs and gif'd webms. I think though that I have a default rule on gifs > 32MB, so you'll want to turn that off if you didn't already. Presentation options are just about what shows on the downloader/importer when you highlight, or in the subscription what gets 'published' to a button. Everything gets imported like normal, this is just what 'shows' by default in the page when you see the results. Advanced users like to make rules like 'only show me new files in the downloader', which is what the options are for. I will give the UI text a pass on this to make it clearer.
>>16899 >>16901 The options here are very limited right now. The short answer is 'not really, not yet', the long answer is 'with the API advanced users can hack some stuff', and in future I want the answer to be 'yes, easily, and here is how'. >>16902 I am not a super expert, so let me know if you know better, but I just did a brief search and it looks like python 3.9 and above is on OpenSSL 3.0.0 now? We are still on 3.8, but as we naturally update I think this should happen organically. I am aiming to push up to Qt6 early next year, if it seems stable and good, so that may be a good step to do 3.9 as well. >>16872 >>16906 >>16912 >>16913 Sorry, I missed this! I think Arch users got something like this just a couple weeks ago when they had some system level update. Maybe it was the same thing for you. I think there was a new glibc or something that messed up some existing .so imports, that 'g_module_open_full' part--last I heard it was an actual regression and they were waiting on an update. If you learn more, please let me know. Maybe there is a better version requirement I can set for python-mpv or libmpv1.
>>16904 It is mostly a more advanced feature. At the moment, you only get one 'real' local file service, called 'my files'. I want to make it so you can have several, in the same way you can have several local tag services. This will let users make some firmly separated partitions (sfw/nsfw is the obvious one) that will be completely separable in search but also mergeable when desired. Basically, when you select 'my files' in a search dropdown, this is going to become something more like a checkboxlist of n selected services. When you import files, you'll be choosing where they go in the same way, and all files are going to get some menu actions for various move/copy operations across services. Along the way I am also cleaning up several years of mistakes and bad design behind the scenes.
(25.05 KB 854x275 ClipboardImage.png)

>>16907 Thank you, I will make a permanent option for no page warning. And yeah, 'media actions' shortcuts should work in thumbnail view, as in pic related. These will be different to the shortcuts that guide the duplicate filter, in the 'media viewers - duplicate filter' shortcut set. I would also like to add secondary file sort. >>16910 Thanks, as here >>16917 I also see the problem. No promise, but I'll see if I can get a quick fix!
>>16911 Thank you, I think this makes sense. The tag manager has copy/paste, so could do the same thing for ratings. I'll have a quick look, this might actually be easy.
My hard drive partially failed early this week. Bad sector. I had no backups. I never thought it would happen to me. I feel sick to my stomach. I can't even fathom it as being real. When I cloned the hard drive to a replacement and ran "chkdsk" on the replacement, it showed 23 gigs of missing data, all but 1 gig of which was my hydrus database. Anything else I saved I had saved to my second HDD, so my hydrus database suffered almost all the damage. It may not even boot anymore. I probably lost shit under the hood that keeps track of things. Much of what was in my database didn't even have URLs to retry, since I only imported them under a "filename" tag. But is there any hope to automate trying to fix this? I feel like giving up. It was a good few years, but I don't know how I can keep going knowing my archive attempts which were flawless not even a week ago may not even be capable of being observed in any cohesive form. I had so much shit that never even saw boorus. Deleted pages. Uncensored pixiv stuff that was later re-uploaded censored. My hard drive was only 16 months old.
One potentially odd feature request: A button in the duplicate filter for 'They are the same quality, delete the other' or the ability to set the delete options when you edit the metadata merge options, or the ability to go through the complete custom action dialogue, including the delete options, when defining a custom action hotkey. Or all of the above, but any one of those would improve my workflow massively.
>>16923 Turns out I can't even boot hydrus. Tried updating, still can't boot. So there's nothing I can do besides eat shit I guess.
>>16923 >>16925 don't you still have the original media? Well if you were syncing to the public tag repo, you probably didn't lose any tag info, but my condolences if you had not. Also uploading to the web is probably the surefire way to keep those pics existing somewhere
>>16917 >>16893 >>16905 is actually me, it's working flawlessly again!
>>16923 How did you clone the disk? If it was with a simple dd, try dd_rescue. If you have bad sectors, the disk will usually report that to the OS and you get an error. dd_rescue will skip these bad sector errors and retry them later, hoping that the disk just has random controller errors and a read succeeds if retried. dd_rescue is focused on getting as much of your data off of failing media as possible, without stressing the disk out. With a bit of luck, you can get a complete image of your drive, assuming it was saved to it correctly. Save the image file to a seperate disk and try ntfsfix ON THE IMAGE as well. DO NOT DO ANYTHING TO YOUR OLD DRIVE! COPY THE DRIVE, SAVE THE IMAGE SOMEWHERE SAFE AND PLAY WITH THE IMAGE! Before and after ntfsfix, you can also try running testdisk/photorec, maybe check if it can be set to only recover sqlite databases. For the future, please consider running important data on RAID, so you don't have to rely on a single hard drives. This is not a backup, however, as when you delete something, it will be deleted of both drives at the same time. Advanced file systems like zfs and btrfs (do not use the integrated RAID-mode in btrfs) can tell you exactly when a drive starts to fail or returns garbage, so you at least know something is up. ZFS can mirror to multiple drives too. You may still encounter file system corruption on images generated by dd_rescue, but maybe chkdsk/ntfsfix can minimize the damage further if there are less errors in there. Good luck anon, you can do this! Additional reading: https://www.system-rescue.org/Download/ https://www.system-rescue.org/Installing-SystemRescue-on-a-USB-memory-stick/ https://www.technibble.com/guide-using-ddrescue-recover-data/ - do Part 1, Part 2 is optional if all data could be recovered by dd_rescue. https://www.cgsecurity.org/wiki/PhotoRec https://www.cgsecurity.org/wiki/TestDisk_Step_By_Step (do this first, on the image!) https://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step (do this second, it will spit out every file it can find - without filenames)
>>16921 Thanks! Hope you can fix the da downloader.
>>16926 I didn't sync to the PTR. I wasn't trying to say the following out loud, cause I'm just "that one guy" I think, and I've mentioned it before, but I only used hydrus to automate downloading from pixiv, and everything else was only imported with a "filename" tag after ripping it with gallery-dl. So a chunk of it doesn't even have URLs to retry. Not that I can eve open hydrus anymore anyway, like I said. >>16928 Thank you for the high effort reply. I don't know how late I'm responding to it, but I probably could have responded earlier if I saw it was in reply to me, sorry. Getting the "(You)" for that post expired for me or something. My "'setup" is just a laptop that can fit two hard drives, and my first reaction to the bad sector was unfortunate. I first posted about it on 4chan's /g/: https://boards.4channel.org/g/thread/84347421#p84353133 https://boards.4channel.org/g/thread/84380844#p84393151 But I was running "HD Tune Pro" to check for bad sectors (which I cancelled at maybe 1/4 completion), cause I didn't understand yet (plus no one on 4chan told me in response to any of my posts) that when a sector fails, all that corrupted data is just treated as empty space to Windows (at least Windows 7, which I was still using, and people criticized my still using). I don't know if that's the case for every sort of failure, but I literally saw first hand when I was moving a rare non-hydrus folder on the drive to my second HDD, that (ignoring possibly corrupted data, which I guess wouldn't necessarily have shown) everything in it succeeded besides a single file. The file couldn't be accessed by Windows. But a day later, the file went completely missing. I only came to the conclusion a few days later that that was because it was overwritten from Windows regarding it as empty space. But someone did reply saying that checking for bad sectors via "HD Tune Pro" like I did was literally reading/writing mass amounts of data to literally every part of the drive it could. But I thought that was only possibly exacerbating the failed sector, not overwriting data. The failing HDD (was also boot drive) was 2TB and encrypted. It took over two days to decrypt it. I couldn't access the veracrypt install folder (viewing its properties showed it as empty), nor could I even consistently read/write data to my HDD, as I mentioned in my first 4chan /g/ post I linked, so I had to install veracrypt portable to my second HDD, and run that to decrypt my boot HDD. Until I realized using the drive was overwriting data, I watched a few streams and youtube videos. I regret that now. I did have the thought that the sheer cost of watching videos was inordinate and should logically be avoided. But I watched maybe two or three hours of video anyway, which obviously is some shit. After the drive decrypted I created an image of it using "Macrium Reflect" to store on an external hard drive. Unfortunately I first merely cloned the drive to the external, hoping to boot from it, to avoid booting from the dying hard drive again (cause my "setup" only being a laptop meant I had to shut down my PC to replace the second HDD with the replacement HDD, to be able to put data on it). But when I tried booting from the clone on the external hard drive, it didn't even try to do so. So I unfortunately had to boot the dying hard drive. It failed to boot normally. Then it failed to boot in safe mode (both times it froze/stalled indefinitely). Then I tried booting it normally again, and it worked, but I had to cancel the "chkdsk" fix it was going to automatically do within six seconds had I not cancelled. So I rebooted the dying hard drive, and only then did I make an image of it. I actually cloned it to my replacement HDD first, then I made the image. It's unfortunate the image was the last thing I made. None of the way I approached this was ideal, looking past the fact I lost data due to my having no backups. Thank you for the patient and comprehensive post, and resources. Cheers. I definitely have so far just given up on archiving. I will try my best to see what can be done to recover the corrupted data on the drive. My boot drive is currently the replacement hard drive I cloned the dying hard drive to, only, I ran "chkdsk" on the replacement before using it, hence the corrupted data showing up as the quantified 23 gigs of empty space in Windows. The dying hard drive hasn't had "chkdsk" done to it, and the image of it hasn't either, nor am I going to fuck with the dying drive nor the original image of it; only copies of it. I did want to say, to anyone reading this, thinking it would never happen to you, this isn't just losing 23 gigs of a single artist; this is losing 23 gigs across everything you have ever archived. Provided recovery is impossible, you can never trust anything you've formerly archived to be a complete body of work ever again. This isn't the same as no longer feeling safe in your home after having been victim to a break-in; this is literally your entire database changing from complete, to your never being sure, in an instant. Let alone that I can't even boot my hydrus, because I lost shit under the hood, so the only "sorting" I have left is the order in which the images were saved. Literally, if you have anything of value, be arsed enough to sell it to afford a backup. Before buying anything else for yourself, buy a backup for your data. I only hope you will never have to fathom what it feels like to have your formerly flawless-integrity data ruined. I've heard horror stories of losing data before. But on some level, I thought I could afford it happening to me. If it were anything but hydrus, maybe you would have something left. To me, everything I've ever done in hydrus is unusable/ incapable of being observed in any way, in an instant. Backup your data.
>>16928 Also I do want to say that the image I made of the dying hard drive using "Macrium Reflect" was with the "exact" copy option, not the default "intelligent sector" copy option. I only even checked for this and made sure I did this because I've gone through smaller hard drives before, and only cloned them to the bigger hard drive, to use the bigger hard drive as a boot drive. My last hard drive was 1TB, and the dying one is 2TB. I would've had a full working 1TB hard drive as an ancient backup had I not wiped it and began using it as a secondary hard drive. Now my latest backup is a full 500GB drive, which is far older. It's still a quarter of my database. Which is something.
>>16931 In hindsight I doubt my 500GB drive wasn't being used as a secondary hard drive. I distinctly remember "upgrading" my secondary hard drive from that to the 1TB one. If I have any backup, it's literally years old.
>>16930 Well, this situation seems really bad. The second you were checking the bad sectors, your data got overwritten by trash. For the future, a good way to monitor your drive is to check SMART values. The drive will usually report the total number of bad sectors by itself, without you needing to check. Just get a smart monitoring tool and put it in autostart. At work, if people tell me their drive is failing, I tell them to yank the power cord and never boot that machine again. An fsck or boot with a hosed drive may be suicide, depending on the filesystem. I would urge you to do the same thing. If you have an image, you have time and can experiment. Until then, treat it like it can die at any second. I can't talk for windows, in Linux you must not access the data on the drive in any way. You only read the bits on the drive, once, to a secure location. Everything else is done with the image file, which is backed up twice, just in case. I am very sorry, especially for sqlite-files, there is probably nothing you can do at this stage, since you already wrote 500GB over the "deleted" data. Add the broken drive that probably wrote random garbage during subsequent boots, and the damage is done. With dbs, a single bit flip can silently corrupt the db and cause failures years down the line. Don't blame yourself too hard for this, as the saying goes: "There are 2 types of people - those that do backups and those that never lost anything important." This is probably the hardest lesson people can learn. Please also remember that /g/ is full of retards, and it is not a tech support board, so trolling is sadly quite common. I would encourage you to keep archiving, since content will keep vanishing. The old files may be gone, but new content is out there, right now, that will be gone next week. Some day, we may have a decentralized and anonymous solution for file sharing, so hopefully you may get some of those files back, from likeminded people that archived it, just like you did. In the meantime, check your drives, check your backups, make sure everything works as expected. Especially with encryption, try to access your backups from a different computer and make sure you have the headers backed up seperately. Hopefully your old drive contains all files that were truly important to you. Good luck!
>>16933 I thought I could cope with it before, but I feel like vomiting again. I'm thankful for the honest reply. But I feel sick.
>>16923 Also try testdisk. Just google for it. A little program that is really good at data recovery on a bad disk. I've recovered a lot of data using it.
>>16934 I know exactly how you feel. I also lost a huge part of my collection due to XFS. No backups, no recovery. I swore I would never let that happen again, so after a couple of days, I set everything up again. New database, all subscriptions again, re-adding the PTR... You just need to do something else for a couple of days. Give it a week and you can start over again. After that, build something truly magnificent. It feels great to be 100% confident in your backup strategy, if you know your data is safe not matter what. If you're like me, you always had a fear of losing everything one day. But this feeling will be replaced by absolute confidence in your system. It feels great, you will soon know this too! At this point, I'm even grateful that it happened with my old data, because that feeling of dread and despair is now gone. Just don't try to do it right now, try to calm down first - it will take a couple of days.
>>16913 Fedora friend, I found an ugly workaround, hopefully this works for you as well; I copied my system's libraries (from /usr/lib64/) to my Hydrus directory (while Hydrus was completely stopped). Be sure to have a fresh backup before doing anything though! Here's what I copied over: - /usr/lib64/libmpv.so.1.109.0 to libmpv.so.1 (comes from mpv-libs-0.34.0-1.fc35.x86_64) - /usr/lib64/libcrypto.so.1.1.1l to libcrypto.so.1.1 (comes from openssl-libs-1.1.1l-2.fc35.x86_64) - /usr/lib64/libgmodule-2.0.so.0.7000.1 to libgmodule-2.0.so.0 (comes from glib2-2.70.1-1.fc35.x86_64) >>16919 Thanks for the reply! I'm not sure how your package script could fix that though; AFAIK it's based off an Ubuntu image, which might just have older packages than what other distributions are using (which should be true for at least Arch and Fedora, probably others). I don't want to ask you to consider changing this; maybe I'll just change up my Hydrus upgrade script to copy what I mention above.
I'm the anon who had put his media files on his storage server about a month ago. If I wanted to download Hydrus on a second or even multiple machines, and have them all access that folder on the storage server is this possible? Or will Hydrus fuck up if it has multiple clients accessing it from multiple devices? Could the Client API be utilized maybe, then all the other Hydrus Network clients just connect to a single one?
>>16920 NTA but that sounds amazing. Is it coming soon? Because I was about to recommend hydrus to a friend but I'll wait a bit if it means that he could start importing to separate sections straight away and not have to relearn the flow.
Hey Hydev! I'm getting 403 errors when I try to load 4plebs threads into the simple downloader. Any idea how I could work around this? I've tried changing the User-Agent header and importing cookies, but neither fixed it.
I had a great week. As well as some little fixes and quality of life work, I improved support for ogv files (oggs with video), and completely reworked the 'presentation' options of importers, making the whole system faster and more user-friendly. The release should be as normal tomorrow.
>>16917 the 2nd option with the tag blacklist worked, ty
https://www.youtube.com/watch?v=Xm3mrwyR2pw windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v463/Hydrus.Network.463.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v463/Hydrus.Network.463.-.Windows.-.Installer.exe macOS app: https://github.com/hydrusnetwork/hydrus/releases/download/v463/Hydrus.Network.463.-.macOS.-.App.dmg linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v463/Hydrus.Network.463.-.Linux.-.Executable.tar.gz I had a great week. I was able to catch up on the work I wanted and do some neat stuff besides. import presentation I completely overhauled the importer 'presentation' options, which you can see under all 'file import options'. These have always been a bit advanced and confusing, so I rewrote it to specifically say a more human-friendly summary like 'show new files' and added text and tooltips to better explain what was going on. It also works a bit faster and cleaner. You can also now say 'show inbox files', regardless of 'successful' or 'already in db', which I think may be neat as the default for a watcher page that you process and revisit several times--every time you were to re-highlight a watcher, it would filter out anything you previously archived. And I updated the right-click menu on downloader and watcher pages' lists, where it said "show importers' new files", to use the new options. It now tucks it into a submenu, adds the 'inbox only' option, and if only one importer is selected it says what the default actually is and removes any duplicate action. other highlights The client now recognises ogg files with video as ogv! Previously, they were always considered audio, but now it will make thumbnails and parse resolution and duration and let you zoom properly with the video player and so on. All existing ogg files will be scheduled for a rescan when you update, so your ogvs should just pop into place. I think I fixed the deviant art tag search downloader. They changed their tag search routine recently, so I had to change some things behind the scenes. Everyone will get it on update, and the existing 'deviant art tag search' downloader should just work again. The manage ratings dialog now has copy/paste buttons for quick copying of multiple ratings across sets of files. This is a prototype, so give it a go and let me know what you think. It copies 'null' ratings at the moment, but maybe we'll want a second option too that only copies set ratings. full list - misc: - ogv files (ogg with a video stream) are now recognised by the client! they will get resolution, duration, num frames and now show in the media viewer correctly as resizeable videos. all your existing ogg files will be scheduled for a rescan on update - wrote new downloader objects to fix deviant art tag search. all clients will automatically update and should with luck just be working again with the same old 'deviant art tag search' downloader - added prototype copy/paste buttons to the manage ratings dialog. the copy button also grabs 'null' ratings, let me know how you get on here and we'll tweak as needed - file searches with namespaced and unnamespaced tags should now run just a little faster - most file searches with multiple search predicates that include normal tags should now run just a little faster - the file log right-click menu now shows 'delete x yyy files from the queue' for deleted, ignored, failed, and skipped states separately - the tag siblings + parents display sync manager now forces more wait time before it does work. it now waits for the database and gui to be free of pending or current background work. this _should_ stop slower clients getting into hangs when the afterwork updates pile up and overwhelm the main work - the option 'warn at this many pages' under _options->gui pages_ now has a max value of 65535, up from 500. if you are a madman or you have very page-spammy subscriptions, feel free to try boosting this super high. be warned this may lead to resource limit crashes - the 'max pages' value that triggers a full yes/no dialog on page open is now set as the maximum value of 500 and 2 x the 'warn at this many pages' value - the 'max pages' dialog trigger now only fires if there are no dialogs currently open (this should fix a nested dialog crash when page-publishing subscriptions goes bananas) - improved error reporting for unsolveable cloudflare captcha errors - added clarification text to the edit subscription query dialog regarding the tag import options there - added/updated a bunch of file import options tooltips
- new presentation import options: - the 'presentation' section of 'file import options' has been completely overhauled. it can do more, and is more human-friendly - rather than the old three checkboxes of new/already-in-inbox/already-in-archive, you now choose from three dropdowns--do you want all/new/none, do you want all/only-inbox/inbox-too, and do you want to my-files/and-trash-too. it is now possible to show 'in inbox' exclusively, at the time of publish (e.g. when you highlight) - added a little help UI text around the places presentation is used - the downloader and watcher page's list right-click menu entries for 'show xxx files' is now a submenu, uses the new presentation import options, shows 'show inbox files', and if you click on one row it says what the default is and excludes other entries if they are duplicates - . - boring presentation import options stuff: - presentation options are now in their own object and will be easier to update in future - the 'should I present' code is radically cleaned up and refactored to a single central object - presentation filtering in general has more sophisticated logic and is faster when used on a list (e.g. when you highlight a decent sized downloader and it has to figure out which thumbs to show). it is now careful about only checking for inbox status on outstanding files - presentation now always checks file domain, whereas before this was ad-hoc and scattered around (and in some buggy cases lead to long-deleted files appearing in import views) - added a full suite of unit tests to ensure the presentation import options object is making the right decisions and filtering efficiently at each stage - . - boring multiple local file services work: - I basically moved a bunch of file search code from 1 file services to n file services: - the file storage module can now filter file ids to a complex location search context - namespace:anything searches of various sorts now use complex location search contexts - wildcard tag searches now use complex location search contexts - counted tag searches now use complex location search contexts - search code that uses complex location search contexts now cross-references its file results in all cases - I now have a great plan to add deleted files search and keep it working quick. this will be the next step, and then I can do efficient complex-location regular tag search and hopefully just switch over the autocomplete control to allow deleted files search next week I managed to fit in some good work on multiple local file services this week as well. Most of the tag search code now works on n file services, with n currently locked to 1, ha ha ha. The next step here is to add a simple cache for all deleted files so I can search their tags quickly. I will move this forward when I next have some time. Beyond that, I want to get around to adding proper ICC support. This is colour-correction data that some files ship with. It mostly appears in camera photos, but some software puts it in normal static images too. I have been talking with a user about this for a while, and I think there is now a path to do it fast and accurately. I'd love to just have natural ICC support, showing it as a bitmap flag or something and just altering colours as the file specifies. It is Thanksgiving in the US tomorrow. Thanks everyone!
>>16915 >Looking at the code, if you turn on help->advanced mode, it looks like the file limits on subs expand up to 10,000. Is that enough? That's enough for now (and until an artist I'm subbed to on e621 hits over 10k and I have some reason to want to re-get all my tags). Thank you! >The problem is the attaching of 5,000+ import objects to every query you are subbed to. [...] So, in my mind, I imagine checking a subscription goes something like this: -Checker decides sub X needs to be checked -Download gallery pages from site for subscription -Check linked files against last file downloaded in DB until you find a match -Once you find a match, download all files that didn't match. What am I missing where you need to load every object a given subscription needs to have? Is it a sqlite limitation (I've only really worked with oracle and postgres)? >Yeah, this is my big hope with a 'review subscriptions' dialog. [...] I wasn't thinking anything so grandiose, just a way to cache subscription changes and wait for them to pause normally, save the cached changes, and restart them in the background. You'd probably need to only allow one cached change (if a user tried to open the dialog again before the first change had been applied, they'd need to wait). Also, I missed this suggestion before, I would really like a way to pull and store text descriptions of files.
is there a way you can list and see all the tags you're using? I've been experimenting a lot with how I tag pictures, I think I've got a system I like, but I the autists in me wants to remove tags I've only used once to clean it up. So is there anyway I can just get a list displaying tags(#)? That I then can just purge useless tags from the DB?
(153.27 KB 1366x698 1.png)

(133.17 KB 951x699 2.png)

(56.54 KB 523x542 3.png)

>>16946 Sure. 1 - Load all files. See screenshot 1. 2 - Click the background anywhere between thumbnails (sectors highlighted with red squares) to get the list. See screenshot 2. 3 - Sort that list by tag count. See screenshot 3.
>>16878 Is there a way to disable ratings? Or they can't be disabled once enabled?
>>16944 Thanks for fixing the Deviantart gallery downloader. I've managed to get it to start downloading the pics now, but I'm still having one problems with it. It won't download the tags. The tag search itself seems to work, but it won't import the tags with the pics. All I get is the creator: and the title: tags. I've checked to make sure my import tags is checked and that the page itself has tags. Import tags from the boorus are working, it's just deviant art. Is there anything else I need to do on my end to get tags importing? Thanks!
>>16943 Thanks for the update devanon! The rating copying works great, but would it be possible to have the manage rating window behave like the manage tags window for the media viewer? In particular, the ability to still scroll through media in the media viewer while having the manage rating window reflect the current image. This will help in streamlining the process of copying a rating to another file.
I tried to use Hatate to tag a lot of my images but I think I fucked up my database as a result. Running the dupes pages tends to spit out this error: FileMissingException No file found at path E:\Pictures\!!!!!Hydrus Database\f5a\5a3437d8836919b5d08098bf8cec46a3d19d47032b1aa95c42434da2fd0c66eb.jpg! Traceback (most recent call last): File "hydrus\client\ClientFiles.py", line 1072, in GetFilePath ( actual_path, old_mime ) = self._LookForFilePath( hash ) File "hydrus\client\ClientFiles.py", line 608, in _LookForFilePath raise HydrusExceptions.FileMissingException( 'File for ' + hash.hex() + ' not found!' ) hydrus.core.HydrusExceptions.FileMissingException: File for 5a3437d8836919b5d08098bf8cec46a3d19d47032b1aa95c42434da2fd0c66eb not found! During handling of the above exception, another exception occurred: Traceback (most recent call last): File "hydrus\core\HydrusThreading.py", line 401, in run callable( *args, **kwargs ) File "hydrus\client\ClientRendering.py", line 223, in _Initialise self._path = client_files_manager.GetFilePath( self._hash, self._mime ) File "hydrus\client\ClientFiles.py", line 1076, in GetFilePath raise HydrusExceptions.FileMissingException( 'No file found at path {}!'.format( path ) ) hydrus.core.HydrusExceptions.FileMissingException: No file found at path E:\Pictures\!!!!!Hydrus Database\f5a\5a3437d8836919b5d08098bf8cec46a3d19d47032b1aa95c42434da2fd0c66eb.jpg! Pic related is when it happens in real-time. And before anyone says shit about the pictures, this was a fuck-up and I didn't think of filtering out foot faggotry at the time (nor do I know how to do it without excluding unrelated pictures).
>>16951 Did you maybe leave hatate's 'Send files to recycle bin once imported into hydrus' (Settings > Hydrus API) option on? If so I'd check your operating system's recycle bin, if it has one.
>>16923 >>16930 >>16934 Hey, I am very sorry to hear your trouble. I know the feeling, trust me. Mine was my 'cool videos' drive dying in about 2006, losing me 75,000 files or so from early internet days. In time I found the fear of it happening again to be a great motivator. If you have any malformed version of the client.db, client.caches.db, client.mappings.db, and client.master.db files, as are normally stored in install_dir/db, there may be some stuff we can recover. Since things are very broken and it won't boot, I suspect the likely outcome--if you want to try--is extracting the good content out manually using SQLite and injecting it into a fresh database. I am happy to help you try to figure this stuff out. If you like, you can email me on a throwaway account (hydrus.admin@gmail.com), and we can work on it one-on-one. In any case, the most important thing to do, if you have those files, is get a backup of them in their current state so we can play around with a copy and see what we can recover. Then please check out "install_dir/db/help my db is broke.txt" as background reading and SQLite specific recovery options. Running a clone is usually a good operation, and even if it truncates a whole heap of information, if we put the work in we can see what is recoverable. No promises, but worth trying. Just make sure you keep that copy of the original files as they currently are.
>>16924 Thanks, this sounds doable. I will see if I can expand the options here. >>16937 Ah cool, thanks. We build on Ubuntu 18.04 at the moment, but it looks like Github can do 20.04 as well. It sounds like we could do a couple tests here to see if that works better/worse for most people. >>16939 It was supposed to be done half way through this year, but then my year fell apart! I am working on it on and off right now and would love to have it all done in Q1 2022. I will be adding easy-import/merge tech to let users who currently have two clients merge them together nice and easy, so your friend might want to start now anyway, or just on part of the problem. I hope for this all to be flexible and stress free and non-complicated once it is in. Let's see how I do!
>>16952 I did, and restoring everything that was deleted in my Hydrus files seems to have made it all work again, thanks.
>>16938 This is not really possible unfortunately. Trying to share file storage is likely to cause some deleted files when a maintenance routine notices a file that it wasn't expecting, and trying to run multiple clients on the same actual database files on a network location will corrupt the database. My long term plan is to do exactly as you say and have clients hook into others using the Client API. This is related to the 'multiple local file services' tech I'm currently working on, too, where I want you to basically be able to search a client remotely and see thumbnails and so on, just as a separate partition besides 'my files'. This will also let you share some of your files with friends across the internet. >>16940 Hmm, I am not sure. I get a 403 when I try a test here too, and the error page looks like CloudFlare, with 'cf' css decoration. The specific error is "This website is using a security service to protect itself from online attacks.", which I am not sure I have seen before. There's a 4plebs note later saying "Automated crawling of this site is unnecessary as all of our content can be downloaded on the <a href="https://archive.org/search.php?query=subject%3A%224plebs%22">Internet Archive</a>", so I wonder if they have activated a very strong CF block. My understanding is the CF strong test requires you to copy browser User-Agent to hydrus exactly, and cookies, and then you are good. If you have done this, I am afraid I have no more expertise. If you use Hydrus Companion, this can automate this process, the User-Agent too, which needs to be exact down to all the little version numbers with the browser that got the 'good' cookies. Let me know what you discover!
>>16945 You are right that it doesn't have to be the way it is, with a bulky object being loaded to run, but basically a subscription is really just my 'downloader' object that uses some different timing tech and check rules, and all the decisions it makes about URLs run through a pipeline that is built into downloader code. Just little stuff like http://some_url is usually equivalent to https://some_url, but all those 'do we have this?' nuts and bolts and related tools run through the 'file log' object you see on any downloader. The 'import objects' stored in that log are richer than the simple file-URLs maps stored in the SQLite database proper, but they can do more in the same way. They also keep a hold of known file hashes, known urls, update timestamps, and tags as parsed at the time of download. A URL is only 60 characters or so, but an import object can be 1-2KB and has some extra CPU to load and save. This is my main hesitance about allowing many thousands of URLs per sub--I'm radically expanding the size of subs just in read/write I/O, and also introducing more chances for large queues to break half way through and not save their work gracefully. Some things in subs are non resumable if cancelled, mostly it is file search, so if a search gets cancelled 10 pages in to a 20 page search, the next time it runs it needs to start over from the beginning. In order to fix these issues and allow bigger subs and keep things smooth, I would have to either write a new import object just for subs that only held URLs and change the rich import object to the slim import object once an URL was done with, or I would have to write a db-side subscription record and change the subscription work code to asynchronously test against that record to run a sub. Both of these would require a whole heap of work, so I haven't invested the time yet. For text descriptions, I would love to add note parsing to the downloader. I have part of this work done. One of these weeks when I have some free time I would like to finish it off.
>>16948 If you don't like the new 'favourites' star rating, hit up services->manage services and then remove the 'like/dislike service' it is listed under. You'll go back to how it was before. >>16949 Yeah, our first version of the DA downloader (and I think the Hentai Foundry and tumblr) downloaders enthusiastically parsed all creator tags, but after some use, we came to the conclusion that most creators tag in formats that were A) unhelpful or B) badly formatted. Many of those sites don't support nicer booru-style tags, or even tags with spaces, so you'll see a lot of [ 'samus', 'aran' ]. And some artists are not familiar with what tags actually are, so they'll just write a sentence in the tag box, like [ 'i', 'am', 'drawing', 'good', today' ]. We saw enough of that sludge parsed that we generally rolled back the parsers to only get username and official title data. If you are feeling brave and you want to tinker with things, you can try altering the hydrus downloader to grab what you want. The help starts here: https://hydrusnetwork.github.io/hydrus/help/downloader_intro.html But I must be honest with you, learning that system can be a pain, and the tags as they shake out in reality are more harm than help in a hydrus client, so I am not sure it is worth the work. >>16950 Thanks, that is a great idea! I'll have a think about this. It may need a bit more work since the manage tags thing is all hardcoded, and if I want to do this with multiple dialogs I should probably generalise the whole thing to a template.
>>16943 The OGG/OGV fix took some time to get going, but it works like a charm now! Thanks dev!
>>16946 >>16947 Just wanted to say thank you, to whoever asked that question and the answer. This was something I was wondering myself.
(309.57 KB 192x192 honking.gif)

>>16960 Glad to know fren.
Out of curiosity, is it possible to browse through all the tags present in the public tag repository? For instance finding out how many instances of tag A exists and perhaps how many files with tag A also has tag B
I had trouble posting this last night. I hadn't realised how long the thread was--I will make a new general today for the release post! I had a good week. I managed to add support for embedded ICCs, which will improve some images' colours, and overhauled how files are deleted from the client and server so the system is smoother and more reliable. The release should be as normal tomorrow.
>>16962 Unfortunately the sheer number of tags--tens of millions--make it difficult to 'browse' in UI, so your best shot for now is to access the SQLite database files manually and run your own statistical queries. I can help you with that if you like. Another simple option is just to run some basic searches on 'all known files'. This is advanced, so be careful of running some super CPU heavy searches, but turn on help->advanced mode, and then change your search page from 'my files' to 'all known files' and the tag domain from 'all known tags' to 'PTR'. Then do some searches, you'll see real tag counts and get ghost results of non-local files if you run a search. It is borked developer-mode stuff mostly for mine or the janitors' use, but you can learn some interesting things. New Thread >>6469


Forms
Delete
Report
Quick Reply