This Discord bot is to give timely notifications to Students in the Lakehead CS 2021 Guild

Overview

Discord-Bot

Goal of Project

The purpose of this Discord bot is to give timely notifications to Students in the Lakehead CS 2021 Guild.

How can I contribute?

Make a fork of the project pick an issue or open a new one outlining the feature or bug you are fixing. Make your modifications and then open a pull request so it can be added to the repo! Even if you are fixing a typo or changing the README.md all contributions are welcome!

Resources and API's

Recource List

API List

Comments
  • Bug: Runtime error co routine was never awaited

    Bug: Runtime error co routine was never awaited

    After pull request #30 When the EventScheduler function schedule_events(self) is called it gives the following error:

    /home/paulmolczanski/playground/Discord-Bot/src/__main__.py:83: RuntimeWarning: coroutine 'Loop.__call__' was never awaited self.schedule_events() RuntimeWarning: Enable tracemalloc to get the object allocation traceback

    Steps to reproduce:

    1. Set up .env
    2. Setup credentials.json
    3. Remove restriction that schedule_events(self) can only be run at 6 am
    bug 
    opened by Paulmski 5
  • Feature request: Study groups

    Feature request: Study groups

    User types a command asking people if they would like to join the study group by replying to the event with yes it would create a time for designated users to join the study group chat letting people organize themselves easily

    enhancement 
    opened by cronix1000 4
  • Feature Request: Migration over to Pycord

    Feature Request: Migration over to Pycord

    What is the feature you would like to request?

    With the discord.py library abandoned , it would be ideal to move the codebase over to a library with support and maintenance. In the future, changes such as Slash Commands and inability to read messages without approved intent will cause Bots using the library to stop working.

    As a proactive step in keeping this project functional, migration over to another Python Discord library is required. Luckily there is a fork of the old library called Pycord. It is actively maintained and supports new API features which I and other contributors have had to implement manually. These features include "slash commands, context menus, scheduled events, timeouts, and others."

    EDIT: This migration to Pycord should utilize its ~~alpha version~~ recently released beta-version if we want to have access to these new API features.

    pip uninstall discord.py
    pip install py-cord==2.0.0b1
    

    After reading various articles and Discord developer blogs, the deadline to make this migration before the loss of Bot functionality is April 2022.

    How would this feature work?

    Based on the Quick Examples section in the PyCord README.md and Bot sample, very little of our actual codebase has to change. The code we currently have could be migrated over without difficulty.

    We could even refactor some of our code (such as event scheduling) to use the new API features in PyCord. After making these changes, amendments to the current documentation will need to be made to reflect the use of the new library.

    enhancement 
    opened by tuanyvan 3
  • Major bug fixes and minor code quality enhancements

    Major bug fixes and minor code quality enhancements

    Major Changes

    • Improved handling of study group titles and special characters in titles.
    • Added docstrings for !help command
    • Added !version command to see the current version.
      • Releases will be tagged with a version for all future releases.

    Minor Changes

    • Minor formatting fixes
    • Refactored sheet_parser.py to be more reusable.

    TODO:

    I have done my best to check for bugs and possible security vulnerabilities, but I am definitely imperfect. Those who I've requested a review from if you could give this release a thorough once over so that we don't have to do any more frantic bug fixes that would be much appreciated. Ideally, this pull request can be reviewed and merged by tomorrow morning.

    opened by Paulmski 3
  • Feature request: Free code camp resource lookup

    Feature request: Free code camp resource lookup

    Possibly have a feature that has the user say a topic for example sql then it goes through the free code camp tutorials and gives back a video for that topic or if not free code camp just a top rated youtube video

    enhancement 
    opened by cronix1000 3
  • Feature request: Event Timetable

    Feature request: Event Timetable

    We used google spreadsheets throughout semester one to keep track of all of our assignments and tests but making a bot to do it for us is a lot more efficient! Our beginning objective is to make the bot automatically list events that will show what classes we have for the week and what room they are in. This will let students click the event tab and see what time the class is, what room it's in, and a description of what we're going to be learning

    Features

    • Automatically add events (Date, class, room number, description...)
    • Let people interact with the event in case class is postponed or canceled

    Any other ideas feel free to add them below!

    enhancement 
    opened by dominik-merdzik 3
  • Added !list courses functionality

    Added !list courses functionality

    by typing !list courses, the bot sends all the courses in the semester with their name and course code by typing !list courses=comp, the bot sends all the COMP courses, same with !list courses=math and sending the MATH courses

    Theres still some cleaning up to do in regards to the logic and error handling messages if the user gives an invalid message, which ill touch up at a later date, just wanted to get this out for some base functionality

    image

    opened by hylianmike 2
  • Bug: Repeating headers for !list

    Bug: Repeating headers for !list

    Describe the bug...

    When calling !list for one of our classes, the Bot repeats the header of the first class twice.

    To Reproduce...

    Detail the steps to reproduce the behavior:

    1. Call !list all

    2. Note the unexpected behavior. image

    3. Call !list COMP1006

    4. Note the unexpected behavior, image

    Expected Behavior

    The heading should only show up once for every class. image

    bug 
    opened by tuanyvan 2
  • Feature Request: custom help command

    Feature Request: custom help command

    As the Bot expands it is important to make command options transparent to the user. A custom help command would mean centralizing general information about commands into the help function.

    The descriptions should be concise, but convey necessary information about using the bot to the user.

    While I only briefly reviewed this code it may be of some help.

    documentation enhancement 
    opened by Paulmski 2
  • Create templates

    Create templates

    To make creating issues easier, to make and read. It would be useful to create templates/checklist for different kinds of issues, bug reports, and pull requests.

    For example, a pull request template could be:

    1. What is the purpose of the pull request?
    2. Is this feature or fix complete? (otherwise, a separate branch will be created for it)
    3. Does your code compile?
    4. Have you added the appropriate tags?

    In the long run, this will help streamline interactions and will allow for less wasted time trying to figure out what a person is trying to do or say.

    documentation 
    opened by Paulmski 2
  • Feature Request: Create profile asset

    Feature Request: Create profile asset

    We need a profile picture for the bot. If you have a suggestion for a profile please leave a comment here. After reviewing the submitted assets we'll pick one and integrate it into the next version!

    enhancement 
    opened by Paulmski 2
  • Bump certifi from 2021.10.8 to 2022.12.7

    Bump certifi from 2021.10.8 to 2022.12.7

    Bumps certifi from 2021.10.8 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Feature Request: log channel

    Feature Request: log channel

    What is the feature you would like to request?

    In order to make monitoring of the bot easier it would be beneficial to have a dedicated log channel on the discord available to admins to easily see logs of the bot.

    How would this feature work?

    The log outputs in the script would have to be pipped somehow into a text channel. Specifics still unknown.

    enhancement 
    opened by Paulmski 0
  • Feature Request: Announcement based on year level

    Feature Request: Announcement based on year level

    What is the feature you would like to request?

    Instead of @everyone for morning announcements it would be more useful to have it specific to the year each person is in on the discord. For example, year one students would be tagged with @year1 vs year 2 students would get an announcement starting with @year2. This would help give more useful information to people without clogging up their notifications.

    How would this feature work?

    Based on which part of the spreadsheet the announcement is coming from the bot would use the correct @ for the students (e.g. @year1, @year2, @year3, @year4)

    OPTIONAL: What part of the Pycord framework can we use to solve this problem?

    This shouldn't require any extra usage of Pycord.

    Notes

    Every student would be given a tag based on which year they are in and the spread sheet would have to be modified to accommodate multiple student years course loads

    enhancement 
    opened by Paulmski 0
  • Feature Request: Dynamically change class or assignment times with commands

    Feature Request: Dynamically change class or assignment times with commands

    Now that there's integration for both classes and assignments I think the next step is allowing for those events and/or assignments to be modified with commands. After doing some research there appears to be built-in command parsing for the discord.py library. Command group documentation Video explanation

    I'm not quite sure how the commands structure would be arranged or perhaps subcommands aren't even necessary. An idea that comes to mind could be a structure like so: !delay {Assignment name} {number of days delayed}

    In addition, if the command gets let's say 5 thumbs up reactions (this number could be adjusted) the google sheet is adjusted to reflect the change.

    enhancement 
    opened by Paulmski 5
