Skip to content

Chatbot to send a message to a list of members in a room for Hangouts Chat

Notifications You must be signed in to change notification settings

renanpessoa/hangouts-chatbot-alias

Repository files navigation

Alias chatbot for Google Hangouts Chat

Languages: English - Português

Table of content:

English

Alias chatbot for Google Hangouts Chat to send a message to a list of members in a room, usage:

alt text alt text

Requirements & Installation

Docker must be installed on the server

  • Check if docker-compose is available:
$ docker-compose  -v
docker-compose version 1.23.2, build 1110ad0
$ 
  • If not, install it:
pip3 install docker-compose
  • Clone the repository and access chatbot dir
git clone https://github.com/renanpessoa/hangouts-chatbot-alias.git
cd hangouts-chatbot-alias
  PROJECT_NUMBER = ['0123456789']
  • Build images:
docker-compose build
  • After build, start containers:
docker-compose up -d

How it works

docker-compose orchestrator will build two containers:

  • app
    • It has a Python application with microframework Flask to handle Chat post. Inside in this container we have also uWSGI to web server.
    • uWSGI will start 5 processes, to change it edit the project.ini file.
    • All data are stored in Redis container.
  • redis
    • This container will be the database in memory using Redis.
    • The data are persistence in Docker volume called redis_data.

How to change the code

Don't make ANY change inside the container, all changes will be lost!

All changes must be made in local files and then create a new build:

  • Stop containers

    docker-compose down
  • Create new build

    docker-compose build
  • Start

    docker-compose up -d

Reference

Português

Chatbot de alias para o Google Hangouts Chat, exemplo de uso:

alt text alt text

Requisitos e Instalação

É necessário ter o Docker instalado no servidor

  • Verifique se o docker-compose está instalado com o comando abaixo:
$ docker-compose  -v
docker-compose version 1.23.2, build 1110ad0
$ 
  • Se retornar erro é necessário realizar a instalação:
pip3 install docker-compose
  • Clone o repositório e acesse o diretório da aplicação
git clone https://github.com/renanpessoa/hangouts-chatbot-alias.git
cd hangouts-chatbot-alias
  PROJECT_NUMBER = ['0123456789']
  • Realize o build das imagens utilizando o comando abaixo, o procedimento pode levar alguns minutos.
docker-compose build
  • Após o build os containers estão prontos para iniciar.
docker-compose up -d

Como funciona

O orquestrador docker-compose vai subir dois containers:

  • app
    • Contem aplicação em Python que foi criada utilizando o microframework Flask para receber as requisições do Chat e retornar os dados solicitados, dentro do container também está instalado o uWSGI para servir como web server.
    • O uWSGI está configurado para inicializar 5 processos dentro do container para servir as requisições, caso seja necessário ajustar este valor basta editar o arquivo project.ini
    • Os dados utilizados pela aplicação são gerenciados pelo container redis.
  • redis
    • Este container serve como banco de dados em memória utilizando o Redis por questões de desempenho.
    • Apesar dos dados serem consultados na memória também é realizado a persistencia em disco no volume redis_data criado automáticamente pelo orquestrador docker compose, com isso não há risco dos dados serem perdidos quando o container for finalizado.

Como realizar alterações no código da aplicação

Caso seja necessário realizar algum ajuste no código da aplicação ou nos arquivos de configuração NUNCA altere diretamente no container pois ele não armazena dados, qualquer alteração será PERDIDA!

Realize os ajustes nos arquivos locais, em seguida realize um novo build para gerar novas imagens utilizando o comando abaixo.

  • Para os containers atuais

    docker-compose down
  • Realize o novo build

    docker-compose build
  • Inicie os containers

    docker-compose up -d

OBS: Não é necessário realizar um novo build para alterar as variaveis de ambiente do docker-compose.yml como por exemplo o TOKEN, basta reiniciar os containers.

Referência

About

Chatbot to send a message to a list of members in a room for Hangouts Chat

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published