Skip to content

A Discord bot for control and decentralization of threads management

License

Notifications You must be signed in to change notification settings

S0raWasTaken/Threadripper-bot

Repository files navigation


Threadripper-bot

A Discord bot for control and decentralization of thread management

About

Threadripper aims to serve some extra utilities to take better care of thread channels.
Discord lacks a lot in functionality for threads, so that's why I made this bot

Goals and TODOs

  • Actually get a VPS to host this bot ✓ (thanks to Github + DigitalOcean)
  • Implement thread owner system
    • Full thread control to owner (messages, members etc)
  • Mass thread actions (channel & guild)
    • Mass delete, archive, clean...
  • TMC management ✓

Concepts

Thread owner

A thread owner is a member that created a thread or unarchived it.
It can delete messages inside its own thread channel, remove members from it and do mass actions in his own thread.

TMC (Threadded media channel)

A TMC is an invented concept that describes a pictures/videos/etc channel that members are not allowed to chat.
A normal TMC will delete messages from everyone that doesn't include an attachment or the bot's prefix/mention in its message.
It will also automatically create a thread for each message that contains an attachment and set their owners accordingly.

Thread inheritance

Thread inheritance happens when an archived thread is unarchived by a server member.
The member that unarchived the thread will inherit it from its previous owner.
The old owner will be able to take its ownance back if it requests for it in less than 48h.
The original owner is always able to take the ownance back.

Help

Commands

Every command (except ping) has a -h, --help flag that can be used to gather information about the usage and options it has. The commands are built in a UNIX-like way, as if they were individual CLI programs. Here's a list of commands:

[General]
ping
prefix
help (wip)

[ThreadManagement]
set_media_channel (setmedia, smc...)
remove_media_channel (rmmedia, rmc...)

# More commands will be added on the future

Unusual Behaviour

You can always make an issue here to report this kind of behaviour.
If you do prefer, you can message me on Matrix or send me an email. Contact information is listed in my profile

Adding Threadripper to your server

You can add it to your server by clicking here.

Threadripper doesn't actually need administrator permissions, but it's better to have it on than losing your mind trying to fix permission issues. Since it's open source, why not? If you don't trust me, you can deploy your own Threadripper!

Contributing

Issues and Pull Requests are always welcome. I also do accept ideas in the Issues page

Nerdy curiosities

  • Rustbreak is included in the project, as a Client::data+Context::data file database manager, so when the bot turns off, it does save stuff
  • Clap is included as the command and arguments handler, this is why the commands' syntaxes are so similar to UNIX commands, I'm literaly using a crate that builds most of CLI apps in Rust
  • As you might expect, Threadripper's name comes from the AMD threadripper series, because I do like AMD processors and GPUs, since they play so nice on Linux
  • Serenity's documentation sucks.
  • cargo build generates a binary of size >150MB, cargo build --release's bin size is 9MB and make release reduces the binary size to <2MB

About

A Discord bot for control and decentralization of threads management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published