This project is based on discord.py and is meant to be a 'Quick Start Bot' to cut down on the time it takes to write complex discord bots.

Overview

Generic-DiscordBot

This project is based on discord.py and is meant to be a 'Quick Start Bot' to cut down on the time it takes to write complex discord bots.

NOTE: Written for python 3. Last updated [2020-12-20].


Features:

  • Full multi-server support
    • Per-server bot settings
    • Per-server command prefix
    • Global bot settings
    • Ban a user globally or a guild from using the bot
  • Useful bot admin utilites
    • Get invite to requested server
    • Have the bot echo your message
    • Detailed logging
    • Automated testing
  • Easy to add new commands and games
    • Add command aliases
    • Define permission levels
    • Set commands to DM only
    • Add command descriptions and usage information
    • No need to worry about restarting bot during any running games
  • Custom help messages based on user's permission level (superadmin, server admin, user)
  • Get notified if the bot is unable to access the database

And any other bot/server specific features you wish to write!


Version 1.0 Checklist:

  • Broadcast message to bot server admins
  • Switch help and settings commands to use interactive embeds
  • Enable/disable commands on global level
  • Enable/disable commands on server level
  • Restrict commands to certain channels on server level
  • Chunk and zip log files if size exceeds limit

Setup Instructions:

  1. Install Python Dependencies:

    $ python3 -m pip install discord.py
    $ python3 -m pip install pymysql
    $ python3 -m pip install asgiref
    
  2. Install MySQL:

  3. Place bot files directory in '/usr/local/lib/':

    • After placing the files, make update the file permissions
      $ sudo chown root:root /usr/local/lib/Generic-DiscordBot/src/DB_main.py
      $ sudo chmod 644 /usr/local/lib/Generic-DiscordBot/src/DB_main.py
      
  4. Set up discord bot user

    • Go to the discord developer portal create an application.
    • Create a bot user for your application.
    • Enable the 'Server Members Intent' setting under the 'Privileged Gateway Intents' section.
  5. Update the bot's settings:

    • Update the prefs.json file found in the /res folder.
    • If not present run the bot once to generate both the folder and file.
    • Bot tester client token is only necessary when running the tester bot.
  6. Allow bot's stop and start to be handled by systemd:

    • Place 'generic_bot.service' in '/etc/systemd/system/'
    • Then run:
      $ sudo chown root:root /etc/systemd/system/generic_bot.service
      $ sudo chmod 644 /etc/systemd/system/generic_bot.service
      
      $ sudo systemctl daemon-reload
      $ sudo systemctl enable generic_bot
      

Visit here to learn more about systemd and unit files

  1. Check if the bot's service is enabled properly:

    $ sudo systemctl list-unit-files | grep generic_bot
    generic_bot.service                enabled
    
  2. Start / stop the bot's service:

    $ sudo systemctl start generic_bot
    $ sudo systemctl stop generic_bot
    $ sudo systemctl restart generic_bot
    $ sudo systemctl status generic_bot
    

And you're done! The bot automatically creates all of the folders, files, and database tables it uses as needed.

Owner
Alec Ibarra
Texas A&M University - Electrical Engineering
Alec Ibarra
Telegram bot with various Sticker Tools

Sticker Tools Bot @Sticker_Tools_Bot A star ⭐ from you means a lot to us! Telegram bot with various Sticker Tools Usage Deploy to Heroku Tap on above

Stark Bots 20 Dec 08, 2022
This program is an automated trading bot that uses TDAmeritrades Thinkorswim trading platform's scanners and alerts system.

Python Trading Bot w/ Thinkorswim Description This program is an automated trading bot that uses TDAmeritrades Thinkorswim trading platform's scanners

Trey Thomas 201 Jan 03, 2023
Free and Open Source Machine Translation API. 100% self-hosted, no limits, no ties to proprietary services. Built on top of Argos Translate.

LibreTranslate Try it online! | API Docs Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on pro

UAV4GEO 3.5k Jan 03, 2023
This repository contains Python code examples using the MoneyMoov API