Owner
null
A Discord chat bot for the Tardsquad guild (Discord name for server).

Tardsquad Discord Bot A Discord chat bot for the Tardsquad guild (Discord name for server). Resouces Discord Developer Portal A general tutorial for a

Tardsquad Quality Code Inc. 4 Jul 26, 2022
A bot that connects your guild chat to a Discord channel, written in Python.

Guild Chat Bot A bot that connects your guild chat to a discord channel. Uses discord.py and pyCraft Deploy on Railway Railway is a cloud development

Evernote 10 Sep 25, 2022
A Discord bot written in Python to help with guild administration

forgotten-hydra A Discord bot written in Python to help with guild administration. External libraries Pycord-Development/pycord 1.7.3 djc/couchdb-pyth

null 1 May 14, 2022
Discondelete, is a Discord self-bot to delete dm's or purge all messages from a guild.

Discondelete Discondelete, is a Discord self-bot to delete dm's or purge all messages from a guild. Report Bug · Request Feature Table of Contents Abo

core 4 Feb 28, 2022
A self-bot for discord, written in Python, which will send you notifications to your desktop if it detects an intruder on your discord server

A self-bot for discord, written in Python, which will send you notifications to your desktop if it detects an intruder on your discord server

LevPrav 1 Jan 11, 2022
A discord bot providing notifications of player activity on a minecraft server.

