A multipurpose discord bot.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
noirscape 0461ac29af
Remove reliance on hastebin
2 months ago
alembic New archivaris cog. 3 months ago
cogs Remove reliance on hastebin 2 months ago
required_cogs Update copyright year 3 months ago
utils Remove reliance on hastebin 2 months ago
.gitignore Added .idea to gitignore 7 months ago
LICENSE nekos.life API implementation 8 months ago
README.md Update copyright year 3 months ago
alembic.ini Add alembic 5 months ago
config.yml.example Expanding README with information 7 months ago
db.py New archivaris cog. 3 months ago
main.py Update copyright year 3 months ago
requirements.txt New archivaris cog. 3 months ago
secure.yml.example Initial commit 11 months ago

README.md

kirigiri

A powerful multipurpose discord bot.

Requirements / misc stuff

  • Recursive clone the repo.
  • Use a venv, this bot has several dependencies.
  • Only tested on linux.
  • To properly use deepcreampy, set up the DeepCreamPy dockerfile under the name deeppomf/deepcreampy:latest (slightly different from the official one, see capitalization!)
  • To properly use freespeech, get the ariblk.ttf font from here and install it. (Alternatively, install the MS Corefonts!)

Features

  • Moderation! Can kick and ban users with reasons. Also supports warning users and assigning roles.
    • This works by assigning at least one role to the bot. There’s three levels available in total.
      • HalfOP: HalfOPs are pseudo/starting staff. They cannot kick or ban users directly, but they can issue warnings (which can eventually lead to kicks and bans).
      • OP: OPs are regular staff. They can kick and ban users.
      • SuperOPs: SuperOPs are your admins. They have full control over the bot.
    • If your server simply has moderators, just assign the SuperOP role to the moderator role. This will give your mods access to all commands.
  • Custom commands (functionally similar to tags).
  • Shortcut commands (execute any command in the bot under a different name).
  • nekos.life API implementation. Query catgirls straight to your discord.
  • DeepCreamPy decensorer! Upload an image marked appropriatle,y and the bot will decensor it for you. (Note: requires docker for DeepCreamPy to be set up).
  • Rotating status indicating various statistics about the bot.
  • Admin commands.
    • Includes the excellent Jishaku debugger for debugging the bot.
      • Token is stored in secure.yml and should not be exposed if showing the config file.
  • Generate free speech flags.

NSFW features

These features only work in channels marked as NSFW on discord.

  • Most of the available nekos.life commands.

Public instance

This bot has a public instance available here.

This bot expects the server to be set up in a certain way if you plan to make use of the moderation commands. See the wiki for details on this.

The deepcream cog is disabled on the public instance due to server usage.

Do not add this bot to guilds that violate the Discord TOS. If you make use of the various logging options, be aware that you will need to disclose this in your server rules.

Self deploy

These are general instructions.

  • Clone the repository with git.
  • Make a venv (python3 -mvenv).
  • Copy config.yml.example to config.yml and edit settings. testing_mode disables the public invite with a different message, but this is customized to me. If you want your instance to use the deepcream cog, enable it here.
  • Copy secure.yml.example to secure.yml and add your token to it.
  • Activate the venv: source venv/bin/activate.
  • python3 -mpip install -r requirements.txt
  • alembic upgrade head
  • python3 main.py

The bot makes use of an instance folder called config.

To update, carefully check each commit for breaking changes before pulling (particularly w/r/t sqlite database layouts.)

License

AGPLv3, not licensable under later versions with additional clauses 7b and 7c in effect.

# kirigiri - A discord bot.
# Copyright (C) 2019 - Valentijn "noirscape" V.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation at version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
# In addition, the additional clauses 7b and 7c are in effect for this program.
#
# b) Requiring preservation of specified reasonable legal notices or
# author attributions in that material or in the Appropriate Legal
# Notices displayed by works containing it; or
#
# c) Prohibiting misrepresentation of the origin of that material, or
# requiring that modified versions of such material be marked in
# reasonable ways as different from the original version

Credits

This bot uses parts and ideas from the following projects:

  • Robocop-NG by Ave and TomGER. (Moderation commands).
    • Extended thanks to the staff of Nintendo Homebrew for Kurisu (which Robocop-NG is a rewrite of.)
  • This snippet by Ave (is adapted into the free speech cog).
  • Jishaku for custom commands (shortcut commands specifically) and the debugger.
  • The dev of boobbot for the nekos.life API commands (which, yes, these were written to spite him).
  • Ozone by SimonMkWii.

In addition, special thanks are extended to the following people for all sorts of reasons, ranging from suggesting features to motivating me (directly and indirectly). This list is alphabetical and people at the top are not specifically thanked more than others.

  • Ave
  • Byokugen
  • Four
  • Miu
  • Schmue
  • Simon
  • Sirocyl
  • The Magician
  • You! (yeah it’s silly, but honestly, I appreciate anyone who both is willing to check out the bot and is using it on their guild.)