Giter Site home page Giter Site logo

karmakamikaze / discordbotsw20 Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 1.53 MB

A discord bot written in Python, developed in collaboration by the Software Engineering students at AAU.

License: GNU General Public License v3.0

Python 100.00%
discord discord-bot bot chatbot python3

discordbotsw20's Introduction

DiscordBotSW20

Releases Build Issues visitors

A discord bot written in Python, developed in collaboration by the Software Engineering students at AAU.

About the structure

This Discord Bot uses Discord.py and its command extension. All discord commands are structured in Cogs.

Local Development Instructions

To start and deploy the bot locally the following steps are required:

pip install -r requirements.txt

Then create the following files:

.env
.env.debug

The .env.debug file is only parsed when you set an environment variable DEBUG. If it is not present it will revert to .env

Contents required for the .env or .env.debug file:

DISCORD_BOT_TOKEN=YOUR_SUBER_SECRET_DISCORD_TOKEN

If you want to make use of the reddit commands you also need to register an App/Bot on reddit.com and add the following lines to the .env files:

REDDIT_APP_ID=YOU_APP_ID
REDDIT_APP_SECRET=SUPER_SECRET_REDDIT_APP_SECRET

If you want to use nodemon to automatically restart the bot while developing, create a nodemon config as well:

# ./nodemon.json:
{
  "env": {
    "DEBUG": "true"
  }
}

otherwise you can call the bot via:

export DEBUG=True python main.py

Note: export is required when you want to create the environment variable for the current shell AND all processes started from the current shell!

discordbotsw20's People

Contributors

karmakamikaze avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

discordbotsw20's Issues

Server achievements

Achievements for doing specific things in the server, like:

  • Joining a hidden channel
  • Reaching a certain amount of messages in chat channels
  • Name change
  • Assigning self-assignable roles to oneself
  • Other easter eggs...

Make an embed builder or embed class

Make an embed builder or embed class to create embeds for all functions that output to chat. We don't want to manually embed in every function. Instead we call a builder or class when outputting to chat.

Schedule functionality inspired the Apollo bot

To create the first event with the bot, a user should issue the !event command somewhere on the server.
All events will then be posted into what we call Event Channels. The first time a user issues the !event command, the bot will create an Event Channel for them. They are free to rename this channel and can create additional Event Channels with the !channel command.

The bot should then direct message you a series of prompts to build the event.

The bot will ask for…

  • Title
  • Description
  • Signup options
  • Capacity
  • Your timezone
  • Start time
  • Duration / end time
  • Whether or not the event should repeat
  • Advanced options

The bot should only wait around for ~5 minutes between each message, so if you take too long, the event creation flow must cancel.

Assuming all goes well, the bot should finish event creation by posting the newly created event in the Event Channel. Users in the channel should be able to RSVP to the event by clicking on the emoji reactions that the bot added to the event.

If you’d like to delete the event, you should be able to do so by clicking on the 🗑️ emoji. By default, only the event organizer or a server member with the Manage Server permission should be able to delete events.

Additions:

Custom signup options:
If a server contains a set of custom emojis, it should be allowed to use these as RSVP to the events. Animated emojis will only be supported if bots does not require a Nitro subscription.

Event attendance restriction:
It should be possible to restrict events to certain roles only. If a restriction is applied, only that role can react to the event.

Event images:
The events should support embedded images. A user should be able to upload an image directly to the private message during creation or link to an external image.

Event colors:
It should be possible to change the event colors to differentiate between multiple event types. An embed builder should be able to handle this.

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.