Code Monkey home page Code Monkey logo

scrumtime's People

Contributors

chrisvdg avatar grimpy avatar onsd avatar

Stargazers

 avatar

Watchers

 avatar

scrumtime's Issues

Update cron library

Update the cron library and test the behavior

I think the current version only supports the quartz-scheduler format while the newer version is either the Linux cron format (I guess this is more widely known) or can support both.

Improve verbose output

  • Make printing of sent messages only in verbose output
  • Print scheduled messages on startup
  • Add other useful logging

Add tests

No tests have been added as logic from this project itself is quite limited, it's mostly API interaction, but as features will be added the need to testing will rise.

  • Check and define where tests can be added and add them
  • Setup automated testing (e.g: travis)
    • Add deploy part to push binaries to release
  • Nice to have: add test coverage, test pass badges in the readme

Set timezone of docker image

Either find a way for the container using the scrumtime image to use the timezone of the host and/or document a way to set/change it.

Remove messages after timeout

To keep the chat cleaner add an option to clean the scheduled message up after a configured/default timeout.

If this feature is configured, after the message has been sent, start a go routine that counts down until the timeout has been reached and sent an API call to the chat platform to delete the message.

If the bot gets restarted while a timeout goroutine is running, it may prevent that message from being cleaned up, for this FR this is acceptable.

Allow empty messengers in a schedule

Allow empty messengers in a schedule, this would allow a message to be muted later on when adding the webhook or quickly comment out the messengers in the config to manually mute a message that might be used again later.

Could be done together with #7

Add docker file

  • Create docker file for the project
  • Adds docs how to start it with config

Read commands from telegram chats

Telegram part of #6

In the telegram we could use the GetUpdatesChan method of the bot api, this should prevent us from opening and publicly exposing a port for receiving callbacks on updates.

We could add a flag to the bot config to enable listening for updates.

The bot receives an update when in a chat the bot is in, a message starts with /
We can make all commands for the scrumbot start with /scrumbot , remove it from the command and pass it to functions that may not be telegram specific to process the command.
For slack we could make the bot listen for the bot being mentioned and remove the mention tag to process the command.

Create seperate list of messengers

In the config create a list of messenger configs.
In the message configs make it reference to the messenger configs to make messengers more easily reusable.

Interact with config through the chat

This is an issue to track all issues/features related to implement the first version being able to interact with the config through the chat.
If working on one or more of the features in this issue, please create a separate issue for it and reference it here. Check the feature when it is merged in master.

Implement for:

  • Telegram (#15)
  • Slack

Features to add with this functionality:

  • Help with available commands
  • List scheduled messages for the chat
  • Disable next (or define a date/datetime for it skip, e.g. skip a legal holiday in advance) scheduled message(s) and be able to re-enable them

Roadmap (Can de pushed to a later release):

  • Edit messages
  • Edit schedules
  • Add new schedules (scrumbot can be added to a new chat and from there users can configure now schedules without messing with the config)

Improve app config

The app config now consist of 2 top level parts: messengers for the chat platform api configs and schedules for the messages.
First idea was to rename schedules to a more logical messages but this can easy be mistaken with messengers.

Todo:

  • Update App struct and usage
  • Update documentation (readme)

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.