/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.

US Election Thread

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

(24.53 KB 480x360 oWl-xtan44o.jpg)

Version 320 hydrus_dev 08/29/2018 (Wed) 21:41:18 Id: ce499d No. 9822
https://www.youtube.com/watch?v=oWl-xtan44o windows zip: https://github.com/hydrusnetwork/hydrus/releases/download/v320/Hydrus.Network.320.-.Windows.-.Extract.only.zip exe: https://github.com/hydrusnetwork/hydrus/releases/download/v320/Hydrus.Network.320.-.Windows.-.Installer.exe os x app: https://github.com/hydrusnetwork/hydrus/releases/download/v320/Hydrus.Network.320.-.OS.X.-.App.dmg tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v320/Hydrus.Network.320.-.OS.X.-.Extract.only.tar.gz linux tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v320/Hydrus.Network.320.-.Linux.-.Executable.tar.gz source tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v320.tar.gz I had a great week. The downloader overhaul is in its last act, and I've fixed and added some other neat stuff. There's also a neat hydrus-related project for advanced users to try out. Late breaking edit: Looks like I have broken e621 queries that include the '/' character this week, like 'male/female'! Hold off on updating if you have these, or pause them and wait a week for me to fix it! misc I fixed an issue introduced in last week's new pipeline with new subs sometimes not parsing the first page of results properly. If you missed files you wanted in the first sync, please reset the affected subs' caches. Due to an oversight, a mappings cache that I now take advantage of to speed up tag searches was missing an index that would speed it up even further. I've now added these indices–and your clients will spend a minute generating them on update–and most tag searches are now superfast! My IRL client was taking 1.6s to do the first step of finding 5000-file tag results, and now it does it in under 5ms! Indices! The hyperlinks on the media viewer now use any custom browser launch path in options->files and trash. downloader overhaul (easy) I have now added gallery parsers for all the default sites hydrus supports out the box. Any regular download now entirely parses in the new system. With luck, you won't notice any difference, but let me know if you get any searches that terminate early or any other problems. I have also written the new Gallery URL Generator (GUG) objects for everything, but I have not yet plugged these in. I am now on the precipice of switching this final legacy step over to the new system. This will be a big shift that will finally allow us to have new gallery 'seachers' for all kinds of new sites. I expect to do this next week. When I do the GUG switch, anything that is supported by default in the client should switch over silently and automatically, but if you have added any new custom boorus, a small amount of additional work will be required on your end to get them working again. I will work with the other parser-creators in the community to make this as painless as possible, and there will be instructions in next week's release post. In any case, I expect to roll out nicer downloaders for the popular desired boorus (derpibooru, FA, etc…) as part of the normal upcoming update process, along with some other new additions like artstation and hopefully twitter username lookup. In any case, watch this space! It's almost happening! downloader overhaul (advanced) So, all the GUGs are in place, and the dialog now saves. If you are interested in making some of your own, check what I've done. I'm going to swap out the legacy 'gallery identifier' object with GUGs this coming week, and fingers-crossed, it will mostly all just swap out no prob. I can update existing gallery identifiers to my new GUGs, which will automatically inherit the url classes and parsers I've already got in place, but custom boorus are too complicated for me to update completely automatically. I will try to auto-generate gallery and post url parsers, but users will need GUGs and url classes to get working again. I think the best solution is if we direct medium-level users to the parser github and have them link things together manually, and then follow-up with whatever 'easy import' object I come up with to bundle downloader-capability into a single object. And as I say above, I'll also fold in the more popular downloaders into some regular updates. I am open to discuss this more if you have ideas! Furthermore, I've extended url classes this week to allow 'default' values for path components and query parameters. If that component or parameter is missing from a given URL, it will still be recognised as the URL class, but it will gain the default value during import normalisation. e.g. The kind of URL safebooru gives your browser when you type in a query: https://safebooru.org/index.php?page=post&s=list&tags=contrapposto Will be automatically populated with an initialising pid=0 parameter: https://safebooru.org/index.php?page=post&pid=0&s=list&tags=contrapposto This helps us with several "the site gives a blank page/index value for the first page, which I can't match to a paged URL that will then increment via the url class"-kind of problems. It will particularly help when I add drag-and-drop search–we want it so a user can type in a query in their browser, check it is good, and then DnD the URL the site gave them straight into hydrus and the page stuff will all get sorted behind the scenes without them having to think about it.
[Expand Post]I've updated a bunch of the gallery url classes this week with these new defaults, so again, if you are interested, please check them out. The Hentai Foundry ones are interesting. I've also improved some of the logic behind download sites' 'source url' pre-import file status checking. Now, if URL X at Site A provides a Source URL Y to Site B, and the file Y is mapped to also has a URL Z that fits the same url class as X, Y is now distrusted as a source (wew). This stops false positive source url recognition when the booru gives the same 'original' source url for multiple files (including alternate/edited files). e621 has particularly had several of these issues, and I am sure several others do as well. I've been tracking this issue with several people, so if you have been hit by this, please let me if and know this change fixes anything, particularly for new files going forward, which have yet to be 'tainted' by multiple incorrect known url mappings. I'll also be adding some 'just download the damned file' checkboxes to file import options as I have previously discussed. A user on the discord helpfully submitted some code that adds an 'import cookies.txt' button to the review session cookies panels. This could be a real neat way to effect fake logins, where you just copy your browser's cookies, so please play with this and let me know how you get on. I had mixed success getting different styles of cookies.txt to import, so I would be interested in more information, and to know which sites work great at logging in this way, and which are bad, and which cookies.txt browser add-ons are best! a web interface to the server I have been talking for a bit with a user who has written a web interface to the hydrus server. He is a clever dude who has done some neat work, and his project is now ready for people to try out. If you are fairly experienced in hydrus and would like to experiment with a nice-looking computer- and phone-compatible web interface to the general file/tag mapping system hydrus uses, please check this out: https://github.com/mserajnik/hydrusrvue https://github.com/mserajnik/hydrusrv https://github.com/mserajnik/hydrusrv-docker In particular, check out the live demo and screenshots here: https://github.com/mserajnik/hydrusrvue/#demo Let him know how you like it! I expect to write proper, easier APIs in the coming years, which will allow projects like this to do all sorts of new and neat things. full list - clients should now have objects for all default downloaders. everything should be prepped for the big switchover: - wrote gallery url generators for all the default downloaders and a couple more as well - wrote a gallery parser for deviant art–it also comes with an update to the DA url class because the meta 'next page' link on DA gallery pages is invalid wew! - wrote a gallery parser for hentai foundry, inkbunny, rule34hentai, moebooru (konachan, sakugabooru, yande.re), artstation, newgrounds, and pixiv artist galleries (static html) - added a gallery parser for sankaku - the artstation post url parser no longer fetches cover images - url classes can now support 'default' values for path components and query parameters! so, if your url might be missing a page=1 initialsation value due to user drag-and-drop, you can auto-add it in the normalisation step! - if the entered default does not match the rules of the component or parameter, it will be cleared back to none! - all appropriate default gallery url classes (which is most) now have these default values. all default gallery url classes will be overwritten on db update - three test 'search initialisation' url classes that attempted to fix this problem a different way will be deleted on update, if present - updated some other url classes - when checking source urls during the pre-download import status check, the client will now distrust parsed source urls if the files they seem to refer to also have other urls of the same url class as the file import object being actioned (basically, this is some logic that tries to detect bad source url attribution, where multiple files on a booru (typically including alternate edits) are all source-url'd back to a single original) - gallery page parsing now discounts parsed 'next page' urls that are the same as the page that fetched them (some gallery end-points link themselves as the next page, wew) - json parsing formulae that are set to parse all 'list' items will now also parse all dictionary entries if faced with a dict instead! - added new stop-gap 'stop checking' logic in subscription syncing for certain low-gallery-count edge-cases - fixed an issue where (typically new) subscriptions were bugging out trying to figure a default stop_reason on certain page results - fixed an unusual listctrl delete item index-tracking error that would sometimes cause exceptions on the 'try to link url stuff together' button press and maybe some other places - thanks to a submission from user prkc on the discord, we now have 'import cookies.txt' buttons on the review sessions panels! if you are interested in 'manual' logins through browser-cookie-copying, please give this a go and let me know which kinds of cookies.txt do and do not work, and how your different site cookie-copy-login tests work in hydrus. - the mappings cache tables now have some new indices that speed up certain kinds of tag search significantly. db update will spend a minute or two generating these indices for existing users - advanced mode users will discover a fun new entry on the help menu - the hyperlinks on the media viewer hover window and a couple of other places are now a custom control that uses any custom browser launch path in options->files and trash - fixed an issue where certain canvas edge-case media clearing events could be caught incorrectly by the manage tags dialog and its subsidiary panels - think I fixed an issue where a client left with a dialog open could sometimes run into trouble later trying to show an idle time maintenance modal popup and give a 'C++ assertion IsRunning()' exception and end up locking the client's ui - manage parsers dialog will now autosort after an add event - the gug panels now normalise example urls - improved some misc service error handling - rewrote some url parsing to stop forcing '+'->' ' in our urls' query texts - fixed some bad error handling for matplotlib import - misc fixes next week The big GUG overhaul is the main thing. The button where you select which site to download from will seem only to get some slightly different labels, but in truth a whole big pipeline behind that button needs to be shifted over to the new system. GUGs are actually pretty simple, so I hope this will only take one week, but we'll see!
(182.89 KB 400x380 boned.png)

