Skip to the content.

Guide : GaBot - Discord Bot


About GaBot

The bot was created for schools and their study purposes on a discord platform

Fully customizable Discord server moderation bot for your Discord server that includes simple commands for using and setting up the boot

Functionalities

based on discord.py library


GaBot is Open source project in python


How to install Gabot with Docker

What you need ?


Introduction

Reaction roles

Reaction roles allow you to easily add roles to teams on your discord server.


Twitch and Youtube notifications

Automatic notifications when a lecture or exercise stream starts and when a new video is published on Youtube from the subject.


Q&A System

People in dedicated channels can ask questions, and vote for them (by responses). The voting results are displayed in Discord threads. If the question is answered, it can be “archived”, i.e. moved to another designated channel.


Deadlines

Functionality is focused on creating deadlines for credits, projects, assignments, and any other events. In addition, you can cancel any date or view all active dates.


Adding and Tracking points

The scoring functionality ensures that students can see their points from the discord subject. On the contrary, according to the discord role, the teacher has the power to add points to the students.


Automatic notification for changes

Automatic notifications for subject page notifications.


Commands


Prefix

Bot has a prefix dash -


Help

-help | h

Displays all bot functionalities with their descriptions. The Example shows a listing after executing the help command

Example

• deadline
Command to set deadline notifications
He has other commands

• youtube
Command for youtube toggle
He has other commands

...

Reaction roles

-reaction_roles | rr

Commands to display all commands for reaction roles functionality. This command is used with other functions for reaction roles.


toggle

-rr toggle

Command to enable | disable reactions roles on your server. After executing the command bot sends a message to the channel that you have enabled reaction roles.

Example

-rr toggle 

channel

-rr channel [channel]

Command to set up a channel where the bot displays the option to select roles by responding to emoji. If you do not specify a channel, the bot will list the role selection to the channel you are in.

Example

-rr channel 

-rr channel general

add

-rr add <emoji> <role>

The command is used to add a role under a specific emoji to reaction roles.

Example

-rr add :joy: @example

remove

-rr remove <emoji>

The command is used to delete roles from reaction roles.

Example

-rr remove :joy:

Deadline

-deadline | dl

Commands to display all commands for deadline functionality.


create

-dl create <name> [args...]

This command is used to create a deadline. In the form -dl create [deadlin name] [dd / mm / yy HH / MM / SS] [dd / mm / yy] days of notification.

Example

-dl create "Project 1" "1/11/21 23:59:59" "1,2,5"

edit

-dl edit <name> [args...]

The command is used to change deadline settings.

Example

-dl edit "Project 1" "1/12/21 20:00:00" "1"


showall

-dl showall

The command displays a list of all active deadlines.


end

-dl end <deadline_name>

The command is used to cancel the deadline.

Example

-dl end "Project 1"

endall

-dl endall

The command is used to cancel all deadlines.


Youtube and Twitch

-youtube | yt -twitch | tw

Commands to display all commands for youtube and twich functionality.


toggle

-yt toggle -tw toggle

Use these commands to turn Twitch and youtube notifications on and off.


status

-yt status -tw status

Use these commands to find out if you have twitch and youtube notifications on or off.


Q&A System

-question | q

Commands to display all commands for the Q&A system.


create

-q [create|c] <question>

Command to create a question. The created question will be displayed in the active thread. Creates new question, wrap question into “ “ for question with spaces.

Example

-q c "How is the weather today?"
-question create "How are you today?"

answer

-q [answer|a] <answer>

The command is used only inside the active question thread. Wrap answer into “ “ for question with spaces. Answers (resolves) question.

Example

-q a "bad"
-question answer "good"

remove

-q [remove|r|delete|d]

Removes question. The command is used only inside the active question thread.

Example

-q r 
-q remove
-q delete 
-q d

answer-emoji-marked

-q [aem|answer-emoji-marked] :emoji:

Scans all messages with a given emoji from the solver of the question in the thread and takes them as an answer. The command is used only inside the active question thread. After answering, the question is automatically deleted from the channel with active threads and moved to the archive, and sent to the author in the DM.

Example

-q aem :joy:

Notifications

-question | q

Commands to display all commands for Notifications. Beware. Every command mentioned below is secured by specific validation. The user is unable to run a command if params or situation is not suitable for them. Users will be also notified of what error was made, and how to fix it.


notify

-[notify|sn]

Command to display all commands for notify/scheduler actions.


params_info

-notify params_info

This command will return a list of all set notification parameters for the guild, from which is this command called. If some parameter is not set, his value will be „empty“.

Example

-notify params_info

set_api_url

-notify set_api_url [args...]

This command is used for setting the parameter Api URL (URL we will request for data). If the parameter is already set, his value will be updated. Set URL must start with HTTP:// or „HTTPS:“.

Example

-notify set_api_url https://kokos.free.beeceptor.com/

set_requests_time_minutes

-notify set_requests_time_minutes [minutes]

The command is used for setting requesting interval values in minutes. If the parameter is already set, his value will be updated. Value can contain only numbers and the value must be >= 1.

Example

-notify set_requests_time_minutes 5

set_requests_subject_shortcut

-notify set_requests_subject_shortcut [args...]

The command is used for setting shortcuts to the wanted subject. The parameter is used to filter obtained data through request. The used value must have a length of at least 1.

Example

-notify set_requests_subject_shortcut MSUS

add_notify_info_channels

-notify add_notify_info_channels [args...]

The command is used for setting an array of information channels (channels, where we post info about news, obtained through request). Input must contain at least one channel that belongs under guild, from which is this command called (but can contain more of them).

Example

-notify add_notify_info_channels general info spam

remove_notify_info_channels

-notify remove_notify_info_channels [args...]

This command is used to remove already set info channels. You can remove one or more of them. Input must contain at least one channel, and the channel must be already in an array of set info channels.

Example

-notify remove_notify_info_channels general info spam

add_notify_system_error_channels

-notify add_notify_system_error_channels [args...]

The command is used for setting an array of system error log channels (channels where we post occurred system error). Input must contain at least one channel that belongs under guild, from which is this command called (but can contain more of them).

Example

-notify add_notify_system_error_channels general info spam

remove_notify_system_error_channels

-notify remove_notify_system_error_channels [args...]

This command is used to remove already set system error channels. You can remove one or more of them. Input must contain at least one channel, and the channel must be already in an array of set system error channels.

Example

-notify remove_notify_system_error_channels general spam

set_start_stop_requesting

-notify set_start_stop_requesting [args...]

The command is used to start or stop requesting API URL for this particular guild, from which is this command called. Note, that if you want to start requesting there is one condition. Every notify parameter must be already set (not „empty“). To start requesting use parameter true and to stop false.

Example

-notify set_start_stop_requesting true

Adding and Tracking points

-pts

Commands to display all commands for adding and tracking points.


show

-pts show

Reading points of a specific user from the database and listing points in the format ‘Points’: {number of points}.

Example

-pts show

add

-pts add [user] [points]

Command to easily add points for a specific user directly using the discord bot.

Example

-pts add @user1 20

API_URL

A link to an API to which you can make a POST request for points