Tracking Down Useless Reports on Mastodon
Handling reports is a constant chore on woof.group, and the frustrating part is that most of them aren't actually actionable. They're for posts that are already properly content-warned, or that don't need a warning at all under the server's policy—things like faces, butts, or shirtless photos.
Blocking reports from a domain entirely is tempting, but it risks missing genuinely important ones. Talking to remote admins about tweaking their users' behavior is possible, but it's slow and only worth it for recurring problems.
Getting the Data
To see which remote servers are the biggest source of dead-end reports, Mastodon admins can run this in the rails console:
# Map of domains to [action, no-action] counts
stats = Report.all.reduce({}) do |stats, r|
domain = r.account.domain
domain_stats = stats[domain] || [0, 0]
action = r.history.any? do |a|
# If you took action, there'd be a Status or Account target_type
a.target_type != 'Report'
end
if action
domain_stats[0] += 1
else
domain_stats[1] += 1
end
stats[domain] = domain_stats
stats
end
# Top 20 domains, sorted by descending no-action count
stats.sort_by do |k, stats|
stats[1]
end.reverse.take(20)
Here's what the output looks like in practice:
[[nil, [77, 65] ; nil is your local instance
["foo.social", [3, 52]],
["mastodon.oh.my.gosh", [40, 24]],
...



