/slashtilities

A nice and simple, slash command-based, Discord utility bot.

Primary LanguagePython

Slashtilities

Notice

I haven't got time to maintain this bot. Heroku's free plan is dying, and since this is just a fun project, this is going to die along with it.

Thank all the people who helped contribute and test this project! It was fun while it lasted.


A nice and simple, slash command-based, Discord utility bot.

Features

Available commands

/ping

Returns the bot's ping in miliseconds

Other than being a basic sanity check, this command is quite useless.

/igotpinged

Get the last message(s) pinging you after your last message sent in the channel

When you're in servers where people talk 100 messages a minute, this command is useful when

  1. You got pinged when you come back
  2. You don't want to scroll through all those messages to find who pinged you and why

While Discord's find feature is nice, typing /igotpinged saves a lot of keystrokes or (in the case of mobile) tapping.

/emoji_backup

Back up the guild's emojis

Get a copy of the current guild (server)'s emojis. This is useful for backing up emojis for a guild that freely allows emoji modification (e.g. my server).

/cc @someone, ...

Sends a dm to the people you /cc'd with your last message's contents and jump-link. Also tells them who else you CC'd

Because just pinging them is risky.

  1. Your original message (or the message you used to ping them) can get deleted
  2. And if number 1 happens, your reputation will be ruined because you "ghost pinged them"

DMs are a safe and persistent place for dumping messages.

NOTE: Because of Discord's current API limits, you can only /cc//bcc a limited number of people. I have currently made that limit 10 but if you want to make the limit higher, request it in our issue tracker

/bcc @someone, ...

Sends a dm to the people you /bcc'd with your last message's contents and jump-link

Basically /cc but the dm message doesn't tell them who else you've CC'd.

/poll question, choice1, choice2, ...

Send a multi-choice poll (options mutually exclusive)

This is useful if you want a group vote. This command will also add the nessecary reactions.

NOTE: The current limit of choices is 9

demo

/yesno question

Send a yes-or-no question (options mutually exclusive)

Because yes. Or was it no?

/invite

Our bot's invite links!

Because yes!

/vote

Vote for our bot here!

Please.

/???

???

Suggest your command in our issue tracker! Maybe the newest command came from your idea!

Instructions

Adding to your server

Just follow this link and add it to your server like any other bot.

Self-hosting the bot

If you have Python 3.7+ installed (instructions here), you may run our experimental auto-installer via

$ curl -sSf https://raw.githubusercontent.com/ThatXliner/slashtilities/master/autoselfhost.py | python3 -

Or you can Deploy to Heroku (you may need to add the PostgreSQL Add-on in order for it to work properly)

Requirements

  • Python 3.7+ and pip OR the latest stable version of Poetry
  • PostgreSQL
  • Git (of course)

If you're missing any of these requirements, check the install requirements instructions

First steps

No matter what, you still need to clone this git repository

$ git clone https://github.com/ThatXliner/slashtilities

Installing dependancies

You got 2 options: install the dependancies with poetry or install the dependancies with pip (in a venv, of course)

With Python and pip
$ python3 -m venv .venv
$ source .venv/bin/activate
(venv) $ pip install -r requirements.txt
With Poetry
$ poetry install

Running the bot

Finally, start running the bot. Remember to replace <your token here> with your actual Discord bot token.

You still got 2 options: run the bot with poetry or run the bot with Python in a venv

Run with Poetry
$ DISCORD_TOKEN="<your token here>" poetry run python -m slashtilities
Run with Python
$ source .venv/bin/activate
(venv) $ DISCORD_TOKEN="<your token here>" python3 -m slashtilities

Installing requirements

Git

You should have Git. To check, run

$ git --help

If you don't, how come you're browsing GitHub? Anyways, you can download Git here

Python 3.7+ and pip

You might already have Python 3.7+. To check, run

$ python3 -V

Get the latest version of Python here. Once you did that run

$ python3 -m ensurepip --upgrade --user

Poetry (optional)

To make life easier, you can install Poetry here or with

$ python3 -m pip install poetry

PostgreSQL

You need PostgreSQL if you want features that have settings (e.g. cc and bcc).

If you don't want to install PostgreSQL, set the environment variable NO_DB to 1 when running the bot.

Otherwise, download PostgreSQL from here

Verify that your PostgreSQL is installed via

$ psql -l

It should not error

Self-host (uninstalling)

Just remove the slashtilities directory