F A L L B E H I N D I was better a couple years ago, but then I put like 200k archived back in the inbox, fugg.
(11.07 KB 480x360 hn-7zMefBfM.jpg)

https://www.youtube.com/watch?v=hn-7zMefBfM >>9822 Oh look, one of my favourite hobbies. Thanks Dev! >>9823 Where can I get this?
>>9822 >Late breaking edit: Looks like I have broken e621 queries that include the '/' character this week, like 'male/female'! Does this mean any image with a / in the tags, or just searches/subscriptions that specifically look for them? >>9823 Looks fun, is that in this release? I skimmed the notes but didn't see anything about it.
>>9826 >>9825 If you boot the client in help->advanced mode, it is a new entry in the help menu. Post yours if you like! The e621 thing is for new download queries and e621 subscriptions that use '/' in the search query text (which obvs start a new download query when they next sync). Just some HTTP URL formatting shit it looks like I broke this week. Files already in the db are ok, this is just downloader stuff.
I'm getting this error message since 319. Exception Unable to render that video! Please send it to hydrus dev so he can look at it! Traceback (most recent call last): File "include/ClientRendering.py", line 370, in THREADRender File "include/HydrusVideoHandling.py", line 767, in read_frame Exception: Unable to render that video! Please send it to hydrus dev so he can look at it!
(198.78 KB 380x351 where is exit.png)

