GithubHelp home page GithubHelp logo

terag / kadok Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 27.86 MB

Kadok is a bot developed for the Discord Guild "Les petits pedestres"

Home Page: https://terag.github.io/kadok/

License: GNU General Public License v3.0

Go 7.42% Makefile 0.09% Smarty 0.19% Dockerfile 0.09% JavaScript 0.08% Shell 0.13% HTML 91.99%

kadok's People

Contributors

sarlam avatar terag avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

kadok's Issues

Error with HTTPS on documentation page

Expected

The documentation is properly reachable on kadok.pedestres.fr using HTTPS.

Actual

There are errors when loading sub resources due to protocol mismatch with HTTP

Steps to reproduce

Go on https://kadok.pedestres.fr
The page does not load all the resources for a proper displaying

implement roll a dice function

What

Implement Roll a dice function that triggers following XdYY+Z convention

Why

To allow discord user to roll dices

Who would benefit

Users, Game masters

Functional criteria

  • It should follow standard conventions XdYY+Z
  • It should display the final result
  • It should display the details of the rolls

Proposal

p1: kadok dice 4d8+6
kadok: 22 | ([2] [6] [5] [3]) + 6

Add EditorConfig file to the project

What

it may be interesting to add an editorconfig file to enforce the new line behavior

Originally posted by @sarlam in #27

Why

EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs

Who will benefit

Developers

Technical Criteria

Add a status command

What

A command to display information about the bot should be available

Why

  • Communication around the project within discord
  • Help in gathering information when debugging the bot
  • Giving user the licences

Who will benefit

Project, Users, Developers

Functional criteria

the help function should display:

  • version of the bot
  • sha of the build commit
  • link to licenses used in the software
  • list of contributers
  • small description of the bot

proposal

as a proposal the command could be kadok tatan because:

Tatan, elle fait des flans.

Brice Fournier, Kaamelott, Livre II, 60 : Le Jeu du caillou, écrit par Alexandre Astier.

More idea where that comes from https://fr.wikiquote.org/wiki/Kaamelott/Kadoc

Add Characters

What

Add those characters to the bot:

  • Angharad
  • Anna
  • Appius Manilius
  • Attila
  • Père Blaise
  • Le roi burgonde
  • Caius Camillus
  • Calogrenant
  • César
  • Cryda de Tintagel
  • Dagonet
  • La Dame du Lac
  • Demetra
  • Élias de Kelliwic’h
  • Galessin
  • Goustan
  • Grüdü
  • Guenièvre
  • Guethenoc
  • Hervé de Rinel
  • Le Seigneur Jacca
  • Le Jurisconsulte
  • Le maître d’armes
  • Méléagant
  • Mevanwi
  • Roparzh
  • Lucius Sillius Sallustius
  • Séfriane d'Aquitaine
  • Le tavernier
  • Vérinus
  • Venec
  • Ygerne

Why

Members of the discord request it !

Who will benefits

  • Users

Automatically deploy in prod

What

On a release, the bot should be deploy automatically through github actions to a production environment

Why

Reduce the time between a line of code being written and being available for final users

Who will benefit

DevOps, Users

Technical criteria

  • #16 must be done
  • #17 must be done

to be refined

Automatically deploy in dev

What

Once a PR is approved and merged, the bot should be deploy automatically through github actions to a development environment

Why

Reduce the time between a line of code being written and being available for tests

Who will benefit

DevOps

Technical criteria

  • #16 must be done

to be refined

Make Roles configuration multi-guilds

What

The bot should be able to handle calls from multiple guilds and well manage the permission structure associated to these guilds.

Why

Due to current security implementation, the bot understand the roles hierarchy from one guild only. This can causes unexpected behaviors or accesses when called from different guilds.

Originally posted by @sarlam in #21

Who would benefit

Users

Functional criteria

It should use the current way of implementing roles hierarchy

Automatically produce and publish Docker image

What

Through github Actions, docker image should be produced published somewhere

Why

