Topic: Search Result Slideshow Script

Posted under e621 Tools and Applications

http://pastebin.com/H9EeYgcn

I'm not sure I'd call this one finished but it's quite usable now. The purpose of this script is to provide a way to quickly filter images using voting. It is tested only in Google Chrome. If you're using another browser, I'm not sure if it will behave.

If you make a bookmarklet out of the included minified script (at the bottom of the pastebin entry) and click it while viewing search results, it will first downvote all blacklisted images returned. This makes using -voted:username tag and refreshing the first page after voting properly load in fresh, visible results. Blacklisted images currently displayed manually should not be affected. During this step, it also pre-loads all of the preview size versions of the images on the page.

Next, the images will display in a keyboard-controlled lightbox style slideshow. The controls are simple: upvote, downvote, previous and next. You can use arrow keys, ijkl, or wasd, or even = and - for upvote and downvote respectively according to your preferences. Voting will advance to the next image. Enter or space will open the current image in a new tab (and advance the slideshow), which is required to view flash animations. Each time the slideshow advances, it will automatically scroll to the currently viewed image on the search results page. Pressing any unbound key will close the slideshow, and it will automatically close once the end of the results have been reached.

Pros: quick voting! My hope is that using tools like this, image scores will become a more reliable indicator of how many people like or dislike an image rather than how many people had very strong feelings one way or another.

Cons: Stripping e621 down to upvote/downvote removes the user from viewing the tag list. This method does provide a quick way to open the post for editing, but it's not very useful for frequent tag edits.

I welcome comments, as well as additions to the provided script if any code-savvy users have input. I've not gotten around to it yet, but adding in a favorite option bound to 0, F and H is next on my list of ideas.

Updated by abadbird

Or for quick voting, earn a privileged account, then you can do it at the thumbnail page.

Updated by anonymous

Halite said:
Or for quick voting, earn a privileged account, then you can do it at the thumbnail page.

Thumbnails are often too small to see clearly enough to make such decisions.

Updated by anonymous

But much quicker.

And really, it depends on how you're making your decisions.

Updated by anonymous

Halite said:
But much quicker.

And really, it depends on how you're making your decisions.

Thumbnail voting is much quicker than opening each post to look at it. The purpose of this script is to provide a full preview of the image without having to wait for each image's page to load, hence the speed of thumbnail voting without the inconvenience.

Updated by anonymous

Orion_R said:
...it will first downvote all blacklisted images returned. This makes using -voted:username tag and refreshing the first page after voting properly load in fresh, visible results.

I don't think that's how voting was intended to work, but I wouldn't, in fairness, call that abuse either. What about those people who shotgun large parts of the site with their blacklist, like the cub or gay tags? Your filtering method could be viewed as prejudicial. Keep in mind that there's rules precedence against targeting specific users with downvotes. As I understood that, it was mostly meant for downvoting comments, but downvoting all of an artist's work seems roughly equivalent to me. What's more, it's also possible to blacklist all uploads from specific users, and automatically downvoting that really does seem prejudicial.

Maybe give an option to revert automatic votes when the session with e621 ends? You can store the affected posts' IDs locally, restore them as the session ends, and then apply the filter again when a new session starts. Or perhaps add a toggle somewhere to prevent users who did not want to browse posts from taxing the server unnecessarily. It's more clunky and demanding, but at least it retains the user's downvote integrity. Also, I think you should make an exception to automatically downvoting artists and specific user uploads, as I mentioned above.

Edit: Also, consider situations where posts are blacklisted for reasons other than the user disliking the content. For instance, I blacklisted two specific posts with many contributing artists because they kept appearing when I sorted various artists and tags by score. I thought the posts were fine, but I just didn't want to see them anymore.

I can understand wanting to filter many more images to expedite the user's viewing experience, but this doesn't seem like the best way. If only blacklisted images could be filtered entirely from pages, if e621 had that option in user settings... but I'm certain it's been brought up many times before. The need is there, anyhow.

Updated by anonymous

abadbird said:
I don't think that's how voting was intended to work, but I wouldn't, in fairness, call that abuse either. What about those people who shotgun large parts of the site with their blacklist, like the cub or gay tags? Your filtering method could be viewed as prejudicial. Keep in mind that there's rules precedence against targeting specific users with downvotes. As I understood that, it was mostly meant for downvoting comments, but downvoting all of an artist's work seems roughly equivalent to me. What's more, it's also possible to blacklist all uploads from specific users, and automatically downvoting that really does seem prejudicial.