My inbox is nearly empty because I have high tagging standards that I keep updating, I only put "fully tagged and sorted" files into my archive, I don't have much time to work on my collection, and I'm way behind on dupes. It needs a line for dupes below the other two, by the way. This is just stuff downloaded through Hydrus, I haven't really imported any of my old files yet. RIP brave storage. I don't really understand what's going on with the GUGs right now, so I'll just wait for the pleb version to roll out in the GUI in a week or two, but at that time I have several very different websites I want to make GUGs for so that might be useful for testing purposes. Is it going to be as simple as "paste the URL of the index, then the URL of the file itself, and Hydrus will pattern match from that index", or a little more involved? Different topic, but when I start up hydrus in debug (as I always do now) it generally hangs for the usual time period of say 30 seconds before popping up my login password, and during that time the last line on screen is always the line right after the [LOADER] lines which says "Could not import lz4". Hydrus seems to have no problems despite this, so I have to ask, is this normal/just a legacy notification or are things actually broken in some way? Another questions, what are the /tzdata/ locales used for? I noticed them while unpacking. Is it for resetting the daily limits at local midnight?
I say this allot, i'm waiting almost entirely on being able to notate why things have been deleted, This would allow me to use the dup detector to go through files and get rid of duplicates dup detector is a little broken for me due to a database fuck up so only around half my files are in it on that note I am waiting on a second thing, the way, if you have dups, and you're introduce the dups to the program, it will never bring them up again to be sorted, though this is a minor thing. On that note, a prefer alternate would be a nice addition to the duplicate processing area, where it treats the file you set as the lesser not as a 'this image is lesser' but as a 'I liked the other image more' also, I think image viewing may have broken, going to restart client to see.
>>9829 I just started looking at importing more seriously and realized that the "add tags based on filename" option doesn't exist for the auto-importer, but that's the one I really need it for. Is it hiding somewhere? >>9830 I'm pretty sure the "Alternates" button is the second thing. In computer terms as well as human terms liking something more is the same as liking the other thing less. That doesn't have to mean you get rid of the less liked thing, you can define custom actions right there in the filter view.
>>9830 Program just restarted, yep, viewing images in program seems to be broken 4chan and e621 both don't want to parse pages, e621 was gulp5959 and 4chan was https://boards.4chan.org/d/thread/8147187 going to try loading up the older version I backup, see if that has the same problem
>>9832 Ok, loaded up 319 from a backup, still do images, and because its not the main db, I was hesitant to download, I may be looking at 2 issues. going to send email as I have no idea which will get responses first.
Indices? Black magic, gotcha.
(184.63 KB 1186x866 Untitled.png)

