Git Product home page Git Product logo

discordbot's Introduction

DiscordBot

This bot is meant for programmers and all others which spend a lot of time in front of their screen. The purpose of this bot is to remind the user to not forget to hydrate and to stretch. This should help the user to maintain these two things while working on the computer.

By now the bot reminds the user every 30 minutes alternately to ether hydrate or stretch by default, however, the user can also set a custome time via the command mentioned below. The bot chooses its response from a pool of messages to avoid dull behavior.

The bot reacts on five commands by now.
!on activates the bot
!off deactivates the bot
!set_time set a custome reminder time in minutes
!help provides information on how to use the bot and its commands
!info provides information about the bot and what it's supposed to do

discordbot's People

Contributors

c-schicho avatar

Watchers

 avatar

discordbot's Issues

set up the bot

  • create a new python file named bot.py and one which holds the necessary token.
  • set up the client
  • create an on ready function which returns a message displaying that the bot is up and ready to work

storage for reminder messages

  • create a file or some kind of database for reminder messages.
  • integrate it to the current program and save the current messages in it.

implement tinydb

add a tinydb and store the necessary variables for the particular user there.

  • if a user interacts with the bot, it should run a query to check whether the user is known or not.
  • if the user is not known, an entry with initial parameters should be created.
  • if the user is known, the necessary entry should be requested from the db.

in the end it should be possible to store the settings of multiple users and to run a query to get this stats whenever they are needed.

implement reminder

implement the functionality to remind the user to hydrate and stretch.

when the user activates the bot, it should remind the user on a regularly basis
for this call the corresponding functions #4 #5 every 30 minutes from the point the user activates the bot.
ensure that the bot stops reminding the user once the user deactivates it.

bot name

change the bot name so that is sound more like a serious project.
also change / add the name in the response of the !info command.

bot avatar

change the bots avatar in order to make it look more cute.

define inital bot commands

create some initial bot commands to allow the user to interact with the bot.

  • !on should activate the bot
  • !off should deactivate the bot
  • !info should send a message to the user containing information on what this bot is meant to do

exception handling command on

the command on throws occasionally exceptions when the user calls the on and off command one after the other within a short period of time, see the screenshot below. when this is happening, the program does not crash, however, the bot is not responding and, thus the user has no information about what's happening.

  • improve the off command, change remind_user.stop() to remind_user.cancel()
  • catch exceptions thrown in on command.
  • provide an error message to the user if an exception is thrown.

#35

refactor message import

import the message file as Msg in order to make it more obvious what's a message and to improve readability.

update help messages

update the messages which is sent when the user uses the command !help in order to explain how to interact with the bot and what it is supposed to do.

create stretch function

create a function which reminds the user to stretch.

note: this function should not be called by now.

exception handling command off

the command off throws occasionally exceptions when the user calls the on and off command one after the other within a short period of time, see the screenshot below. when this is happening, the program does not crash, however, the bot is not responding and, thus the user has no information about what's happening.

  • improve the off command, change remind_user.stop() to remind_user.cancel()
  • catch exceptions thrown in off command.
  • provide an error message to the user if an exception is thrown.

#34

add reminder messages

add further messages to the storage in order to be possible to choose from a variety of answers

tasks before making public

before making this repository public remove the .env and all information about it, also remove the discord link in #1 .

add set reminde time command

  • add a new command !set_time that allows the user to set a custom time gap
  • adopt the functionality in order use the provided time

implement message choosing

implement a function which chooses a random reminder message which gets send to the user and call it.
this function should select the message from the corresponding storage.

create hydrate function

create a function which reminds the user to hydrate.

note: this function should not be called by now.

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.