Maybe give an option to revert automatic votes when the session with e621 ends? You can store the affected posts' IDs locally, restore them as the session ends, and then apply the filter again when a new session starts. Or perhaps add a toggle somewhere to prevent users who did not want to browse posts from taxing the server unnecessarily. It's more clunky and demanding, but at least it retains the user's downvote integrity. Also, I think you should make an exception to automatically downvoting artists and specific user uploads, as I mentioned above.

Edit: Also, consider situations where posts are blacklisted for reasons other than the user disliking the content. For instance, I blacklisted two specific posts with many contributing artists because they kept appearing when I sorted various artists and tags by score. I thought the posts were fine, but I just didn't want to see them anymore.

I can understand wanting to filter many more images to expedite the user's viewing experience, but this doesn't seem like the best way. If only blacklisted images could be filtered entirely from pages, if e621 had that option in user settings... but I'm certain it's been brought up many times before. The need is there, anyhow.

I certainly agree that downvoting all blacklisted images is not the best solution in many ways, however it doesn't seem unfair to me for one person who dislikes a specific subject that's easily tagged to downvote everything that has that tag on it. The problem with this script and the search results is that once you have voted on enough images you will end up with an entire page or pages filled with only blacklisted images that you cannot see. The only way to filter them out is by tagging them in some way that's unique to you and is handled server-side... like voting. To work around the limitations of e621's current version in the manner you suggested by storing blacklisted post id's locally, the script would still need to downvote the images and then at the end of a session every one of those images would need to have the vote removed.

Every vote is a new request sent to the server. I'm trying to limit the number of requests as much as is practical with what the API exposes to users.

For my purposes, voting something down isn't a way to say I have any strong negative feeling toward that post. It's a way of marking a post to know later that I saw it and decided that I didn't want to see it again at a later time. It's simply impractical to blacklist images for trivial reasons because of the way blacklist is implemented, and I also think it's fair to have that preference reflected in a post's score.

There have been a number of forum topics addressing when to upvote and when to downvote. What I'm working towards with this script given the current feature set of e621 is voting on every image that I see. I feel that a positive score for an image is not valuable enough with the current state of things. There are many posts that I'm pretty sure the vast majority of users would downvote if given the option that still enjoy a positive score because most users either blacklist them and never see them, close their window the moment they notice what it is or simply neglect to vote.

I can certainly see some niche fetish material finding its way to the bottom of the score pile very quickly if everyone used the site the way this script allows you to. However, I don't see why a negative score for that sort of thing is such a problem. If everyone does their part, the 'good' images of one's favorite unpopular or controversial fetish will still have a higher score than the 'bad' images that might not be as well drawn or what have you. Order:score will still work just fine when searching for your favorite tag. The only difference is whether that score number is green or red.

What I'd really like to see is more options for the Order metatag. Order:upvotes, Order:downvotes and so on. We already have Order:favcount however to make sure that you get a more accurate picture of how popular an image is among people that like the subject material.

Of course, all this is from my own personal opinion and wish for an even easier way to sort through the massive number of posts that e621 houses. The best thing that could happen to the script, in my opinion, is if programmers that maintain the site see it and can make some official use out of it even if it's not what I originally coded it for. It's to that end that I included the original code before compiling it, because code or ideas are probably the best ways I can personally make a contribution while my artistic skills continue to gather dust.

Updated by anonymous

Your decision to downvote spam things blacklisted is a shitty one, in my opinion. Just because someone doesn't like a topic doesn't mean the art is bad.

Updated by anonymous

Yeah I'm not sure I'm very keen on the ability to mass-downvote all blacklisted results. At the very least I'd prefer that you see everything you're downvoting instead of it downvoting maybe 40+ images that aren't even visible to you.

Updated by anonymous

123easy said:
Your decision to downvote spam things blacklisted is a shitty one, in my opinion. Just because someone doesn't like a topic doesn't mean the art is bad.

If an artist with undeniable technical skill creates a beautifully drawn work of art that happens to depict subject matter that ruins any aesthetic pleasure a particular person could derive from looking at it, is that person suddenly not entitled to their own opinion about said art?

Updated by anonymous

tony311 said:
Yeah I'm not sure I'm very keen on the ability to mass-downvote all blacklisted results. At the very least I'd prefer that you see everything you're downvoting instead of it downvoting maybe 40+ images that aren't even visible to you.

