Giter VIP home page Giter VIP logo

sem-bot's Introduction

SEM-Bot

A Simple Event Manager bot for Discord!

Made for Discord Hack Week 2019.

Team

Category

Social: Why Social?

While this bot could be a little bit productive, maybe some management related stuff, the idea was to make a management system to engage a community. Thus, this bot is a social bot.

Features

This bot has the following features:

  • Event Creation and Management
  • Event Reminders
  • Points and Trophies Rank System

It is a simple bot, but it gets the job done and engages the community.

It is timezone-aware, and a guild can set a specific timezone to use.

Config

Locate config/config.py and configure as needed.

  • TOKEN : Your discord bot token
  • PREFIX : Default prefix
  • DESCRIPTION : No need to change this really
  • MANAGE_ROLE : Default manager role to create on guild join
  • ANNOUNCE_CHANNEL : Default announcement channel to create on guild join
  • TIMEZONES : Please don't change :)

Permissions

The bot needs the following permissions string: &permissions=1342565456&scope=bot

This includes the following permissions. Some may not be needed, but are added as a pre-caution.

  • Manage Roles
  • Manage Channels
  • Manage Emojis
  • Send Messages
  • Manage Messages
  • Embed Links
  • Attach Files
  • Read Message History
  • Add Reactions
  • Use External Emojis

Packages

The following external packages were used:

  • discord.py
  • sqlalchemy
  • sqlalchemy_utils
  • arrow
  • tabulate

Commands

  • register: Register a user to the bot
  • stats: View user stats. Optional: Can mention a user
  • leaderboard: View the top 15 users.
  • trophy
    • add
    • remove
    • value
    • info : View the current server values for all trophies and rewards

For each add, remove and set, you can specify a trophy type: Gold, Silver, Bronze.

For value, you may also specify Participation.

For add/remove, mention one or more users to apply it too. For value, you can set the value of a trophy server-wide.

  • event
    • make: Make an event with the following properties:
      • Title
      • Description
      • Channel to host the event
      • Max number of participants
      • Event Start Time (In Server's specified timezone, default to UTC)
    • info: View an event's info before it begins and be able to react again. Requires the event code (4 character code)
    • remove: Remove/Cancel an event early.
    • participants: Given event code, view all current participants.

When making an event, it will create an announcement message, from which you can react to it to join, leave, or get a ping reminder 15 minutes prior to event start.

  • guild: Some manager and owner only commands

    • setTimezone: Given a list of timezones, select one as the server timezone. Can also give a GMT offset instead.
    • setAnnouncementChannel: Give a text channel to be SEM's new announcement channel for the server.
    • setManagerRole: Give a role to be the new manager role for the server which can create events.
  • time: View current time information about the server

Basic commands (Not sub commands) base commands

Timezone selection timezone select

Trophy info and statistics values

Time Info time

Sample event event

And many more! Not all commands are shown as that would be a lot of screenshots. These are just some unique ones.

To Run

Pretty standard stuff.

Install the required packages: pip install -r requirements.txt

To Run: You can do this in a virtual env if you want to set that up, but to be quick and easy, configure config/config.py with your bot token and then just run bot.py.

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.