[ / / / / / / / / / / / / / ] [ dir / random / 93 / biohzrd / hkacade / hkpnd / tct / utd / uy / yebalnia ]

/hydrus/ - Hydrus Network

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

Name
Email
Subject
REC
STOP
Comment *
File
Password (Randomized for file and post deletion; you may also set your own.)
Archive
* = required field[▶Show post options & limits]
Confused? See the FAQ.
Embed
(replaces files and can be used instead)
Options

Allowed file types:jpg, jpeg, gif, png, webp,webm, mp4, mov, swf, pdf
Max filesize is16 MB.
Max image dimensions are15000 x15000.
You may upload5 per post.


This board will be deleted next Wednesday. I am moving to a General on 8chan.moe /t/. This board is archived at 8chan.moe /hydrus/!

YouTube embed. Click thumbnail to play.

24c888 No.14576

windows

zip: https://github.com/hydrusnetwork/hydrus/releases/download/v405/Hydrus.Network.405.-.Windows.-.Extract.only.zip

exe: https://github.com/hydrusnetwork/hydrus/releases/download/v405/Hydrus.Network.405.-.Windows.-.Installer.exe

macOS

app: https://github.com/hydrusnetwork/hydrus/releases/download/v405/Hydrus.Network.405.-.macOS.-.App.dmg

linux

tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v405/Hydrus.Network.405.-.Linux.-.Executable.tar.gz

source

tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v405.tar.gz

I had a good week. 'system:number of tags' now supports namespace filtering.

number of tags

The 'system:number of tags' predicate now lets you attach a namespace, so you can search for 'files with two character tags' or 'files with more than one creator', or any other combination you can think of. Also, all 'number of tags' queries have been optimised, and are now typically much faster, particularly when mixed with other tags. They are also quickly cancellable, so if you do enter a very slow one, it should respond fairly quickly if you hit the 'stop search' button that appears after a delay.

I updated a bunch of the database code here to support new types of search. With the namespace searching, you can enter a blank namespace to search for 'unnamespaced' tags, and if you have a very specific need, you can now enter a wildcard namespace, like 'crea*', perhaps to help search for typos.

Unfortunately, I am removing 'system:number of tags' from the 'default system predicates' options panel. EDIT: I am hiding the whole panel now. This horrid stack of UI runs on ancient and difficult-to-update code, so rather than wrestle with it more, I plan to retire it and replace it with a clean system that also allows for editing search predicates in place (e.g. right-clicking an active search predicate and changing the >2 to >3 or similar).

I am really happy with how namespace counting turned out, and I have wanted it myself for a long time. Let me know how it works for you.

duplicate subscription queries

I believe the subscription data storage rewrite introduced a bug where when you paste queries into a sub and it says 'x y z are already in the sub and will not be added', they were being added anyway!

I fixed it. If you paste into subs a lot and get this message regularly, please check your subs for dupes! Now we have faster and more flexible subs, some users have also asked for broader de-duping tech that spans across multiple subs or does upper/lower case deduping, so I also expect to write buttons to do this in the near future, so you may also just want to wait for that.

ptr parents

Please note that the public tag repository is turning off tag parent submissions for regular users for a bit. If you haven't seen it already, the 'ptr' tab in manage tag parents will disappear in a few days. The task of cleaning up old and ongoing mistakes is proving too awkward with the current tools, so it is halted until I have a 'virtual parents' rework done, which will allow for more cleanly undoable parents (and hence less contagious bad ones). If you have seen 'shadow the hedgehog' or other bizarre tags appearing in odd places, this is what we hope to fix.

I have scheduled my next 'medium-size' job week, 408, to be for a 'presentation' tag cache, which will allow fast and accurate searching and loading of the tags you actually see on the front end. It will start with siblings, extend to tag filtering/censorship, and then parents will be made virtual and moved to it as well. This was a priority at the end of last year, before Qt and 2020's fun appeared, so I would now like to focus on it again.

full list

- tag search:

- system:number of tags now supports namespaces, for example 'find files with two character tags'! (issue #280)

- it also supports wildcard namespaces, as now do regular namespace search predicates. both run faster. "crea*:anything" is now possible

- system:number of tags has been optimised, and in many cases is now ten to a hundred times faster

- system:number of tags still does not support siblings, something I hope to start correcting as of v408

- both tag existence (numtags =0 or greater than 0) and tag count database routines now respond quickly to 'cancel search' commands, so if you do run a slow query (a bare 'has creator tag' search on 'all known files' on the PTR, for instance), you can now back out quickly after the 'stop' button appears

- note that 'system:number of character tags greater than 0' and '= 0' are equivalent to +/-character:anything, which will be swapped in if you enter these. also, +/-unnamespaced:anything can now appear

- the program is a bit better about determining =0 and greater than 0 and less than 1 being 'none' and 'any but none', when it needs to determine optimisations and special labels

- unfortunately, I am taking away the default value for system:num tags in the options page (edit: I am killing the whole panel now). this old ugly mess of stacked predicate edit panels works on ancient, difficult to update code, so I will retire it and replace it with a unified system that is easy to use, supports in-search system predicate editing, and keeps up with changes automatically

- system:number of tags is now comfortable with redundancies–if you add >2 and >4, it now knows that >4 is the true lower bound (previously, the one used was random)

- boring code changes here:

- updated tag existence and tag count searches to take advantage of the tag cache when in a specific file domain (which is pretty much all the time), which should speed them up significantly

- updated tag existence and tag count searches to more carefully plan their queries, speeding them up both in advantageous and difficult situations

- cleaned up tag existence and tag count code significantly

- updated all edit system predicate panels to return full predicate objects, a step towards decoupling them and allowing in-place system predicate editing

- wrote a new number test object to hold and help with number range test values. num tags now uses it, and eventually all range predicates will too

- the namespace existence search code ('anything' queries) is now folded into the new generalised tag existence search code

- streamlined how the search context propagates through all database tag searchingnow, most queries do not know or care about domain or current/pending statusthey just iterate over n tables as determined by a specialised routine

- added a handful of unit tests for the new namespace num tag searching

- .

- database repair:

- the database menu has a new entry, 'repopulate truncated mappings tables', under the newly renamed 'check and repair' submenu, which will try its best to 'fix' a client.mappings.db file that has been truncated due to hard drive fault by repopulating from the local-file-only tag cache. do not run this unless you know you need to

- the 'help my db is broke.txt' document has a full update pass. the language is clearer, common issues and questions are better addressed, two new recovery routines are added, a section on the stages after boot recovery (like the new repopulate job above) is added, and I added my stock 'now become a backup patrician' nag at the end

- the debug routine to clear cached service info numbers is now moved to the 'regenerate' database menu. this thing fixes hanging incorrect 'pending' counts until I can fix it properly

- .

- the rest:

- fixed an issue where when you pasted queries into a subscription, those that were already in the sub (and got the dialog saying so), were being added anyway! I believe this bug came in the last few weeks, after the data storage rewrite. please check your pasted-into subs for dupes

- fixed tab double middle-click behaviour (so you can spam page close), which I thought I had fixed last week but actually messed up completely right at the end (issue #314)

- cleaned up some more of the page tab event code–it was a mess all around. should all be on Qt now, no wx hacks

- network jobs will no longer wait for and consume bandwidth start tokens while all network traffic is paused. all bandwidth competition now halts. (previously, they would continue to consume tokens according to current rules and then all rush to start as soon as traffic was resumed)

- fixed some client booru/client api requests to correctly 404 on missing file results, rather than 500

- cleaned up some file sort code and fixed the sort string conversion, which was rendering the opposite sort direction (asc/desc) in summary labels (e.g. on manage favourite searches)

- cleaned up some ui layout stretching code, including some borked tag import options expand sizing

- improved some button and padding layout definitions, and improved, slightly, the way the top-right media viewer hover window lays itself out and changes its size on media change

- improved some review services layout. should be fewer weird heights and widths in unusual situations, and the new multi-column list fits better

- the manage subs dialog now saves its changes to db more cleanly and atomically

- updated the default derpibooru parser to pull species tags. ten points if you can guess what that is most of the time

next week

Next week is cleanup. I did some layout/sizing work this week, and it was nice to clear out some cobwebs, so I'll keep pushing on that. I'd like to bring back system predicate defaults as well, with a cleaner system.

____________________________
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.

511646 No.14577

Thanks dev!

Could you expand on what 'virtual parents' means?

Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.

d72ea8 No.14581

Thanks as always, hydrus_dev

So, I've been thinking about the Local Booru lately, and I'm not sure if this idea has been discussed before. It's something I'm calling a "published page".

The gist of it is that the Local Booru would map a URL suffix (ex: /foo/) to a page of your choice in the Client (right-click > publish page to Booru), and then when the Booru service gets a request for that URL (ex: myhydrusbooru.moe/foo/), it displays in the browser whatever happens to be on that page at the time. If the contents of the page change, then the next browser refresh would reflect those changes.

You could easily make a query you just searched for available to see online, and you could also share pages that you personally curate by dragging images into them or sorting them, etc. The other functionality such as access keys and share expiry wouldn't have to change either.

Anyway, I know there's a lot on the table right now in terms of other tasks, but I figured I'd just see what people think.

Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.

737633 No.14582

>>14577

At the moment, if you add 'series:metroid' to 'character:samus aran', then anything with samus will actually get the tag metroid added. This applies retroactively to existing files.

The problem with this is when some lad adds a bad sibling/parent/whatever that adds 'shadow the hedgehog' to every file with 'shadow'. Then that damn hedgehog appears all over the place, and undoing the operation is tricky. Same deal if they have some private, local tag parents that leak over onto the PTR or similar.

So, with virtual parents, the actual tag tables will not store 'metroid'. There will be a second, mirrored table that applies metroid to all the samus stuff, but it will be a 'virtual' tag, implied by the parent relationship but not actually on the tag service when you open up manage tags. It'll have some entry, a bit like how siblings say 'samus_aran (will display as character:samus aran)', just so you know it will show, but it won't be hard-baked.

Then, if the relationship is bad, or needs to be remapped or whatever, then the virtual tag table can be recalculated and the base tag store is not affected. Parents become nicely undoable.

This 'presentation' tag cache will be useful for pre-computing siblings as well (which are currently mostly virtual, but computed expensively on the fly), and some other things like tag filtering so I can hide all the 'title' tags if you want without spending CPU on it for every request. I can also search that pre-computed table efficiently, and reduce/eliminate the inaccurate (5-9) tag counts you sometimes see. It'll also allow cheap namespace-to-namespace siblings, so you can rename creator to artist or whatever.

Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.

737633 No.14583

>>14581

That's an interesting thought. I enjoyed working on the local booru, but I never had time to make it nice. I don't think I'll work properly on it again, instead focusing on the client api so others can do it better.

I actually think what you would like here is sort of doable with the client api right now. That can query the current session, and all the files in each page. If you wanted to map it to a nice URL structure, you'd have to host your own web server that talked to the client api, and it would obviously be a bunch of work to implement this all, but doable.

The lads who are working on different front-end browsers for the client api are coming along, by the way. I expect to announce at least one in the next 4-8 weeks. Should be an Android APK or something, let's you search by tags and view thumbs/files and everything.

I expect to keep working on the client api every now and then to keep adding tools.

Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.

a8cee0 No.14591

Thank you based dev

Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.

737633 No.14595

I had a good week. Along with some simpler code cleanup, I fixed some bugs, added some quality of life, and made it easy to detect and remove duplicate subscription queries, even across different subscriptions.

The release should be as normal tomorrow.

Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.

f012c7 No.14598

>>14583

I look forward to seeing what the community can do with the client API! The idea of an Android browser sounds great, and I already get a lot of use out of Hydrus Companion.

I think Flask could get pretty close to what I was thinking, since custom URL's can be added to specific app functions.

I'm a beginner when it comes to this stuff, but I think it could be fun to play with the API, especially if there are a few code samples floating around that I could learn from as well.

Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.



[Return][Go to top][Catalog][Nerve Center][Random][Post a Reply]
Delete Post [ ]
[]
[ / / / / / / / / / / / / / ] [ dir / random / 93 / biohzrd / hkacade / hkpnd / tct / utd / uy / yebalnia ]