If the blacklist were implemented server-side, everyone could have their own sterilized corner of e621 to play with. Unfortunately it's client-side, and users even still see blacklisted content sometimes before the posts are hidden. So long as it remains client-side, it's impractical to filter images within a search by vote without voting on every one of them. If you don't vote on the blacklisted images, e621 produces countless pages of invisible results to your search.

So the practical choice here without changing server code is vote up, or vote down. I figured down was most appropriate for blacklisted content. I don't think that a downvote on a post is something to be taken personally and I feel that red numbers are seen by some as insulting or even some sort of attack.

It's just harmless opinion. That said, I posted the script here hoping for better ideas or results from the ideas that I had. I'd welcome an effective alternative.

Updated by anonymous

Orion_R said:
If an artist with undeniable technical skill creates a beautifully drawn work of art that happens to depict subject matter that ruins any aesthetic pleasure a particular person could derive from looking at it, is that person suddenly not entitled to their own opinion about said art?

It's not that, it's just massively downvoting art based on the subject matter is not what voting is intended for and makes the system not very helpful. Voting is intended to be how you feel about each image presented, and not an entire subject at once.

Updated by anonymous

Rainbow_Dash said:
It's not that, it's just massively downvoting art based on the subject matter is not what voting is intended for and makes the system not very helpful. Voting is intended to be how you feel about each image presented, and not an entire subject at once.

To be fair, people do already do this, I think the bigger objection is to having a tool that makes it really easy.

Updated by anonymous

Rainbow_Dash said:
It's not that, it's just massively downvoting art based on the subject matter is not what voting is intended for and makes the system not very helpful. Voting is intended to be how you feel about each image presented, and not an entire subject at once.

That sounds reasonable. It's just a bit difficult to determine where the line should be drawn. It may seem a bit over-reaching to run this script on the main post listing with no searched tags and without using the temporary show feature for blacklisted items. I got the motivation for writing the script from picking through fairly narrow search results.

There are some specific sets of tags that would turn up long lists of posts, however, that I am quite sure I would wish to downvote if I looked at them. So where's the line drawn? If someone can honestly say that if a post contains a certain act it is ruined for them regardless of art quality, is it not fair for them to apply their one vote toward each image that depicts that act? Voting down everything that carries a tag specifying orientation (straight, gay, bisexual, etc) is probably an act that would be seen as discrimination. What about voting down everything that depicts a spider because they don't like looking at "NOPEs"? Is that an act of discrimination against spiders? What about spiders banging other spiders? How about downvoting all spiders banging in the missionary position?

Trying to restrict how one votes by how broad their scope can be seems like an overly complicated matter. It just seems plain easier if not proper to give everyone their one, single vote on every image, regardless of how they choose to cast it--because it's their opinion.

If one person downvoted every single post on e621, it would not change any post's score relative to another even though it would totally go against the idea of what a vote is supposed to be. In that scenario, is any damage dealt?

Edit: this has gotten fairly well off-topic from the script and on to the ethical use of votes... which is interesting, but unintended. For those who don't wish to downvote blacklist items, the modification required to the script is minor. I'm more interested in the keyboard slideshow idea for viewing images compared to the current e621 gallery.

Updated by anonymous

Halite said:
To be fair, people do already do this, I think the bigger objection is to having a tool that makes it really easy.

People don't downvote things hundreds at a time without ever having seen any of them, that is the difference

Orion_R said:
That sounds reasonable. It's just a bit difficult to determine where the line should be drawn. It may seem a bit over-reaching to run this script on the main post listing with no searched tags and without using the temporary show feature for blacklisted items. I got the motivation for writing the script from picking through fairly narrow search results.

There are some specific sets of tags that would turn up long lists of posts, however, that I am quite sure I would wish to downvote if I looked at them. So where's the line drawn? If someone can honestly say that if a post contains a certain act it is ruined for them regardless of art quality, is it not fair for them to apply their one vote toward each image that depicts that act? Voting down everything that carries a tag specifying orientation (straight, gay, bisexual, etc) is probably an act that would be seen as discrimination. What about voting down everything that depicts a spider because they don't like looking at "NOPEs"? Is that an act of discrimination against spiders? What about spiders banging other spiders? How about downvoting all spiders banging in the missionary position?

Trying to restrict how one votes by how broad their scope can be seems like an overly complicated matter. It just seems plain easier if not proper to give everyone their one, single vote on every image, regardless of how they choose to cast it--because it's their opinion.

