There are two main options for getting the data, scraping or using their API. (the other options are being reddit and having the data locally, or reddit pushing the data to you)
The scrapers will have a delay because they are forced to poll at regular intervals to obtain the data. Your delay won’t be short because you don’t want to be banned for spamming their server. You could operate from unique IP addresses using a VPN, but if you are running a bot farm, it doesn’t matter.
If you are using their API, then you will be rate limited for the same reason. They don’t want to waste bandwidth or have their servers overloaded.
So no matter what, you will have some kind of delay. A minute or two, or at least thirty seconds.
If you are getting replies instantly, that’s because the bot doing the replying doesn’t need to ask for the data over the internet. They are watching for or being notified of it immediately. So either reddit is running the bots, or they are forwarding the messages to the bots as soon as replies are posted. There has to be some coordination.
The problem here is that you're just a theorist. I've been writing bots, scrapers and pollers for over twenty years.
Uh no, I’ve written bots as well…
There isn't a magic filter and you'll find in reality limits are quite forgiving. You'll also find that a few heuristic targets and you don't have to poll a great deal.
You do if you want instant responses, because you need to know about them before you can reply, correct? Given that you need to first check for those replies, you have to be polling pretty frequently if you want your responses to be instant. Far too frequently to be workable if you are doing other things with your bot too.
Everything you're talking about is blind theory without any real metrics. What's the actual request rate per minute? You're pulling numbers out of your butt that on the face of it don't hack. You don't get rate limited hitting F5 twice in 30 seconds.
Well if you are going to whine about it, reddit’s API limits you to 60 requests per minute. If you are doing actual bot like activity, that’s not a lot.
The assumption that a bot would necessarily poll at a fixed interval is also primitive. You can make one that speeds up or slows down based on rate of change.
The reason you would poll at a fixed interval is to reduce requests… I mean I’d assume your bot is not just checking replies. It would be crawling, voting, checking replies, replying, posting, checking messages, among other things. Each of those is an API request.
Comment responses are likely to be inevitably avoided and easily delayed to appear more organic. It's downvotes that you'll notice are more likely to be instant. You could see this pattern on reddit.
Dude, my whole reply is in regard to someone saying that bots are responding instantly. So yeah, obviously you could delay responses to appear more organic, but that’s not what we’re talking about…
Not faster, instant. That is the word he used. Maybe it is an exaggeration on his part, but just for the sake of example, let’s say he is correct.
Don’t you think if you are relying on an API, you would need to do a hell of a lot of polling to have instant responses?
You can only do 60 requests per minute, one per second, and some of those requests need to be spent on performing other activities.
So at a minimum, you would need to interleave requests to check the comment replies to the bot at regular, short intervals, and you need to ensure that no matter what activities your bot does, it does not exceed the limit.
It’s not like the replies come at regular intervals either. Say you get five replies to a comment, well if you want to respond instantly, that means you would need some buffer so that you are always free to send a response without hitting the API limit. So you can’t even fit one action per second. You need to be far below that in case you want to do something more than just check the messages you are receiving.
I’m saying it doesn’t even make sense, from a bot writer’s pov, to have instant responses. As you mentioned, you would be far more realistic if you didn’t do that at all.
So then why would instant responses even be a consideration? Well they wouldn’t unless you were not subject to the limitations of Reddit’s API.
There are two main options for getting the data, scraping or using their API. (the other options are being reddit and having the data locally, or reddit pushing the data to you)
The scrapers will have a delay because they are forced to poll at regular intervals to obtain the data. Your delay won’t be short because you don’t want to be banned for spamming their server. You could operate from unique IP addresses using a VPN, but if you are running a bot farm, it doesn’t matter.
If you are using their API, then you will be rate limited for the same reason. They don’t want to waste bandwidth or have their servers overloaded.
So no matter what, you will have some kind of delay. A minute or two, or at least thirty seconds.
If you are getting replies instantly, that’s because the bot doing the replying doesn’t need to ask for the data over the internet. They are watching for or being notified of it immediately. So either reddit is running the bots, or they are forwarding the messages to the bots as soon as replies are posted. There has to be some coordination.
Uh no, I’ve written bots as well…
You do if you want instant responses, because you need to know about them before you can reply, correct? Given that you need to first check for those replies, you have to be polling pretty frequently if you want your responses to be instant. Far too frequently to be workable if you are doing other things with your bot too.
Well if you are going to whine about it, reddit’s API limits you to 60 requests per minute. If you are doing actual bot like activity, that’s not a lot.
The reason you would poll at a fixed interval is to reduce requests… I mean I’d assume your bot is not just checking replies. It would be crawling, voting, checking replies, replying, posting, checking messages, among other things. Each of those is an API request.
Dude, my whole reply is in regard to someone saying that bots are responding instantly. So yeah, obviously you could delay responses to appear more organic, but that’s not what we’re talking about…
Not faster, instant. That is the word he used. Maybe it is an exaggeration on his part, but just for the sake of example, let’s say he is correct.
Don’t you think if you are relying on an API, you would need to do a hell of a lot of polling to have instant responses?
You can only do 60 requests per minute, one per second, and some of those requests need to be spent on performing other activities.
So at a minimum, you would need to interleave requests to check the comment replies to the bot at regular, short intervals, and you need to ensure that no matter what activities your bot does, it does not exceed the limit.
It’s not like the replies come at regular intervals either. Say you get five replies to a comment, well if you want to respond instantly, that means you would need some buffer so that you are always free to send a response without hitting the API limit. So you can’t even fit one action per second. You need to be far below that in case you want to do something more than just check the messages you are receiving.
I’m saying it doesn’t even make sense, from a bot writer’s pov, to have instant responses. As you mentioned, you would be far more realistic if you didn’t do that at all.
So then why would instant responses even be a consideration? Well they wouldn’t unless you were not subject to the limitations of Reddit’s API.