Topic: Auto-exclusion list?

Posted under Off Topic

Okay, first off, I'm not sure where else to put this...I almost put it in "Site Bug Reports & Feature Requests," but it didn't quite feel like the right place. Firstly, I'm not requesting anything, just suggesting it/asking if it would even be possible/expressing curiosity about it. Secondly, the template thing seems too...strict and formal for the sort of topic I had in mind for this. If site staff think this should really be put into format and posted in that category, feel free to let me know...though I'd appreciate it if you shoot me some mail or something, if you delete it, so I don't come looking for replies and get confused why the topic's gone. ^_^;

Anyway! So, I know that the blacklist kinda-sorta already adds functionality along the lines of what I'm suggesting here, but what about for people who just don't want to have anything to do with specific tags? Want them to not even show up in search results, hidden or otherwise, but would rather not go through the tedium of adding a "-[insert tag here]" bit on every single search they do? My idea would be some sort of list where you can add tags, and as long as those tags are on that list, the site's image search function will act as if images that include it don't even exist.

tl;dr: Would it be possible to implement a list where-for example-I could put "scat, vore, gore, death, hyper, inflation" and the site automatically acts as if I added "-scat -vore -gore -death -hyper -inflation" to the parameters of every search I do?

Updated by user 22273

That is what the blacklist already does, so why is the blacklist itself not good enough for your purpose?

Updated by anonymous

Use a line break after each term.

scat
vore
gore
inflation
death
hyper

It won't work if they are on the same line.

Updated by anonymous

No, because when you put a tag on your blacklist, pictures with it still show up in your search results, just hidden. I'm talking something where the pictures with those tags don't even appear as a hidden result. Yes, I am aware that putting those tags in your search query, but with a - in front of them already does that, but what I'm suggesting would be a list so you don't have to bother adding a -[tag] for every single thing you don't want showing up at all, every single time you want to do a search.

Updated by anonymous

That, or changing the blacklist feature so that shit you tag in it doesn't even appear as a hidden result...Seriously, I never understood why that was a thing...

Updated by anonymous

Jacob said:
No, because when you put a tag on your blacklist, pictures with it still show up in your search results, just hidden. I'm talking something where the pictures with those tags don't even appear as a hidden result. Yes, I am aware that putting those tags in your search query, but with a - in front of them already does that, but what I'm suggesting would be a list so you don't have to bother adding a -[tag] for every single thing you don't want showing up at all, every single time you want to do a search.

Try posting custom search links on your user profile. \-tag1 -tag2, etc. 6 tags max.

Updated by anonymous

You could boost posts per page to up to 320 on your settings page. That way even if many posts are blacklisted you still have a lot per page.

Updated by anonymous

This was the original implementation long ago if I recall correctly, but was moved to client side because of the amount of computation time it took on the database query.

If I searched "apple" when this was the way it did, Look at this:

SELECT * FROM posts WHERE tag = "apple" and tag != "adventure_time" and tag != "advertisement" and tag != "alvin_and_the_chipmunks" and tag != "american_dad" and tag != "american_dragon:_jake_long" and tag != "angry_beavers" and tag != "animal_crossing" and tag != "animal_humanoid" and tag != "animaniacs" and tag != "arthur_(series)" and tag != "barboskiny" and tag != "bear_nuts" and tag != "bee_sting" and tag != "big_anus" and tag != "billmund" and tag != "blowhole" and tag != "brandy_and_mr._whiskers" and tag != "burping" and tag != "chowder_(series)" and tag != "dangerdoberman" and tag != "diaper" and tag != "disney" and tag != "distracting_watermark" and tag != "dora_the_explorer" and tag != "doug_winger" and tag != "dragon_ball_z" and tag != "dragon_tales" and tag != "dreamworks" and tag != "duck solo" and tag != "elephant" and tag != "elf" and tag != "faf" and tag != "family_guy" and tag != "fart" and tag != "five_nights_at_freddy's" and tag != "foot_fetish" and tag != "foot_focus" and tag != "græyclaw" and tag != "homestuck" and tag != "how_to_train_your_dragon" and tag != "human -anthro" and tag != "human not_furry" and tag != "human solo" and tag != "humanoid" and tag != "hyper" and tag != "infestation" and tag != "invader_zim" and tag != "jasonafex type:swf" and tag != "jonny_test" and tag != "kung_fu_panda" and tag != "lilo_and_stitch" and tag != "littlest_pet_shop" and tag != "living_machine" and tag != "madagascar" and tag != "mario_bros" and tag != "mickey" and tag != "minecraft" and tag != "muppets" and tag != "my_life_as_a_teenage_robot" and tag != "my_little_pony" and tag != "nazi" and tag != "nedroid" and tag != "nezumi" and tag != "nipple_mouth" and tag != "not_furry" and tag != "old -rating:s" and tag != "overweight" and tag != "photomorph" and tag != "platypus" and tag != "pokémon -arcanine -growlithe -decidueye -rockruff -lycanroc -poochyena -mightyena -furret" and tag != "pussy_mouth" and tag != "regular_show" and tag != "rocko's_modern_life" and tag != "santa_claus" and tag != "scaredy_squirrel" and tag != "scat" and tag != "scooby-doo_(series)" and tag != "sing_(movie)" and tag != "skeleton -rating:s" and tag != "skunk_fu" and tag != "skunk_spray" and tag != "sonic_(series)" and tag != "sonic_style" and tag != "sonicdash" and tag != "source_filmmaker" and tag != "spanking" and tag != "splatoon" and tag != "spongebob_squarepants" and tag != "spongebob_squarepants_(series)" and tag != "star_fox macro" and tag != "star_fox micro" and tag != "star_wars" and tag != "steven_universe" and tag != "super_planet_dolan" and tag != "switch_dog" and tag != "t.u.f.f._puppy" and tag != "the_amazing_world_of_gumball" and tag != "the_smurfs" and tag != "them's_fightin'_herds" and tag != "troll" and tag != "turtle" and tag != "undertale rating:e -caprine -canine" and tag != "undertale rating:q -caprine -canine" and tag != "virgin_killer_sweater" and tag != "warner_brothers" and tag != "we_bare_bears" and tag != "yin_yang_yo" LIMIT 0,50

(FAKE NEWS SQL STATEMENT, rough estimation of how it would look)
Thats just a big old nasty query that would take a good 0.5 to 1 second to fulfill. It's the equivalent to a nasty patty for a developer.
Back in the day when e621 wasn't as popular and didn't serve a max of 350 results per page, it might not have been a problem. But e621 sees hundreds of thousands of requests a day, doing these queries on stuff the search results is one thing, but we also have avatars and other stuff to worry about now as well. It would simply make the site so slow we'd essentially be running dial-up emulator for the modern web.

The reason it takes a few seconds to be hidden is because the way it is currently processed:
1. Client receives elements containing posts
2. Client renders posts
3. Client receives javascript containing a list of posts and what tags they have
4. Client processes each element in list and applies display:none to them.

I want to see if maybe one day I can rewrite it so that the flow is constructed as
1. Javascript containing blacklist is loaded
2. document hook for element addition is added and checks for thumbnail/post additions through mutation observers
3. Apply blacklisted to them as they arrive to the client, resulting in no visibility of them unless you unhide them via "Toggle Blacklist"

OR

1. Javascript containing posts and blacklist is loaded
2. Javascript pumps out every element instead of relying on the server for it
3. While pumping them out, check if it contains a blacklisted post, if so, apply display:hidden

I'll need Nimmy's and Kira's permission first though, and a problem here is compatibility, we don't want browsers which are still in heavy use but the developers for said browsers are dumb and don't like to follow standards/prioritize non-standards over standards(I'm looking at you micro$oft).
Then there is the fact that I like to use vanilla javascript which may not fit in with the current code design.

Don't get me wrong, I fully understand what you mean, I don't like seeing some posts when browsing the site and they flash on screen for a brief second. It is a bit more frustrating over a tablet though because it sometimes takes more than a second. But in the end, it's just a thumbnail, it's hard to make out what it is and it'll be gone in a few seconds as if it were never even there in the first place.

Updated by anonymous

Jacob said:
That, or changing the blacklist feature so that shit you tag in it doesn't even appear as a hidden result...Seriously, I never understood why that was a thing...

The way the site runs queries for posts makes each additional term in the search increasingly expensive to process. The site compromises for this by doing the sorting step client-side in your browser. Making it do the blacklist server-side (without making the site slow to a crawl) would require an overhaul of the blacklist code.

Edit: See Chaser's post above for a more technical answer.

Updated by anonymous

Jacob said:
That, or changing the blacklist feature so that shit you tag in it doesn't even appear as a hidden result...Seriously, I never understood why that was a thing...

absolutely no. i do quite a bit of tagging and sometimes this requires going trough large batch of art and roughly half of the content on this site falls under my blacklisted items. do you understand how difficult this would make my work

Updated by anonymous

  • 1