If one person downvoted every single post on e621, it would not change any post's score relative to another even though it would totally go against the idea of what a vote is supposed to be. In that scenario, is any damage dealt?

Edit: this has gotten fairly well off-topic from the script and on to the ethical use of votes... which is interesting, but unintended. For those who don't wish to downvote blacklist items, the modification required to the script is minor. I'm more interested in the keyboard slideshow idea for viewing images compared to the current e621 gallery.

The line is drawn in a script automatically downvoting hundreds of posts at a time. It really falls more towards your blacklist at this point. Don't want to ever see spiders? Blacklist them instead of mass downvoting them as that just makes it hard for people who do like spiders to sort by score. This is especially true for subjective content that most don't like, such as scat and watersports. Right now the voting system is useless for those posts, but this would make the voting system even less effective on other types of posts as well, and that is where I don't like the idea of the script applying votes to posts, especially if you haven't even seen them yet.

If one person downvoted every post on the site, that would have only served to make every post a default -1 and what would have been the point in doing that?

I really don't like the idea of entire tag groups being mass downvoted. You can vote as you please but at least view the image first and don't just lower entire tags. It's bordering vote abuse if you use a script to exploit the system and lower the score of hundreds of posts you have and never will see.

Updated by anonymous

Rainbow_Dash said:
People don't downvote things hundreds at a time without ever having seen any of them, that is the difference
The line is drawn in a script automatically downvoting hundreds of posts at a time. It really falls more towards your blacklist at this point. Don't want to ever see spiders? Blacklist them instead of mass downvoting them as that just makes it hard for people who do like spiders to sort by score. This is especially true for subjective content that most don't like, such as scat and watersports. Right now the voting system is useless for those posts, but this would make the voting system even less effective on other types of posts as well, and that is where I don't like the idea of the script applying votes to posts, especially if you haven't even seen them yet.

If one person downvoted every post on the site, that would have only served to make every post a default -1 and what would have been the point in doing that?

I really don't like the idea of entire tag groups being mass downvoted. You can vote as you please but at least view the image first and don't just lower entire tags. It's bordering vote abuse if you use a script to exploit the system and lower the score of hundreds of posts you have and never will see.

If someone downvoted everything tagged "scat", would that change the score sort order for someone searching for posts tagged "scat"?

Since nothing changes for people actively looking for those tags, what is the problem?

Updated by anonymous

Orion_R said:
If someone downvoted everything tagged "scat", would that change the score sort order for someone searching for posts tagged "scat"?

Since nothing changes for people actively looking for those tags, what is the problem?

It's rude.

Updated by anonymous

more than just rude, it screws up the system. So say someone searches "~scat ~watersports dickgirl solo rating:score". It'll bring up all images of dickgirls that are solo, and that have scat, watersports, or both tagged, in order of their rating (many people do this to see the best artwork of their search catagories as voted by the people). if watersports is a liked tag and isn't downvoted much, but scat is because of your script, instead of just being blacklisted, then all the material that has scat init is artificially reduced in score and this actually messes up with the scoring system.

Not only that, but it becomes insanely easy for some whackjob to sign up with multiple accounts, with your script installed, and just troll the site with downvoting tons of otherwise highly liked tags (though that's easier to fix if it's obvious vandalism, not so much if they do it a bit smartly).

Updated by anonymous

123easy said:
more than just rude, it screws up the system. So say someone searches "~scat ~watersports dickgirl solo rating:score". It'll bring up all images of dickgirls that are solo, and that have scat, watersports, or both tagged, in order of their rating (many people do this to see the best artwork of their search catagories as voted by the people). if watersports is a liked tag and isn't downvoted much, but scat is because of your script, instead of just being blacklisted, then all the material that has scat init is artificially reduced in score and this actually messes up with the scoring system.

Not only that, but it becomes insanely easy for some whackjob to sign up with multiple accounts, with your script installed, and just troll the site with downvoting tons of otherwise highly liked tags (though that's easier to fix if it's obvious vandalism, not so much if they do it a bit smartly).

I don't think the low score would be artificial. On the contrary, if a certain tag is full of images that are disliked, it seems reasonable to expect those images to have a low score regardless of the method used to vote. If someone doesn't like scat, they should get to downvote every image with scat in it because that is their opinion of those images and they should be entitled to it. Do you think that someone with an aversion to scat should be forced to confirm for each and every image that contains it, that they don't like it? Wouldn't it be fair for them to assume that if they saw any image with scat with their own eyes, they would vote down?

