Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

If AutoModerator automatically tags each post with a "No OP replies yet" flair, make DeltaBot remove this tag as soon as OP replies to a comment. #6

Open
Snorrrlax opened this issue Aug 24, 2013 · 17 comments

Comments

@Snorrrlax
Copy link
Collaborator

AutoModerator can auto-flair every post but can't remove them when OP replies to a comment. I was thinking, maybe DeltaBot and AutoMod could work together, like this:

AutoMod auto-flairs every post. Then, as DeltaBot scans through the comments, it comes across a comment made by an OP, so it checks whether the post still has the flair, and if it does, it removes it.

@ghost
Copy link

ghost commented Aug 28, 2013

I'm not sure what the philosophy in this project is but I would say that deltabot should stick to handling deltas and automoderator should handle the moderating part of things such as post flair.

If automoderator already scans for comments, why not let it scan already flaired posts and remove the flair if it is applicable?

@PixelOrange
Copy link
Contributor

I'm not sure if this is true or not but I was told that automoderator could not perform the necessary steps to check for an OP reply after the fact. Probably due to not wanting to constantly rescan the same threads.

@Snorrrlax
Copy link
Collaborator Author

That's correct. We'd prefer it if AutoMod could do this by itself, but it can't remove the flair.

@Pluckerpluck
Copy link

Is this still something we want? Done exactly as asked here? Because it's easy enough (at least now) to get DeltaBot to:

  1. Check to see if a comment is written by the OP of a submission
  2. Check to see if that submission has a particular flair text
  3. Change it to nothing if so

@Pluckerpluck
Copy link

Edit: I sometimes use the word "tag" instead of "flair". So if I've made that mistake and missed it that's what I mean

Ok, so there's 3 methods I can think of using here (with pros and cons). I have already put in a pull request for the first part of my change, but the second part will depend on what you think is best.

Method 1:
  1. We don't flair new posts
  2. We run a search for all posts between X and X+y minutes ago every Z minutes or so.
  3. Scour the entire conversation for a reply from the OP
  4. If there is none apply the "No OP Replies" flair

This is the "cleanest" method to the users. However it is the messiest to code. Not only do you have to scour the entire comment section for replies by the OP, but you have to scan between a set time frame. This means if DeltaBot were to fail between that time we'd get a bunch of "new" posts without OP replies even if they're old

In other words, it doesn't fail safe.

Method 2 (My preferred method):
  1. We flair all new posts with "New"
  2. Modify my pull request to remove the "New" flair if an OP replies
  3. Every x number of minutes we search for all posts with the flair new (pretty sure this is a thing)
  4. Check each post to see when it was posted.
  5. If it was posted y minutes ago AND the new tag remains then add new flair "No OP Replies Yet"

This method allows the search to be kept simple. There's no need to search the submission for comments as that's done during the regular delta search sequence. And there's no missing and submissions if the system crashes.

However we now have an extra flair, and it still shows if the OP has replied or not (though only users who are regulars will notice that).

Method 3:
  1. We auto flair all posts with "No OP Replies Yet"
  2. We change this when there's a reply

Simplest to set up by a long way. However it causes brand new posts to be labelled with "No OP Replies Yet". This may kill the point of the flair as people must check both the flair and the time posted to get an idea if the user is responding.


All those methods are pretty doable. As I've stated I prefer the second one. It's fairly simple to choose the CSS style for the flair as well if need be (such that we can color them).

What do you people think?

@Snorrrlax
Copy link
Collaborator Author

Wow, thanks for compiling this :)

So far my favourite option has been method 3. I don't think a "No OP Replies Yet" flair on brand new posts is a problem - I'm sure people would be able to realise that it doesn't mean the OP will be unresponsive. I think a couple of mods aren't keen on this though so we'll discuss it ASAP. But method 2 isn't something I had considered before, and it looks like a great idea.

@Chillee
Copy link
Contributor

Chillee commented Jan 9, 2014

Wouldn't it be more in the spirit of the idea if it was change to no deltas awarded yet?

@Pluckerpluck
Copy link

The problem I see is that I get annoyed when the OP isn't responding to any arguments. It's not that they haven't awarded deltas, just that they're not even trying.

There may be a 3 hour long discussion going on that the OPs involved in yet the deltas awarded. I enjoy those. They're pretty good debates and you feel like you're actually arguing the original point rather than just with other commenters.

There is, however, nothing stopping having ANOTHER flair. After the OP replies we could switch the "No Deltas Awarded yet" and then if a delta is awarded we remove that flair. A bit more complex but definitely achievable without too much effort.

Depends on what people want really.

Also @Snorrrlax , If you agree on method 3 then my pull request is exactly that change, and you'll need AutoMod (or whatever it's called) to stick the flair on automatically for all new posts.

@Chillee
Copy link
Contributor

Chillee commented Jan 9, 2014

It seems correct to me.

@Snorrrlax
Copy link
Collaborator Author