Python Examples This repository contains Python code examples using the MoneyMoov API. The examples are written to operate in the NoFrixion sandbox en

nofrixion 1 Feb 08, 2022
Python library for the eWarehousing Solutions API.

eWarehousing Solutions Python Library This library provides convenient access to the eWarehousing Solutions API from applications written in the Pytho

eWarehousing Solutions 2 Nov 09, 2022
Using AWS Batch jobs to bulk copy/sync files in S3

Using AWS Batch jobs to bulk copy/sync files in S3

AWS Samples 14 Sep 19, 2022
Another Autoscaler is a Kubernetes controller that automatically starts, stops, or restarts pods from a deployment at a specified time using a cron annotation.

Another Autoscaler Another Autoscaler is a Kubernetes controller that automatically starts, stops, or restarts pods from a deployment at a specified t

Diego Najar 66 Nov 19, 2022
Your custom slash commands Discord bot!

Slashy - Your custom slash-commands bot Hey, I'm Slashy - your friendly neighborhood custom-command bot! The code for this bot exists because I'm like

Omar Zunic 8 Dec 20, 2022
This automation protect against subdomain takeover on AWS env which also send alerts on slack.

AWS_Subdomain_Takeover_Detector Purpose The purpose of this automation is to detect misconfigured Route53 entries which are vulnerable to subdomain ta

Puneet Kumar Maurya 8 May 18, 2022
Slack Developer Kit for Python

Python Slack SDK The Slack platform offers several APIs to build apps. Each Slack API delivers part of the capabilities from the platform, so that you

SlackAPI 3.5k Jan 02, 2023
Facebook open graph api implementation using the Django web framework in python

Django Facebook by Thierry Schellenbach (mellowmorning.com) Status Django and Facebook are both rapidly changing at the moment. Meanwhile, I'm caught

Thierry Schellenbach 1.4k Dec 29, 2022
Acid's Utilities is a bot for my Discord server that alerts when I go live, welcomes new users, has some awesome games and so much more!

Acid's Utilities Acid's Utilities is a bot for my Discord server that alerts when I go live, welcomes new users, has some awesome games and so much mo

AcidFilms (Fin Stuart) 3 Nov 19, 2021
A Bot to Upload files to Many Cloud services. Powered by Telethon.

oVo MultiUpload V1.0 👀 A Bot to Upload files to Many Cloud services. Powered by Telethon _ 🎯 Follow me and star this repo for more telegram bots. @H

32 Dec 30, 2022
Telegram PHub Bot using ARQ Api and Pyrogram. This Bot can Download and Send PHub HQ videos in Telegram using ARQ API.

Tg_PHub_Bot Telegram PHub Bot using ARQ Api and Pyrogram. This Bot can Download and Send PHub HQ videos in Telegram using ARQ API. OS Support All linu

TheProgrammerCat 13 Oct 21, 2022
troposphere - Python library to create AWS CloudFormation descriptions

troposphere - Python library to create AWS CloudFormation descriptions

4.8k Jan 06, 2023
Azure DevOps Extension for Azure CLI

Azure DevOps Extension for Azure CLI The Azure DevOps Extension for Azure CLI adds Pipelines, Boards, Repos, Artifacts and DevOps commands to the Azur

1 Nov 03, 2021
A in-development chatbot.

BackBot A in-development chatbot. How the chatbot works This is a simple chatbot that relies on the user input. It already has a (small) set of genera

1 Dec 03, 2021
Discord Token Creator 🥵

Discord Token Creator 🥵

dropout 304 Jan 03, 2023
A python to scratch API connector. Can fetch data from the API and send it back in cloud variables.

Scratch2py Scratch2py or S2py is a easy to use, versatile tool to communicate with the Scratch API Based of scratchclient by Raihan142857 Installation

20 Jun 18, 2022
Schedule Twitter updates with easy

coo: schedule Twitter updates with easy Coo is an easy to use Python library for scheduling Twitter updates. To use it, you need to first apply for a

wilfredinni 46 Nov 03, 2022