There are certain tags that I'm pretty sure a person is well within their rights and proper sanity to downvote as much as they like if that's what suits them. Votes and the resulting score for each image are a popularity contest and nothing more. Unpopular tags should be exactly that--unpopular--and the only way downvoting could be considered rude is if it's taken as some kind of personal slight rather than frank opinion.

Order:score then will actually work properly, as intended, with better more accurate scores that reflect the popularity of each image. Order:favcount is the tool you're looking for, for people who search "~scat ~watersports dickgirl solo". Since some of those tags are naturally going to be lower score than others, favcount allows you to see popularity only among people that like the images rather than introducing the number of people that don't like it to the statistic. That said, I'd prefer an Order:upvotes available.

I can't really comment on 'whackjobs' misusing the script. It doesn't provide any capability as-is for casting votes across multiple accounts, or more than one vote in any way.

As for me, I'm not trying to be rude or screw the system. I just like slideshows and voting, so I made something that slideshows and votes! I was hoping more for a "Oh hey, that's neat" response but I guess that was wishful thinking.

Updated by anonymous

If someone has an aversion to scat they shouldn't be fucking scrolling through the images in the first place. That's what the blacklist is FOR. Votes are there for those who actually view the god damned images in the first place. This applies to EVERYTHING, not just a relatively controversial tag like scat. Stop trying to play up your mass downvoting system.

Updated by anonymous

123easy said:
If someone has an aversion to scat they shouldn't be fucking scrolling through the images in the first place. That's what the blacklist is FOR. Votes are there for those who actually view the god damned images in the first place. This applies to EVERYTHING, not just a relatively controversial tag like scat. Stop trying to play up your mass downvoting system.

Please be civil.

We agree on one thing for sure--if someone has an aversion to scat they shouldn't be scrolling through the images that contain them.

As I understand it, the difference in our perspectives is that I believe everyone's opinion on an image is valid if they know what it contains is disagreeable, while you believe that a person can't have an opinion about an image until they have seen it with their own eyes. I don't think either of us has the "right" answer there. I don't think there is a "right" answer, and it's likely not a wise idea to argue any kind of moral standpoint in a place like this.

I simply believe that the easiest, most straightforward answer (not the right one) is to let everyone have their right to one, single vote on every image however they wish to cast it, be it by sight or by tag or completely arbitrary nonsense. Ultimately, the scores would reflect the majority opinion which is what they were designed to do.

And once more, I did not create this script with the goal of providing automated downvotes. I created this script with the goal of providing a slideshow mechanism for voting manually. The need for blacklist downvoting within the context of this thread is a result of e621 handling blacklist on the client side and returning invisible search results. Invisible search results are not helpful to anyone with or without this script, they just become blatantly obvious once you have voted on everything not blacklisted in your search page. While I would probably enjoy dabbling with the server side of things to fix that, that's not something I am currently allowed to my knowledge.

Updated by anonymous

No, I don't care if you have an opinion on an image- but until you actually experience the image you don't get a say in the vote on it. If you view it and you find that even though it contains some topic you dislike it's good, vote it up. if it's still bad/disagreeable after you've looked at it, vote it down.

Voting without even seeing the image in question and evaluating its flaws and perks is like saying a sandwich sucks because it has swiss cheese, without even tasting it to see if maybe the flavour of the sandwich actually works with the swiss when normally you don't like it. Many, many different similar examples abound.

Updated by anonymous

Orion_R said:
I can't really comment on 'whackjobs' misusing the script. It doesn't provide any capability as-is for casting votes across multiple accounts, or more than one vote in any way.

e6 does'nt provide a mean to do stuff on multiple accounts. What 123Easy means is that this "whackjob", having your script at hand might downvote a specific set of tags or target a specific user's uploads, resulting in abuse of tools and/or spamming or user harassment, respectively. Gets banned on that account, makes another and the story repeats.

Only thing is that you can vote only once.

As for me, I'm not trying to be rude or screw the system. I just like slideshows and voting, so I made something that slideshows and votes! I was hoping more for a "Oh hey, that's neat" response but I guess that was wishful thinking.

Look at the big picture your script does:

  • On the inside is really helpful, shows you the posts in a "fullscreen" view (F11 for complete fullscreen), lifts the ones you like and pushes down the ones you don't, it has easy navigation and the like and is useful for the user.

