Coder Social home page Coder Social logo

genericnerd / reaper Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 445 KB

Reaper is a Discord bot that allows you to automate and make tasks easier that would normally take a lot of time and effort. It is designed to be easy to use and extremely customizable.

License: MIT License

Dockerfile 0.13% Rust 99.87%

reaper's Introduction

Reaper

A Discord bot designed to make your users reap what they sow.

Version

What is Reaper?

Reaper is a Discord bot that allows you to automate and make tasks easier that would normally take a lot of time and effort. It is designed to be easy to use and extremely customizable.

Self Hosting Guide

Requirements

Setup

Minimum permissions

When adding Reaper to your server, you will need to give it the following permissions:

  • Send Messages
  • Embed Links
  • Attach Files
  • Kick Members
  • Ban Members
  • Manage Roles
  • Manage Server
  • View Audit Logs

An additional scope of applications.commands is required for slash commands to work.

Installation

Docker

The prefered way to run Reaper is using Docker. This allows you to run Reaper in a container and allows you to easily update it. To run Reaper using Docker, you will need to create a docker-compose.yml file. There is an example provided with the docker-compose.example.yml file. You can copy this file and rename it to docker-compose.yml. The docker-compose.yml file has some environment variables which you should edit to your preference.

Linux

  1. Ensure you have installed Docker (and Docker Compose if following this guide)
  2. Download the Reaper Repository (either by cloning it or downloading the repository)
git clone https://github.com/GenericNerd/reaper
  1. Enter the directory and edit your docker-compose.yml file to preference.
  2. Run the following command to start the bot
docker-compose up --build -d
  1. Run the /config command to start configuring the bot in your own server.

License

MIT License

Copyright © 2024 Fabio Almeida

reaper's People

Contributors

dependabot[bot] avatar genericnerd avatar null8626 avatar wynter1888 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

wynter1888

reaper's Issues

Add Boards functionality

The requirements are like current Reaper, which is as follows:

  • Await a message reaction
  • Check if we are in an ignored channel
  • Check if the message is already on that board
  • Check if it is a reaction we care about
  • Check if the reaction count is over the threshold
  • Copy the entire message, including attachments
  • Add the message and board ID to a database to avoid duplicate log
  • Send the message

Giveaway Bot

Add Giveaway Bot-like functionality. Requirements are as follows:

  • Restart resistant
  • Must be able to initially provide a giveaway name, duration, reward, optional channel, and optional role requirements
  • Each entry must be checked if they meet the optional role requirement
  • Each entry must be kept in a separate database table and no duplicates should be permitted (composite primary key)

Settings

Add settings command to allow an admin to adjust all guild settings

Logging Improvements

Logging will require a refactor to reduce code duplication. It is imperative that when logging message edits or deletions, the entirety of the message (including attachments) is kept and carried over. A method to do this may be required.

Right click message reporting

  • Cooldown per user, configurable
  • Once a message is reported, it cannot be reported again for 24 hours
  • Allow roles to be mentioned
  • Jump to message

Wendigo Functionality

Add Wendigo (role recovery) functionality to Reaper. The requirements are as follows:

  • Each time a role is added, add it to a database
  • Each time a role is removed, add it to a database
  • On mute expiry, remove the muted role from this database. If the user is not on the server, remove it anyways.
  • When a user rejoins, apply all their roles

Levelling

Redis database will keep the last minute of the following:

  • A user typing in a channel
  • A user being in a voice channel unmuted

On every message and while a user is connected to a voice channel (will need to keep storage), we will compare to this cache. If they are in it, stop execution. Otherwise, give them XP per the guild's instructions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.