A sliding-scale throttle makes sense. Iâd suggest the cost of each command is relative to itâs processing cost for non-visual commands from the DoS angle, and say/pose/spoof cost a little extra since they can be used to annoy others.
Iâd have the slowdown ramp up though. Maybe exponentially. So you can throw out two or three poses fairly quickly but pose 4 has a second delay, pose five two seconds, pose six is four seconds, etc. That accomodates someone reposting a short article of 3-4 paragraphs without being punishing, while also quickly âresponding toâ someone trying to dump 20 lines and being allowed to get 10 out before being cut off.
This would necessitate a queue of some sort though, with a warning if you queue up more than two or three things and perhaps a hard limit of 4-5 items in the queue, along with a âqueue clearâ command to âabortâ pending stuff once you realize youâve been throttled, if that changes what you want to say or do.
Sometimes people talk very quickly. I know I do. But if your spamscore decays reasonably every second, that should be less of an issue. I canât really say anything meaningful more than once a second, certainly, and I like to think I type pretty fast.
Edit: Of course, now that I think on it, the queue would have interesting interaction with the spamScore decay. Would need to either have it decay at half-rate or something if youâre keeping the queue full, or just pause the decay entirely until the queue is empty.
I agree. And the cost should be easy to tune if needed.
I assume you mean for the purpose of not annoying others?
I donât think we should limit (or slow down) ânormalâ usage at all. I would consider it normal to post quickly 4 things in succession. And it would just be frustrating if it started to get queued to be posted later.
Iâd rather just âdetectâ when a behavior is not normal, and then block the call completely.
If the call was made from command, we can tell it in the console:
You are being too active. Wait X seconds and try again.
Of if it is done using the GUI, we can popup a non-modal/non-blocking notification in the bottom right corner.
Of course, you can get false positives. But then the message is at least clear about it, so you know how long you need to wait.
I donât really think queuing is the way to go. It would also bring in a lot of unnecessary complexity, as you describe
Yeah, that makes sense. I was sort of thinking that under ânormalâ usage the slowdown would be virtually transparent, but once you start ekeing into âabuseâ territory you slowly slow down to provide a warning mechanism without just flat-out locking someone out. Obviously at some point someoneâs going to toss out five or six lines really fast.
like
wow
I mean
wow
geeze
wow
For example. But if you try writing a whole sentence one line at a time youâre gonna start getting slowed down to discourage it.
Yeah, queues would be complex. I like to over-engineer I guess, then back up from there to compromise ideal effect with my own laziness.
Definitely should have a UI element to warn and one to inform where youâre at and how long you have until youâre good again.