Now the outside: The script votes for you, both positively and negatively. When it loads the images (to reduce bandwidth usage, read "Post.posts.entries()[index][0/1]", 0 is the post as returned by the api and 1 the post id) the script downvotes every blacklisted post, and thus, affecting the system, as many have said, pushing down posts that others might like (some search for order:score_asc like saying "it's so bad is good") because some have blacklisted, say "female".

As you see, your script has good features but the blacklist everything before seeing it is the only thing that most don't like, because it's automating a process. Sure scripts and extensions are encouraged (I myself have one, Munkelzahn uses it a lot) but using them to massively post or edit is something people question. It's good overall but it has that small con.

Updated by anonymous

123easy said:
No, I don't care if you have an opinion on an image- but until you actually experience the image you don't get a say in the vote on it. If you view it and you find that even though it contains some topic you dislike it's good, vote it up. if it's still bad/disagreeable after you've looked at it, vote it down.

Voting without even seeing the image in question and evaluating its flaws and perks is like saying a sandwich sucks because it has swiss cheese, without even tasting it to see if maybe the flavour of the sandwich actually works with the swiss when normally you don't like it. Many, many different similar examples abound.

Yes, I get what you're saying there. Some people might be inclined to downvote everything with the gay tag, as a very broad and easy to see example. But... then along comes the one image that even though your orientation is something else, that one image happens to be really well done and you like it anyway. And that's perfectly valid, and foolish to go downvoting everything that a person doesn't always prefer but can still tolerate. The takeaway from this for me is that blacklisting should not be taken lightly, not that downvoting certain things without looking is the problem and I'll explain why.

Let's take your swiss cheese though and substitute something more disagreeable. Let's take a dose of hot sauce that only the most extreme of spicy food gourmets can even begin to tolerate, let alone appreciate. Is it still fair to ask someone to suffer through eating that sandwich before they're allowed to say that they don't like it?

Updated by anonymous

Xch3l said:
e6 does'nt provide a mean to do stuff on multiple accounts. What 123Easy means is that this "whackjob", having your script at hand might downvote a specific set of tags or target a specific user's uploads, resulting in abuse of tools and/or spamming or user harassment, respectively.

Look at the big picture your script does:

  • On the inside is really helpful, shows you the posts in a "fullscreen" view (F11 for complete fullscreen), lifts the ones you like and pushes down the ones you don't, it has easy navigation and the like and is useful for the user.

Now the outside: The script votes for you, both positively and negatively. When it loads the images (to reduce bandwidth usage, read "Post.posts.entries()[index][0/1]", 0 is the post as returned by the api and 1 the post id) the script downvotes every blacklisted post, and thus, affecting the system, as many have said, pushing down posts that others might like (some search for order:score_asc like saying "it's so bad is good") because some have blacklisted, say "female".

As you see, your script has good features but the blacklist everything before seeing it is the only thing that most don't like, because it's automating a process. Sure scripts and extensions are encouraged (I myself have one, Munkelzahn uses it a lot) but using them to massively post or edit is something people question. It's good overall but it has that small con.

Thank you for your feedback and that tip about the site's code. I didn't realize anything beyond the most basic info was loaded during the search and I was fetching from the API. I'll have to look in to that.

As to the note on multiple accounts, 123easy raised the multiple accounts issue explicitly, which was the only reason I mentioned it.

Is there some way that you know of to work around the problem where a search returns only blacklisted results and full pages of invisible posts?

Edit: I should provide a scenario to illustrate the problem I'm looking for a workaround for...

Let's say I want to vote on every image of a tiger, because I generally like tigers and want to pick out the good artwork from the stuff that just didn't meet expectations. So, I would go search "tiger -voted:Orion_R" and it would return all tigers I have not yet voted on. I start voting (with or without script help) and get through the first page, then hit next page--oh but wait! My votes have changed my search results. If I now go to the next page, the query runs again and there's some images that make it on the first page from what was previously the second before I voted.

Alright, so the only option to go through and vote on all images systematically is to vote on the entire first page, then refresh that page to get more images to vote on. That's straightforward. But if you keep doing that, you'll notice that the number of posts dwindles until you have a search page with no visible images, because the whole page is full of things that you blacklisted. For me, that'd be images of tigers eating others (cannibalism, vore, etc), tigers involved in scat / watersports, and so on with the rest of my blacklist.

At this point, what do you do to make searching work properly again? It's easy enough once you've eliminated every visible image to move on to the next page of search results. However, it's extremely trying on my patience to refresh the first page over and over to vote on one image at a time before the whole thing is blacklist material and it's also more taxing on the server to constantly refresh the same blacklisted results.

The solution that I came up with to this problem is to downvote all blacklisted content on the current page of search results, thus making it disappear from the search for "-voted:Orion_R". I'd like to hear alternate solutions to the blacklist problem.

Updated by anonymous

Orion_R said:
Yes, I get what you're saying there. Some people might be inclined to downvote everything with the gay tag, as a very broad and easy to see example. But... then along comes the one image that even though your orientation is something else, that one image happens to be really well done and you like it anyway. And that's perfectly valid, and foolish to go downvoting everything that a person doesn't always prefer but can still tolerate. The takeaway from this for me is that blacklisting should not be taken lightly, not that downvoting certain things without looking is the problem[...]

Tell you what, you can remove the blacklisted posts from the listing, query more to fill the blanks and repeat until you have, say, 300 clean and blacklist-free posts on the page

Updated by anonymous

Orion_R said:
Yes, I get what you're saying there. Some people might be inclined to downvote everything with the gay tag, as a very broad and easy to see example. But... then along comes the one image that even though your orientation is something else, that one image happens to be really well done and you like it anyway. And that's perfectly valid, and foolish to go downvoting everything that a person doesn't always prefer but can still tolerate. The takeaway from this for me is that blacklisting should not be taken lightly, not that downvoting certain things without looking is the problem and I'll explain why.

Let's take your swiss cheese though and substitute something more disagreeable. Let's take a dose of hot sauce that only the most extreme of spicy food gourmets can even begin to tolerate, let alone appreciate. Is it still fair to ask someone to suffer through eating that sandwich before they're allowed to say that they don't like it?

They can express that they do not like spicy foods and abstain from trying it, but they cannot comment on the flavour itself properly without tasting it. "It tastes like flaming death!" you might say, since it's acclaimed by others to be the hottest of sauces, but it might just so happen to be a very unique supporting flavour beneath the heat that accentuates the particular choice of other toppings in the sandwich in a way that brings it all together in a way no other topping could. Sure, the hot sauce may not be for you, but that doesn't mean that you should say it tastes like shit when you don't know what it tastes like.

Xch3l said it more eloquently than I could on the automation aspect in a way that probably makes more sense to a coder, too.

Updated by anonymous

Xch3l said:
Tell you what, you can remove the blacklisted posts from the listing, query more to fill the blanks and repeat until you have, say, 300 clean and blacklist-free posts on the page

So what you're suggesting is fetching the rest of the pages of the search client-side until able to fill up some set number of posts that aren't blacklist material, effectively moving the responsibility of pagination to the client side rather than the server... virtually, anyway.

That seems like a whole lot of work. But, it also has the potential to allow seamless, page-less navigation of a search from the user's perspective. Sort of like how imgur will keep loading new images into the little scrolling list if you keep scrolling. Of course it will also mean that the page number of the search on the client side is irrelevant, but I'm not sure how much that matters.

Really, it'd make more sense if going that far to make an entirely different page rather than having a script tack on additional things to the e621 post page. I actually tried that with a similar idea in mind but ran into issues with e621's API not responding to requests from outside the e621 domain.

Hmm. I wonder if there's a limit to how long a Chrome bookmarklet script can be...

Updated by anonymous

123easy said:
They can express that they do not like spicy foods and abstain from trying it, but they cannot comment on the flavour itself properly without tasting it. "It tastes like flaming death!" you might say, since it's acclaimed by others to be the hottest of sauces, but it might just so happen to be a very unique supporting flavour beneath the heat that accentuates the particular choice of other toppings in the sandwich in a way that brings it all together in a way no other topping could. Sure, the hot sauce may not be for you, but that doesn't mean that you should say it tastes like shit when you don't know what it tastes like.

Xch3l said it more eloquently than I could on the automation aspect in a way that probably makes more sense to a coder, too.

A downvote says "this isn't for me", not "this is bad". That's my view on votes, anyway. The hot sauce wouldn't be for me, I'd downvote it no matter what it was put on in any quantity significant enough to live up to its legendary burn. I'm not saying someone else can't enjoy something that spicy just because I can't.

You make sense, I think we just have different perspective / ideals on votes and what they're supposed to mean.

Updated by anonymous

Orion_R said:
So what you're suggesting is fetching the rest of the pages of the search client-side until able to fill up some set number of posts that aren't blacklist material, effectively moving the responsibility of pagination to the client side rather than the server... virtually, anyway.

