Git Product home page Git Product logo

twitch-giphy's Introduction

twitch-giphy

Um chatbot para Twitch que integra a API do GIPHY para aprender Typescript

Must Have

  • - Interagir com o chat no Twitch
  • - Capturar um comando específico dos usuários (tudo que começar com !giphy)
  • - Remover o !giphy e pegar o termo restante
  • - Enviar o termo restante para o GIPHY
  • - Retornar o primeiro GIF da API do GIPHY
  • - Renderizar o GIF na tela
  • - Remover o GIF da tela depois de 8 segundos
  • - Criar uma classe em Typescript para lidar com o chatbot/servidor
  • - Permitir outros atalhos para inserir o GIF na Live (!giphy, !gif, #)
  • - Alterar a tela do GIF (Browser) para exibir o Username + Balão estilo quadrinhos que cerca todo o GIF.
  • - Permitir determinar número de segundos diferentes para users normais e subscribers.
  • - Refatorar para permitir que todos os streamers DO MUNDO façam uso dessa MARAVILHA da natureza que REVOLUCIONA as Lives :)

Nice to have

  • - Fazer uma fila de GIFs para garantir que o GIF de todos será exibido
  • - Poder definir quem pode usar o comando (todos, só seguidores, só subs, VIPS, Mods, etc)
  • - README em Inglês
  • - Automatizar um deploy para AWS (sempre disponível)
  • - Implementar cooldown de X segundos para evitar FLOOD.
  • - Possibilitar integração com outras plataformas além do Twitch.
  • - Possibilitar o uso de múltiplos comandos (!gif, !giphy).
  • - Possibilitar definição de CUSTO para o comando (BITs, Pontos do Canal).

Configurando o Projeto

Configurando servidor

Antes de tudo você precisa configurar as opções de API da Twitch e do Giphy.

Crie um ficheiro de variáveis de ambiente (.env) idêntico ao ficheiro de exemplo e altere as informações de acordo com os valores abaixo.

  • TWITCH_USERNAME, seu username ou do seu bot
  • TWITCH_TOKEN, você pode obter através de https://twitchapps.com/tmi/
  • TWITCH_CHAT_CHANNEL, normalmente é o mesmo que seu username
  • GIPHY_RATING, aceita somente os valores 'y' | 'g' | 'pg' | 'pg-13' | 'r'
  • GIPHY_TOKEN, você pode obter através de https://developers.giphy.com/

Com esta configuração, quando o chatbot for implantado num serviço tal como o aws, netlify ou outra plataforma, somente será necessário definir estes valores na plataforma.

Configurando exibição

Para customizar a exibição, vá no arquivo client/index.html e procure por:

  • Não é necessário fornecer todas as opções, pois todos possuem um valor padrão de funcionamento
<script>
  window.addEventListener("load", () => {
    const options = {
      duration_default: 4, // Opcional: valor em segundos (Valor padrão é 4)
      duration_sub: 8, // Opcional: valor em segundos para subs (Valor padrão é 8)
      max_queue: 10, // Opcional: quantidade máxima de gifs na fila (Valor padrão é 10)
      separator: ":", // Opcional: separador entre o nome e mensagem (Valor padrão é :)
    };
    const twitch_giphy = new TwitchGiphy(options);
  });
</script>

Instalando as dependências

Abra o terminal no mesmo diretório em que consta o arquivo package.json, e execute:

npm i # forma curta de 'npm install'

Compilando o projeto

Abra o terminal no mesmo diretório em que consta o arquivo package.json, e execute:

npm run build

Executando o projeto

Abra o terminal no mesmo diretório em que consta o arquivo package.json, e execute:

npm start

twitch-giphy's People

Contributors

alexandreramosdev avatar fernandotdo avatar matheusalbino avatar

Watchers

 avatar

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.