Giter Club home page Giter Club logo

attendancebot's Introduction

AttendanceBot

Discord bot that tracks reactions to message and adds it to Google Sheet worksheet. Allows the ability to cap reactions on Google Sheets.

Table of contents

General Info

The need arose where tracking attendance for node wars in (Black Desert Online) BDO for certain node sizes. The bot will track what the reaction of ✅.

Where ✅ means the an individual has the intention to show up for node war on given day.

Technologies

Bot is created with:

  • Python version: 3.8.5
  • Python-dotenv version: 0.15.0
  • Discord.py version: 1.5.1
  • Google-api-python-client version: 2.1.0
  • Gspread version: 3.6.0
  • Schedule version: 1.1.0

Setup

To run this bot, install these packages locally using pip:

$ pip install -r requirements.pip

Copy link https://discord.com/api/oauth2/authorize?client_id=747298773130149948&permissions=525440&scope=bot

Select your server and invite the bot.

DON'T FORGET TO RESTRICT BOT TO THE CHANNEL YOU WANT TO KEEP ATTENDANCE

Features

List of current features in v2.2.0.0

  • Keep track of ✅ reactions on discord only.
  • Record reactions on Google Sheet using Google API v4.
  • Command !cap changes the cap on the amount of reactions accepted by the bot.
  • Members past cap will be added to waitlist.
  • On cap being raised, all members on waitlist will be added to sheet.
  • Custom help command

Contact

Created by @Zwivix - feel free to contact me!

attendancebot's People

Contributors

zwivee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

attendancebot's Issues

Attendance look up change to column title

When the bot finds a name it should look for the column matching the days of the week instead of counting down the columns.

This would allow the users to add columns in between the names and the days of the week without breaking the bot.

Implement custom help command

Default help command was removed v1.0.0, but custom help command has never been added. Its time to add a costum help command.

Decoupling functions from files

Currently all functions are happening on the same file. Google sheets calls and set up should be done in its own file, and discord things should be done in their own separate files.

Possibility of the need to have one class do one task.

Regex returns only first result.

Since the regular expression only returns only the first result of the in-game name. Regex should only return 'whole-word' results. There is a way to get regex to only return whole words.

RaidenGTRBest

Users name was "RaidenGTR"Best friend of Shino

Why did the Best get taken.

Need list of people after cap cut off

When the bot reaches the cap cut off, there's a chance that people untick yes, and the bot should add the people that are on the wait-list to the attendance.

It should also pm the list to admins around time for node war

Node war size resets every day

We only node war wed, thurs, friday, and sunday. No need to reset every day. Especially when attendance is posted before 6pm, which is when the current bot resets the cap anyway.

Possible Solution: Add fields for valid node war days, and only reset on valid node war days.

nw_weekday has unbound local error

calculate_weekday_from_announcement might be the function that causes the problem.

will have to add global nw_weekday before making any assignments in function

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.