To ease the bot distribution and future deployment

Who will benefit

DevOps

Technical criteria

  • #15 must be done first

to be refined

Error in permissions verification

Expected

The security package allows to check if a permission is granted to a role and if the calling user has this role.

Actual

There is an error when checking an user roles' permissions that makes the bot's flow to crash.

Steps to reproduce

  • Set roles in a Discord Guild (for example create the role: "pirate")
  • Set roles hierarchy in the bot configuration and do not add the role "pirate"
  • Give an user the role pirate
  • The user call the bot

The bot may not respond due to an internal panic error because the role is not set in the hierarchy.

implement unit tests

What

implement tests for existing features

Why

The base code is small enough to have a good coverage now and keep it along the project

Who will benefit

Developers confidence

Technical criteria

to see with @Terag and @elBichon

Permission Inheritance in Actions hierarchy

What

Clear documentation and understanding of the Permissions inheritance in the actions-hierarchy.

Answer the question: Should a permission be inherited in the Actions hierarchy ?

Why

It mights lead to some issue if not documented well.

As of today there is no permission tree above the actions.

As an example that means :

  • parent action restricted to admin
    • chlid action 1 not restricted unless specified
    • child action 2 not restricted unless specified

Originally posted by @sarlam in #21

Who would benefit

Users, Developers

Functional criteria

It must be well documented and prevent from ambiguities.

Display a help message on `kadok help`

What

when invoking kadok help the user should be displayed a list of available commands

Why

to help the user navigate through the available commands

Who will benefits

Users

functional criteria

  • It should not include Kaamelott characters
  • It should list all the command per categories

Define and implements RBAC

What

bot commands should be conditioned by user roles and rights

Why

To allow implementation of commands to manage and moderate the bot or for the bot to access safely sensible information from third parties (minecraft)

Who will benefits

Bot operators, final users

Functional criteria

  • A list of roles should be available for PO, Developers and Admin of discord servers with access description
  • A command should always have a role associated to it
  • Per default a user should have a role Anonymous
  • When invoking a command with not enough rights it should display a message to the user

Smart Help Message

What

Have smarter help messages that provides an example for using the action by extrapolating the possible parameters of the action.

Originally posted by @Terag in #42

Why

it would give more accurate information to the user on how to use a command

Who will benefits

  • Users

Bot static internal strings to be templated

What

Have a template system with external templates files for bot's answers and commands

Why

Answers are hard coded, in near future we may want to investigate to have some template system with external templates files.

I would permit a better customization and translation of Kadok functionalities for the users.

Originally posted by @sarlam in #21

Who would benefit

Users, Developers

Functional criteria

A template format referencing all the customizable string must be documented

Make the bot multi tenant (multi server)

What

Make the bot able to handle multiple servers at the same time

Why

to open it to more people/server

Functionnal ciretria

  • Should be able to add the same instance to multiple servers

Automatically document this project

What

A full documentation should be available for both users and developers of the project.

Why

To help people use the bot as well as developer join the project

Who will benefit

Developers, Users

Functional criteria

  • The documentation should be available to user through a website
  • The dev documentation should be available within the repository
  • The dev documentation should includes all available commands
  • The user documentation should be automatically updated when the bot is updated

answering via a short youtube video given a text input

What

A command to display answer request with an ad hoc youtube video saying the text instead of writing text.

Why
To make interactions with the bot funnier

Who will benefit
Users

functional criteria

  • It should not include Kaamelott characters
  • It should display a video whose text is close to a real answer
  • If there is no actual good answer, a default answer that could work in any situation should be used

Create a Dockerfile

What

add a Dockerfile

Why

to insure the same behavior of the bot everywhere, ease it's development and prepare for it to be deployed anywhere

Who will benefit

DevOps

Technical Criteria

to be refined

Bot react to characters within words

What happens

Given a character (example lac) the bot will answer to words that contains that character (like J'ai une belle cadillac)

What should happen

The bot should ignore those sentences

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.