That seems like a whole lot of work. But, it also has the potential to allow seamless, page-less navigation of a search from the user's perspective. Sort of like how imgur will keep loading new images into the little scrolling list if you keep scrolling. Of course it will also mean that the page number of the search on the client side is irrelevant, but I'm not sure how much that matters.

Yup, pretty much like infinite scrolling. The set number was sort of an example. Depends on the user, some like it, some not.

Really, it'd make more sense if going that far to make an entirely different page rather than having a script tack on additional things to the e621 post page. I actually tried that with a similar idea in mind but ran into issues with e621's API not responding to requests from outside the e621 domain.

It was'nt the API, browsers don't let you to do cross-site requests for security reasons. If you want to do that, better make an extension. I've tried it too.

Hmm. I wonder if there's a limit to how long a Chrome bookmarklet script can be...

I think they're limited to 4096 characters but I'm not sure... Better install Tampermonkey and convert the script to an userscript.

Updated by anonymous

Xch3l said:
It was'nt the API, browsers don't let you to do cross-site requests for security reasons. If you want to do that, better make an extension. I've tried it too.

I believe there is a setting that can be set server-side that gets transmitted in the response header that lets a browser know that cross-site requests are okay. e621 just doesn't have that set, and I think it's not set by default for--as you said--security reasons.

An extension is, ultimately, the cleaner option--especially if I'm only testing on Chrome anyway. I got partway in to learning how to make one before it seemed like too much work before, and also looked at Tampermonkey. I'll have to look again.

Thanks for your responses. That's the sort of conversation I was looking for with this thread--share something, learn something.

Updated by anonymous

Orion_R said:
[snip]
Is there some way that you know of to work around the problem where a search returns only blacklisted results and full pages of invisible posts?

Edit: I should provide a scenario to illustrate the problem I'm looking for a workaround for...

Let's say I want to vote on every image of a tiger, because I generally like tigers and want to pick out the good artwork from the stuff that just didn't meet expectations. So, I would go search "tiger -voted:Orion_R" and it would return all tigers I have not yet voted on. I start voting (with or without script help) and get through the first page, then hit next page--oh but wait! My votes have changed my search results. If I now go to the next page, the query runs again and there's some images that make it on the first page from what was previously the second before I voted.

Alright, so the only option to go through and vote on all images systematically is to vote on the entire first page, then refresh that page to get more images to vote on. That's straightforward. But if you keep doing that, you'll notice that the number of posts dwindles until you have a search page with no visible images, because the whole page is full of things that you blacklisted. For me, that'd be images of tigers eating others (cannibalism, vore, etc), tigers involved in scat / watersports, and so on with the rest of my blacklist.

At this point, what do you do to make searching work properly again? [snip]

Start at the last page and move forward. Done!

That way you would have a large, snowballing group of blacklisted and meh posts in your wake, but you will not see them because the next page will be pristine and untouched (by you). The list of positive search results will dwindle, as will the page count of course, if you hide the posts you voted on, but that matters not (and is no longer necessary). I browse like this, but with some extra considerations.

One issue occurs when posts uploaded during the current browsing session push posts that I haven't seen into a page that I'm done with, so I open like 5 pages at once before that can happen. When I get to the last of my 5 pages, I then pick a post to remember, refresh, and check for "realigned" posts.

I guess another issue arises at the start of each new browsing session: how do you find your spot given all the new posts between sessions? When I'm finished with one browsing session, I used to just bookmark the page that I finished on. However, I adapted my method to also include a cut-off point, removing all posts older than the date of the post I finished on. Now I remove all posts of a lower post ID than the post I finished on (when I was still a full lurker, someone said they browse like this, so I switched... total guess and naming Patchi :)). For reference, this is what my bookmark looks like right now at 125 posts per page.

Alternatively, you can play around with ordering by ascending ID, but still starting on the last page, to get the bleeding edge of uploaded content. Less ideal, IMO, but could work. It works if you designate post ID ranges such that posts older than X and newer than Y are ignored. Personally, I try to look at posts that are one month old, so that their scores have mostly normalized (20 is roughly my threshold). I never can keep my backlog down, though...

Edit: Hell... you can even adopt my "open 5 pages" method to your above quoted browsing style to workaround the clump of blah posts. However, you will still have a clump of blah demarcating older content from very recent content, so that method isn't as good, IMO. Slightly improved with post ID range searches, but harder to track thereafter. That's assuming you put a high value on recent content, but posts uploaded a month ago are basically as good as new posts lol.

Does that help?

Updated by anonymous

  • 1