What are these files without extensions in my f00 folder? The selected one is 41 bytes. All f## folders seem to have them. Some are hundreds of kb.
>>9839 They're PTR files
>>9840 Why are they not in my .db files where they should be?
(153.19 KB 373x331 boned.png)

>>9823 Most of my inbox is from downloading entire galleries of whatever artist and not sorting them. I'm currently burned out on tagging from going through several hundred images a day for two weeks.
>>9841 That's just where Hydrus keeps them. You'll have to ask dev for more specifics but that's what they are
Still getting this, was closing a manage tags window after transferring all my local tags to the PTR for a selection of images wxAssertionError
C++ assertion "IsRunning()" failed at ..\..\src\common\evtloopcmn.cpp(83) in wxEventLoopBase::Exit(): Use ScheduleExit() on not running loop
File "include\ClientGUITopLevelWindows.py", line 479, in EventOK
self.DoOK()
File "include\ClientGUITopLevelWindows.py", line 667, in DoOK
self.EndModal( wx.ID_OK )
>>9828 Thank you for this report. Are you on Linux? Of so, which flavour? If you go help->about, does it list an ffmpeg version, or say something like 'not found'? I've noticed my build is having trouble figuring out the right environment or cwd or something for certain flavours of Linux just recently. One possible solution seems to be to place a static ffmpeg executable in the install_dir/bin folder. https://johnvansickle.com/ffmpeg/ If you try that, let me know if it works.
>>9829 GUGs are the big that converts 'samus_aran' into https://gelbooru.com/index.php?page=post&s=list&tags=samus_aran&pid=0. They are the user-facing bit of the whole new downloader engine, and effectively 'name' each downloader capability. I'll be fleshing out the 'how to make a downloader' help once I am all done here, so this will get easier to handle. I'm not sure what the delay is–that might be something to do with the debug environment. The lz4 thing is strange–just recently, it stopped importing right for most platforms. It isn't a big deal (it just does some optional memory compression), but I threw a few hours at the problem a few weeks ago and couldn't figure it out, so I am putting it off until after I update to python 3, which may magically fix it. I don't know precisely what the tz etc… shit is. When I 'freeze' the python build, PyInstaller bundles a load of other shit with it. I think most of it is tcl/tk ui bundled in for like if the bootloader fails and it needs to pop up an error window. All that '2KB Baghdad file' shit is prob some localisation so the dialog can pop up with the right translation of 'failed to load python environment' and whatever based on OS settings. But environment freezing seems to be voodoo at the best of times, so I can't comment with any expertise.
>>9832 >>9830 >>9833 Thank you, I will answer your email in a bit.
>>9831 It is hiding at the bottom of the edit import folder ui, under 'filename tagging options services'. That is a pretty shit name. What would be a better name for this? I should also wrap it in a box or something, rather than just have a bare box.
>>9839 >>9840 >>9841 >>9844 When the client downloads the gzipped json from the server, it saves it in the standard file structure. It processes the files into its tables later. It keeps the original files so if the mappings tables are reset or damaged or need to be checked or whatever, you don't have to redownload. If you are interested, you can copy one of those files somewhere and open it up and de-gzip it, and you should have a handful of giant json lists.
>>9845 Thank you. I will have another look at this.
>>9851 Oh fuck it isn't detecting my ffmpeg.
>>9827 Doesn't work for me, I'm getting this error: DBException
TypeError: unsupported operand type(s) for -: 'long' and 'NoneType'
File "include\ClientGUIMenus.py", line 156, in event_callable
callable( *args, **kwargs )
File "include\ClientGUI.py", line 2025, in _HowBonedAmI
boned_stats = self._controller.Read( 'boned_stats' )
File "include\HydrusController.py", line 491, in Read
return self._Read( action, *args, **kwargs )
File "include\HydrusController.py", line 177, in _Read
result = self.db.Read( action, HC.HIGH_PRIORITY, *args, **kwargs )
File "include\HydrusDB.py", line 866, in Read
return job.GetResult()
File "include\HydrusData.py", line 1498, in GetResult
raise e

