jsha / blocktogether

Share your blocks and subscribe to others'
GNU General Public License v3.0
330 stars 68 forks source link

Feature Request: Block all users who followed user during a certain time period #184

Closed dmajoraddnine closed 9 years ago

dmajoraddnine commented 9 years ago

Hi, a friend of mine asked me to help her block a bunch of fake Twitter bots that someone "jokingly" created to follow her. I believe the number is close to 150,000. I was going to write a custom script, but thought it might be useful to add functionality to BlockTogether that allows a user to specify a datetime range and block all followers whose subscription timestamp falls within that range.

@jsha - is this something that you're interested in having in BlockTogether? I can start working on a pull request, if so. Otherwise I'll just fork.

Thanks!

jsha commented 9 years ago

Hi Matt! I've often thought of doing something similar but I don't think it fits into the framework of Block Together. But I agree it should exist.

One thing to keep in mind is that there is not actually a subscription timestamp available in the API. The closest you can get is that, I think, the followers endpoint returns a list of follows ordered by time. So you could allow the person to specify the number of followers they used to have, then block until the number of followers reaches that level. The unblock-all.js script in Block Together is probably useful to start with.

I would recommend soft-blocking (block and then immediately unblock), because some of the accounts might be legitimate ones that are part of a followback ring or compromised, and also because that preserves her account's ability to be meaningfully used with Block Together in the future if she wants.

An interesting version of this that I've thought about: You could consume someone's user stream API for a period of time and immediately soft-block all new accounts following during that period. That could help with these fake follower attacks if caught during the event. It could also help with users who have periodic episodes of Twitter fame but don't want to get new followers during those episodes.

Let me know how it goes!

dmajoraddnine commented 9 years ago

Cool, thanks for the tips! I'll get working on a fork and keep you posted when I make any meaningful progress.

On Thu, Apr 9, 2015 at 12:01 AM, jsha notifications@github.com wrote:

Hi Matt! I've often thought of doing something similar but I don't think it fits into the framework of Block Together. But I agree it should exist.

One thing to keep in mind is that there is not actually a subscription timestamp available in the API. The closest you can get is that, I think, the followers endpoint returns a list of follows ordered by time. So you could allow the person to specify the number of followers they used to have, then block until the number of followers reaches that level. The unblock-all.js script in Block Together is probably useful to start with.

I would recommend soft-blocking (block and then immediately unblock), because some of the accounts might be legitimate ones that are part of a followback ring or compromised, and also because that preserves her account's ability to be meaningfully used with Block Together in the future if she wants.

An interesting version of this that I've thought about: You could consume someone's user stream API for a period of time and immediately soft-block all new accounts following during that period. That could help with these fake follower attacks if caught during the event. It could also help with users who have periodic episodes of Twitter fame but don't want to get new followers during those episodes.

Let me know how it goes!

— Reply to this email directly or view it on GitHub https://github.com/jsha/blocktogether/issues/184#issuecomment-91109849.

Best Matt Yetter http://www.matt-yetter.com