Skip to content

fga-eps-mds/2018.2-Lino

Repository files navigation

Este repositório não será mais atualizado. As atualizações serão feitas na nova organização do Lino: https://github.com/botlino/lino

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

Para começar a desenvolver precisamos fazer algumas mudanças no código para que funcione localmente.

Todas as mudanças estão descritas no código onde deve ser alterado, só que você não vai precisar sair procurando, eu vou lhe dizer onde que é.

  1. Altere o banco que deseja utilizar no arquivo notifier.py e no notifications.py
# If you have your own database, changes to ('database', <PORT>)
client = MongoClient('mongodb://mongo-ru:27017/lino_ru')
  1. Caso esteja trabalhando com o Telegram, adicione o token nos arquivos notifier e no notifications.py
# If you want to use your own bot to development add the bot token as
# second parameters
TELEGRAM_ACCESS_TOKEN = os.getenv('TELEGRAM_ACCESS_TOKEN', '')
  1. Caso esteja rodando o webcrawler local, altere a URL no arquivo notifier e no menu.py
# Change the url if you have your own webcrawler server
response = requests.get('http://<imagem_crawler>:<porta_crawler>/cardapio/{}'.format(day)).json()
  1. Caso queira usar com os mensageiros o Lino, utilize o ngrok para expor para o mundo
./ngrok http <porta_bot>
  1. Adicione as credenciais do bot no train-messenger ou no train-telegram (Exemplo abaixo sobre o Telegram)
# If you want to use your own bot to development
# add the bot credentials as second parameters
TELEGRAM_ACCESS_TOKEN = os.getenv('TELEGRAM_ACCESS_TOKEN', '')
VERIFY = os.getenv('VERIFY', '')
# the webhook URL is one that ngrok generates (https)
WEBHOOK_URL = os.getenv('WEBHOOK_URL', '')
  1. Agora está tudo certinho pra você começar a desenvolver e testar o bot :)

Testando 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.

Testando o Lino nos Mensageiros

  1. Crie a imagem do Lino:
sudo docker build -t <imagem_nome> -f docker/<Mensageiro>.Dockerfile .
  1. Inicialize o container:
sudo docker run --rm -it -v $PWD:/2018.2-Lino <imagem_nome>
  1. Agora basta testar as novas alterações pelo terminal.

Container pra Desenvolvimento

  1. Caso queira inicilizar um ambiente de desenvolvimento com todos os serviços
# Altere a imagem que deseja (qual mensageiro ou terminal) dentro do docker-compose
sudo docker-compose up --build

Licença

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