Database Traceback (most recent call last):
File "include\HydrusDB.py", line 532, in _ProcessJob
result = self._Read( action, *args, **kwargs )
File "include\ClientDB.py", line 8645, in _Read
elif action == 'boned_stats': result = self._GetBonedStats( *args, **kwargs )
File "include\ClientDB.py", line 3940, in _GetBonedStats
size_archive = size_total - size_inbox
TypeError: unsupported operand type(s) for -: 'long' and 'NoneType'
>>9861 Thanks, I'll check this. I'm guessing you aren't boned! Maybe 0 archive or inbox?
>>9862 Yeah, zero inbox. I just archive all the imports.
>>9854 Thanks, I didn't notice it before partly because it label is sort of an unclickable line inside the list box. That label isn't that bad, can't really thing of another one. Maybe take off "services"? I know it's subdivided by them, but might not need to be in the label. It would be clearer (to me) if it were a text line above the box rather than in it. While I'm here I should tell you that if you have an old import folder and you delete it, then edit the hydrus entry for it and hit Apply without changing the path to something valid, the same popup (or a very similar one, I didn't actually read all the text on each one) pops up four or five times before you're finally allowed to cancel out. Might be intended behavior though, like I said I didn't actually read other than the first two. I have a low-priority thing to request for the todo also: can you add a potato mode to importing? The full-throttle approach sort of fucks my shit up, if it could import slower with less system resources at a lower CPU priority, that would be helpful.
>>9851 Based, it worked. ty
>>9866 Thanks. I'll check out the spammy popup on missing location. I'll be revisiting file import options in the nearish future to do some url- and hash-checking logic options. While I am in there, I'll see if I can add an option for an artificial 'wait x seconds after every import' to throttle things.
A web interface for the server? Hell yes! Hopefully, I will be able to figure out how to set up all that crap. Being able to host my own little Booru from my Hydrus db is something I wanted to do for a while now.


Forms
Delete
Report
Quick Reply