tos-alert A discord bot providing notifications of player activity on a minecraft server. Setup By default the app does not launch and will crash with

null 1 Jul 22, 2022
A simple python discord bot which give you a yogurt brand name, basing on a large database often updated.

YaourtBot A discord simple bot by Lopinosaurus Before using this code : ・Move env file to .env ・Change the channel ID on line 38 of bot.py to your #pi

The only one bunny who can dev. 0 May 9, 2022
A Telegram Repo For Devs To Controll The Bots Under Maintenance.This Bot Is For Developers, If Your Bot Is Down, Use This Repo To Give Your Dear Subscribers Some Support By Providing Them Response.

Maintenance Bot A Telegram Repo For Devs To Controll The Bots Under Maintenance About This Bot This Bot Is For Developers, If Your Bot Is Down, Use Th

Vɪᴠᴇᴋ 47 Dec 29, 2022
A Telegram Repo For Devs To Controll The Bots Under Maintenance.This Bot Is For Developers, If Your Bot Is Down, Use This Repo To Give Your Dear Subscribers Some Support By Providing Them Response.

Maintenance Bot A Telegram Repo For Devs To Controll The Bots Under Maintenance About This Bot This Bot Is For Developers, If Your Bot Is Down, Use Th

Vɪᴠᴇᴋ 47 Dec 29, 2022
Insane Weather Bot is here! Give suggestions, fork, and do much more to help us enhance the abilities of Insane Weather Bot.

Insane_Weather_Bot Insane Weather Bot is here! Give suggestions, fork, and do much more to help us enhance the abilities of Insane Weather Bot. Weathe

null 1 Jan 2, 2022
Satoshi is a discord bot template in python using discord.py that allow you to track some live crypto prices with your own discord bot.

Satoshi ~ DiscordCryptoBot Satoshi is a simple python discord bot using discord.py that allow you to track your favorites cryptos prices with your own

Théo 2 Sep 15, 2022
A simple python bot that serves to send some notifications about GitHub events to Slack.

github alerts slack bot ?? What is it? ?? This is a simple bot that serves to send some notifications about GitHub events to Slack channels. These are

Jackson Alves 10 Dec 10, 2022
Upvotes and karma for Discord: Heart 💗 or Crush 💔 a comment to give points to an user, or Star ⭐ it to add it to the Best Of!

?? Reto Reto is a community-oriented Discord bot, featuring a karma system, a way to reward the best comments, leaderboards, and so much more! React t

Erik Bianco Vera 3 May 7, 2022
🌶️ Give real chat boosting to your discord server.

Chat-Booster Give real chat boosting to your discord server. ✅ Setup: - Add token to scrape messages on server that you whant. - Put the token in

&! Ѵιchy.#0110 36 Nov 4, 2022
E-Commerce Telegram Bot for UCA Students

ucaStudentStore To buy from and sell to other students Features Register the first time, after that you will always be recognised You can login either

Shukur Sabzaliev 5 Jun 26, 2022
A telegram bot that can upload telegram media files to anonfiles.com and give you direct download link

✯ AnonFilesBot ✯ Telegram Files to AnonFiles Upload Bot It will Also Give Direct Download Link Process : Fork This Repositry And Simply Cick On Heroku

Avishkar Patil 38 Dec 30, 2022
A simple python oriented telegram bot to give out creative font style's

Font-Bot A simple python oriented telegram bot to give out creative font style's REQUIREMENTS tgcrypto pyrogram==1.2.9 Installation Fork this reposito

BL4CK H47 4 Jan 30, 2022
It's a Discord bot to control your PC using your Discord Channel or using Reco: Discord PC Remote Controller App.

Reco PC Server Reco PC Server is a cross platform PC Controller Discord Bot which is a modified and improved version of Chimera for Reco-Discord PC Re

Arvinth Krishna 12 Aug 31, 2022
A small and fun Discord Bot that is written in Python and discord-interactions (with discord.py)

Articuno (discord-interactions) A small and fun Discord Bot that is written in Python and discord-interactions (with discord.py) Get started If you wa

Blue 8 Dec 26, 2022