Skip to content
/ r9k Public

Simple Slack bot to tune out noise and make conversations on Slack more high quality

Notifications You must be signed in to change notification settings

3kh0/r9k

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

r9k (ROBOT9000) on Slack

When social communities grow past a certain point (Dunbar’s Number?), they start to suck. Be they sororities or IRC channels, there’s a point where they get big enough that nobody knows everybody anymore. The community becomes overwhelmed with noise from various small cliques and floods of obnoxious people and the signal-to-noise ratio eventually drops to near-zero — no signal, just noise. This has happened to every channel I’ve been on that started small and slowly got big. - xkcd, 2008

TLDR if you don't want to read the whole thing

  • Every message in the monitored channel is normalized (lowercased, punctuation removed)
  • If the message has been said before, it's deleted and the user is warned
  • Repeat offenders get exponentially increasing mute times (2s → 8s → 32s → infinity and beyond)
  • Mute times decay by half every 6 hours

In theory, this should make it so that the channel stays clean and only the most creative and interesting messages are left. If it works in IRC, it should work in Slack too.

Cool shit about this

  • Only one channel is monitored (spin up more instances for more channels, this helps bypass rate limits too)
  • All messages are normalized (eg. "hello!" and "Hello?" are the same)
  • Stupid fast SQLite with Bun
  • Decaying mutes for uncreative people: 2 * 4^(violations-1)
  • Small
  • Only bottleneck being the sluggish Slack API

Get going

  1. Make a Slack app and:
    • Turn on Socket Mode
    • Make a app token with connections:write
    • Add these bot scopes: channels:history, channels:read, chat:write, im:write
    • Subscribe to message.channels event
  2. Copy .env.example to .env and fill it out
  3. Run bun start
  4. Invite the bot to your channel
  5. Profit???

Do note that since this bot leverages the admin API to silence nerds, you need an admin token to run it. Otherwise it will just yell at you and do nothing.

About

Simple Slack bot to tune out noise and make conversations on Slack more high quality

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published