Yeah, the thing that annoys our users is when OP doesn't even bother to reply. Nobody really expects the OP to definitely have their view changed, which is why "No OP replies yet" is more needed than "No deltas awarded yet", in my opinion. Although, as Pluckerpluck has said, maybe after this has all been figured out we could implement a new flair idea showing the amount of deltas that has been awarded.

@alexames
Copy link
Owner

alexames commented Jan 9, 2014

I think method 2 is the way to go with the following change: Rather than search for all posts with the flair "new" (which is slow and expensive), only do that once at start up, and place all the new threads in a sorted queue. From then on, all new threads Deltabot sees get placed at the end of the queue with the new flair. Every iteration, while the front of the queue is a thread whose creation time plus 1 hour is less than the current time, pop it off and change the new flair to "No OP Replies" flair.

The 1 hour timer should be user configurable from the config file.

@Pluckerpluck
Copy link

I'm pretty sure that to monitor new submissions you need to perform a "search" anyway (it's hidden behind PRAW). In fact, the best way to do so would be to perform a search of all submissions since your last search, so it would take very similar times.

Example flair search:

e.g. http://www.reddit.com/r/changemyview/search?q=flair%3A[mod-approved]&restrict_sr=on

takes me 0.068 seconds to 0.15s.

My intention was that every 5/10 minutes this search is done (given that AutoMod adds the "New" flair to begin with). This reduces the overall accuracy time of switching between new and "No OP Replies", but I though that 5/10 minutes would be fine given an approximate hour wait. Yet it would reduce how often the search must be done. I'm not even sure that's necessary though.

Either way I have perform new searches.

You seem to want a combination of using AutoMod to set the new flair, yet also monitor new submissions to add them to the queue which I think is just doubling up on what is necessary. Plus, I just don't like monitoring new submissions myself because it's very easy to mess up. The biggest benefit though would be the potential detachment (let deltabot add the New flair) from AutoModerator. It is much harder to implement though.

Yes, the duration should be in config though.

@Snorrrlax
Copy link
Collaborator Author

So a lot of moderators seem to be in favour of method 2 (perhaps with a couple of variations which I'll let Amablue get back to you on). The only mod who seemed to disagree with method 2 as it currently stands, is /u/AnxiousPolitics, who left this comment in modmail:

I don't like 2. I like the idea of "New" as a flair, it even carries an emotional weight that is really cool because it looks like it's drawing people to your thread. However, the possibility of OP just making one random comment (already a problem sometimes) just to get unflagged is still there.
I think we should do a method 4 (much like 2 actually):
Have no flair at first.
As deltabot reads comments have it store list of threads as well.
If after 20 (or 30, or 1hr, negotiable) minutes no OP comment has been made add "No OP replies yet" flair.
As deltabot reads comments, remove flair after 2 comments OP has made.

We do the two comments so people can't be upset if deltabot is down and their flair isn't being removed the second they made some restating their position and ignorinfg the content of the comment's points via modmail it. It just gives us leeway.
I haven't done any official metrics but I've found we have four types of OPs in relatively even amounts:

  1. 25% no replies
  2. 25% one reply
  3. 25% a couple to a lot of comments missing the points made
  4. 25% a couple to a lot of comments showing an understanding of points made which is where all the OP awarded a delta scenarios happen.

The reason the one reply thing is important is that OP (often lately) will only make one comment within the first two hours to a comment that defends their position and say "this guy gets it" so if the flair after two hours still shows "No OP replies" it might dissuade people from wasting their time in a thread that isn't 4 from above. We can't be helped from wasting our time in 3 if we engage people over one or two points over and over rather than the long summary of the issue comments.

In fact now that I think about it, 2 is often not just one but a few comments, so we could even extend it to four OP comments before flair is removed. Every single thread has 4+ comments by the two hour mark (except mine) so those threads that fit 4 above where OP is really engaged would never get flaired to begin with and the flair would only be directed at the people who might be soapboxing, not participatimg in good faith, or absent.

If none of you like that option (which I'm not crazy about by any means) then I approve of 2 from github, due to less programming and load on deltabot.

@Pluckerpluck
Copy link

Sorry guys, I'm horrifically busy until Saturday afternoon so haven't got round to doing this. I'm free all next week so expect it to done some time then.

I'm going to code it the way the avoids a 30 minutes start-up time (i.e. the "new" flair will disappear after a single reply) for the bot until I have some more time on a later date to rig it up using something a bit more complex.

Just a status update.

Also, I'll try to write it in a "pure" way as indented now.

@mochar
Copy link

mochar commented Mar 30, 2014

Plucker, are you still working on it or do you want to pass on the torch?

@Pluckerpluck
Copy link

#50

It can't be automatically merged though. It's all there though.

@PixelOrange
Copy link
Contributor

Update for #58 - I still haven't merged this. The code has moved on a great deal and I haven't had the time to update this to work with the new code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants