Giter Club home page Giter Club logo

hidnama-bot's Introduction

HiDnama Bot Build Status

Installation

Install makefile

Linux:

$ sudo apt-get update
$ sudo apt-get install make

Mac:

$ brew install make

Install HiDnama

$ make install

Usage example

Development setup

Dependencies

  • Pydub 0.24.1 - Manipulate audio with a simple and easy high level interface
  • ffmpeg - A complete, cross-platform solution to record, convert and stream audio and video.
  • Discord.py - Is a modern, easy to use, feature-rich, and async ready API wrapper for Discord.
  • GoogleDrive API - Allows you to create mobile, web, and desktop apps that read, write, and sync files in Google Drive.

hidnama-bot's People

Contributors

amand-io avatar gabrielfelipeg avatar igorlimam avatar rrfreitas avatar thulio-carvalho avatar

Stargazers

 avatar  avatar  avatar

Forkers

thulio-carvalho

hidnama-bot's Issues

Carregar os áudios em uma thread separada da qual o bot inicia

Atualmente o bot precisa baixar os áudios e carregar na lista para depois iniciar, não há tanto problema inicial porque o bot não tem mais funcionalidades, mas seria interessante esse download acontecer em paralelo para não blockar as outras futuras funcionalidades.

Trocar utilização do print por logging

Descrição

Em diversos trechos de código no projeto é utilizado chamadas à função print do python.
Essa issue é referente à troca de qualquer chamada ao print no código pela utilização das chamadas ao módulo logging.

Motivação

A utilização de print não é desejável por não fornecer uma estrutura clara de como categorizar qual tipo de informação está sendo exibida (por exemplo, INFO, ERROR, DEBUG, etc.). Além disso, o print pode causar problemas quando utilizado em aplicações com múltiplas threads, fazendo com que seja necessário o flush (algo como print('<msg>', flush=True) ou sys.stdout.flush()).

Os problemas provenientes de print podem ser resolvidos utilizando o módulo logging do python, que nos fornece uma forma mais elegante de exibir informações na saída padrão ou em arquivos de log.

Como pode ser implementado

Segue abaixo alguns links úteis para auxiliar o desenvolvimento desta issue:

Criar um módulo de configuração de logs para substituir todos os prints dentro dos módulos.

Descreva a feature em detalhes

Python oferece uma ferramente chamada logging, que, de forma simples, oferece meios de criar logs do código. Sua configuração pode ser feita um módulo separado e todos os outros módulos dentro de um mesmo pacote podem aproveitar as configurações estabelecidas previamente.

Necessidade da feature:

Prints no meio do código são uteis para um debug primitivo durante o desenvolvimento, logging, por outro lado, oferece debugs sofisticados. Tendo em vista que o bot roda como um daemon, fica complicado ter acesso a esses prints em tempo de execução. A forma padrão de lidar com isso é implementando logs e joga-los em um local externo (arquivo de texto ou qualquer outra coisa).

Resumo da ópera: logging é o print dos cavalheiros.

Como ela pode ser implementada:

Costumo usar esse guia para conhecer a ferramenta, a documentação do logging ajuda bastante quanto ao que pode ou não ser logado e como logar. Para padrões sugiro o padrão Apache de loggins, claro, não é necessário fazer tal qual está nesse padrão, mas é um ótimo alicerce.

Contexto adicional:

Quanto mais cedo houver essa transição para logs, mais simples será de mantê-los, até porque dificilmente acertaremos um bom padrão na primeira tentativa e, mesmo com poucos módulos, atingir bons logs é uma tarefa cansativa na base da tentativa e erro.

Criar módulo para particionar um track de áudio

Esse módulo deve receber um arquivo de áudio e particionar o áudio em outros arquivos. O áudio de entrada possui várias frases que são ditas com uma breve pausa entre frases, cada áudio de saída deve conter uma frase isoladamente.

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.