/Lino

Lino, a chatbot to University of Brasilia!

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Lino - O bot da Universidade

Facebook @lino_o_bot

Visite nossa página »

Web Crawler · Alerta · API de Mensageiros

Sobre o projeto

   O projeto Lino é um bot que visa orientar, alertar e tirar dúvidas a respeito dos assuntos mais procurados na Universidade de Brasília - Campus FGA. Para apoio ao Bot, um painel de controle de métricas que acompanha sua eficiência durante seu uso em produção.

   Como principais funcionalidade, tem-se:

Utilização

   O Lino se encontra nas plataformas Facebook Mensseger e Telegram

Principais funcionalidades

  • Alerta do cardápio (semanal, diário e por refeição);
  • Alerta de emails enviados pelos dos funcionário do campus;
  • Explicações das documentações mais procuradas.

Guia de Contribuição

Políticas

As políticas de branches, commits, pull requests e issues se encontram aqui

Desenvolvimento

Dependências

  • Docker
  • Docker-compose
  • Ngrok
Setup do Telegram

Para começar a desenvolver precisamos fazer algumas alterações no código para que funcione localmente.

  1. Crie um bot para teste conversando com o @BotFather.

  2. Agora altere os valores das seguintes variáveis de ambiente no docker-compose, com as credenciais do seu bot.

  # Para rodar no telegram altere as seguintes
  # variáveis nos serviços Lino e Actions
  - TELEGRAM_ACCESS_TOKEN=<TOKEN_GERADO_PELO_BOTFATHER>
  - VERIFY=<@USUÁRIO_DO_BOT_NO_TELEGRAM>
  - TELEGRAM_DB_URI=mongodb://mongo_lino:27010/lino_telegram

  # Ou utilize o banco que desejar
  - TELEGRAM_DB_URI=<BANCO_QUE_DESEJAR>

OBS 1: Altere as variáveis necessárias no serviço do cronjob.

  1. Comente as linhas que dizem respeito à variáveis do serviço do Messenger em todos os serviços.
  # - FACEBOOK_DB_URI
  # - PSID
  # - FACEBOOK_ACCESS_TOKEN
  # - SECRET
  1. Para conectar com o Telegram, você vai precisar gerar uma URL com certificado. Para isso, nós utilizamos o Ngrok (necessário instalá-lo).

  2. Agora rode o seguinte comando para expor a porta e gerar o certificado para nosso webhook.

  # Gera a URL com certificado (https)
  ./ngrok http <PORTA_BOT>
  1. Substitua o valor da variável no serviço Lino.
  # Altere o valor da variável seguinte
 - WEBHOOK_URL=<URL_HTTPS/webhooks/telegram/webhook
  1. Rode o seguinte comando para finalizar e desfrutar do seu bot
  sudo docker-compose up
  1. Agora está tudo certinho pra você começar a desenvolver e testar o seu bot :)

Script setup_env.py

Para facilitar a troca de variáveis no ambiente existe um script na pasta scripts/ que vai te ajudar.

Para utilizar basta usar o comando:

python3 scripts/setup_env.py

Setup para testar o Lino no terminal

Para testar as alterações feitas no Lino, execute os seguintes comandos no terminal:

  1. Crie a imagem do Lino:
sudo docker build -t lino .
  1. Inicialize o container:
sudo docker run --rm -it -p 5002:5002 -v $PWD:/2018.2-Lino lino
  1. Agora basta testar as novas alterações pelo terminal.

Licença

   Lino é distribuído sob a licença GPLv3. Consulte LICENSE para obter detalhes.