ArtFX Discord Server Bot, Custom modules and bot functions
Table of Contents
Feedback is a bot which will enforce message standards in forum channels built in Discord.py. While customizable, the specific purpose of the bot is to ensure that meaningful feedback is provided by users replying to another user who has requested feedback on an audio project.
Where the bot is added, it will enforce post requirements in feedback channels to make sure that new posts meet the requirements. While enabled, initial requirements for feedback posts include a valid audio attachment or link to a music sharing service such as youtube, soundcloud or clypt.it.
Feedback Requests require Feedback Points, which can be earned by providing feedback for others. To award Feedback Points, messages within forum channel threads are processed to check for meaningful feedback terms and message length. If the message meets the requirements, Feeback Points and Karma Points are awarded to the user replying to the thread.
A users Feedback Points are reset to zero when a new Feedback Request has made. The required Feedback Points to make a new request is set by default to 1, but this value can be customized by command, as well as most other message requirements enforced by the bot.
Basic Overview:
-
Channel check: The bot checks the type of channel where the message is posted. If the channel is a public thread, it will process the messages differently compared to when they are in a text channel. The bot is designed to enforce Feedback standards in forum channels. When the bot is in a text channel, the bot processes messages as commands.
-
Feedback enforcement: If the channel is a public thread and it is listed as an allowed channel, the bot enforces feedback requirements. It checks if the message meets certain criteria to be considered as a valid feedback request. If not, it deletes the message and informs the author about the issue. If it is valid, it checks if the user has enough feedback points to post the request.
-
Feedback points: Feedback points are a system implemented by this bot to ensure that users are engaging with the community. Users earn feedback points by providing valuable feedback to others. If they don't have enough feedback points, they can't post a feedback request.
-
OpenAI Integration: If enabled in the configuration, the bot uses OpenAI to determine if the feedback response is meaningful.
-
Keyword and character count checks: The bot also checks if the feedback message contains certain required words and meets a minimum character requirement.
-
Awarding points: If a user provides valid feedback (i.e., the feedback contains the required words, meets the character count, and is deemed meaningful by OpenAI), they get feedback points and a "karma point".
-
Command processing: If the message is in a text channel, the bot processes it as a command.
Create
Modules:
- discord.py
- io
- json
- math
Installing and running the bot:
- Clone the repo and place the files wherever you plan to run the bot
- Enter your Discord Application API key in config.py
- Start the bot with main.py
- Configure the bot command prefix in feedback.py and add a text channel ID where the bot will listen for commands. The default prefix is '/'.
Initially the bot will not be responding to commands, an appropriate text channel will have to be configured in feedback_channels.json. You only have to set a text channel to get started and from that point you can change the monitored channels list with commands.
{"forum_channel_ids": [forumchannelid], "text_channel_ids": [textchannelid}
After an initial text channel has been set for bot commands. You can use /channel to manage monitored text and forum channels.
- Add the forum channel id to feedback_channels.json
/channel add forum <forumchannelid>
- Configure some Feedback Parameters
feedback parameters:
- Feature 1
- Feature 2
- Feature 3
- Nested Feature
See the open issues for a full list of proposed features (and known issues).
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
ropeadope62 - @twitter_handle
Project Link: AutoFX Feedback