Note: Info here isn’t 100% complete, since we don’t have sample information for what most comment rejection objects actually look like.
A comment rejection object looks like this:
{
rejected: /* Rejection code - see below */
status: /* (optional) Status object with rejection details - see below */
appealId: /* (if IP muted) Case number to contact ST with to appeal block */
}
The rejected
property will be one of the following:
"isEmpty"
: the comment is empty"isFlood"
: sending too many comments in a short period of time"isBad"
: content was caught by the filter bot"hasChatSite"
: content contained a link to a website with unmoderated chat"isSpam"
: same content has been posted too many times"isMuted"
: posted too many bad comments and account has been muted for the day"isUnconstructive"
: content was detected as being mean or disrespectful"isDisallowed"
: tried to post on a page where comments are disabled"isIPMuted"
: comment sent from a network blocked for breaking the community guidelines too many times"isTooLong"
: content surpasses maximum comment length"isNotPermitted"
: user email address hasn’t been confirmed yetThe status
property, if present, may have a mute_status
property. This object will look like this:
{
offenses: /* Array of offense objects */
showWarning: /* Override to always show warning regardless of offense list */
muteExpiresAt: /* When the user will be unmuted (*1000 to convert to Unix timestamp) */
currentMessageType: /* Latest(?) offense message type */
}
Offense objects look like this:
{
createdAt: /* When the offense was caught (*1000 to convert to Unix timestamp) */
expiresAt: /* When the offense expires (*1000 to convert to Unix timestamp) */
messageType: /* What kind of offense was caught */
}
For example, an offense object might indicate it was caught today, expires in one week, and has the message type "sexual"
. The mute_status
it is part of may indicate the mute itself expires in only five minutes.