Git Product home page Git Product logo

shazow-bot's Introduction

ShazowBot

Gitmoji Tests

ShazowBot is my personal chat bot for general and useless stuff. The main focus here is making the bot flexible enough to support any environment (discord, twitch, etc.) by simply implementing the message listener, message parser and action execution.

Package Structure

Codebase Description
Chat Normalizes multiple environments input/output
Server Bot implementation
Api Bot database management API
Front Bot database management front
Database Models and Repositories
Utils General utils

Settings

For .env settings, the following properties are needed:

  • MONGODB_CONNECTION_URL: MongoDb connection URL for storing/retrieving models.

  • DISCORD_TOKEN: Discord Bot Token.

  • TWITCH_USERNAME: Your bot twitch username.

  • TWITCH_TOKEN: Your TWITCH_USERNAME generated oauth token

For general (and not sensitive data), we use config.json:

  • prefix: Prefix used for commands

  • trollCommandThreshold: Troll commands are ignored since they generally dont mean anything besides trying to find problems inside the bot implementation. The threshold is the minimum message size for classifying it as troll

  • twitchChannels: List of twitch channels to connect with

Repository Commands

  • build: Build all packages
  • start: Start the bot
  • lint: Run linter
  • new command: Creates new command boilerplate

To see bot available commands, check out this folder.

shazow-bot's People

Contributors

tulioabreu avatar marcott avatar

Stargazers

 avatar yuki avatar

Watchers

 avatar

shazow-bot's Issues

Implementar comando de help para cada comando

Uso do comando:

$help <nome do comando>

O comando deve ter como parâmetro o nome de um comando, retornando como Output a o que ele faz e como usar.

O comando deve considerar na resposta a linguagem selecionada pelo usuário

Roadmap v1.0

Roadmap

  • Mockup
    • Landing page
    • Login
    • Page for listing common commands (including admin commands)
    • Page for listing server commands (if user is authenticated and is admin/mod, he should be able to edit, add or remove commands)
  • Webpage
    • Frontend
      • Interface for Material UI components library (making it easier to switch to own component library later)
      • Implement landing page
      • Implement login page
      • Implement page for listing common commands
      • Implement page for listing server commands
    • Backend
      • Authentication
      • List commands
      • Add commands
      • Edit commands
      • Remove commands

Organizar package.json

  • Certificar de que só tem dependências que são necessárias
  • Adicionar um husky para verificar problemas de teste e lint no pre-commit

Dar dicas em primeira mensagem

Quando o usuário fizer o primeiro comando, enviar uma dica explicando que é possível escolher a linguagem de output do bot

Fazer README

  • O que é
  • Qual função de cada package
  • Quickstart

Melhorar usabilidade do comando de poll

  • Depois de iniciar a poll, a cada X segundos, avisar que uma poll X está acontecendo e apresentar as opções para votar
  • Ao finalizar a poll, mostrar o resultado automaticamente

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.