Giter Club home page Giter Club logo

discord-join-quiz-bot's Introduction

Contributors Forks Stargazers Issues MIT License


Logo

Discord Join Quiz Bot

A simple bot to ensure users have read your server rules
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Running a large, publically posted Discord server with an oft misunderstood topic (Infosec/Ethical Hacking), we found that many new users were joining, immediately bypassing the rules screen without reading, and then proceeding to immediately violate the rules. Our solution to this problem was to build a bot that would intercept any new joiners, and ask them a few simple questions that hit on the biggest problems we see from users ignoring our rules.

(back to top)

Built With

Python

(back to top)

Getting Started

The simplest way to get started running the bot is to run it locally on your development system.To do this you will need:

  • A supported version of Python installed
  • A Discord bot token (Instructions here)
  • A Discord server to test in
  1. Clone the repository ([email protected]:loredous/discord-join-quiz-bot.git)
  2. Change into the newly cloned repository (cd discord-join-quiz-bot)
  3. Install the required packages used by the bot (pip install -r requirements.txt)
  4. Modify the example_quiz.yaml file to include the appropriate ID values for your test server
  5. Set the Discord bot token in the environment variable BOT_TOKEN (export BOT_TOKEN=mytokengoeshere)
  6. Run the bot (python code/bot.py)

Prerequisites

  • pip
    pip install --update pip
    OR
    apt-get install python3-pip
    OR
    yum install python-pip

Installation

The preferred way to run the bot is by deploying the latest version of the Docker container image with your specific quiz configuration mapped to /conf/quiz.yaml, and the Discord bot token provided in the environment variable BOT_TOKEN.

docker run -d -e BOT_TOKEN=mytokengoeshere -v ./my_quiz.yaml:/conf/quiz.yaml docker pull ghcr.io/loredous/discord-join-quiz-bot:main

(back to top)

Usage

!!! COMING SOON !!!

(back to top)

Roadmap

!!! COMING SOON !!!

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GPL-3.0 license. See LICENSE.txt for more information.

(back to top)

Contact

Jeremy Banker - Loredous#7762

Project Link: https://github.com/loredous/discord-join-quiz-bot

(back to top)

Acknowledgments

(back to top)

discord-join-quiz-bot's People

Contributors

loredous avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

discord-join-quiz-bot's Issues

[BUG] - Bot fails when missing permissions to send messages in audit log channel

Describe the bug
When permission is missing to send messages in the audit channel, the bot will fail to send any messages in the quiz thread. Error message is unclear.

To Reproduce
Steps to reproduce the behavior:

  1. Create a quiz configuration that includes an audit channel
  2. Ensure the bot user does not have permission to send messages in the audit channel

Expected behavior
The bot should continue to function and show meaningful error

[FEATURE] - Document the full Quiz yaml schema

Is your feature request related to a problem? Please describe.
Right now the only way to know what is valid, required or optional in a quiz yaml is to read into the code.

Describe the solution you'd like
The full schema of the quiz yaml files should be documented in a markdown document in the code repository

Additional context
Object schema can be found in code/quiz_config.py

[FEATURE] - Modify bot message sending to use unified variable interpolation

Is your feature request related to a problem? Please describe.
Only some of the text that gets sent as part of the bot's processes has variable interpolation available.

Describe the solution you'd like
All of the various send_message and send calls should utilize a unified method for providing interpolation of available variable data. For example, the ability to include {member.name} or {mention} in various places can help to better personalize the quiz for users.

Describe alternatives you've considered
None

Additional context
Should include interpolation for guild information, member information, anything else that could be useful in crafting bot messages.

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.