Quickstart
$ git clone https://github.com/KaioBorgesDev/EMTU-LIVE-CHECKER.git
$ cd EMTU-LIVE-CHECKER
$ cp .env.example .env
$ npm i && npm run start
Comandos
/monitor [linha] [ponto] [horário]
— inicia monitoramento de uma linha em ponto específico a partir de um horário. O ponto é o número encontrado no site/app oficial da EMTU./stop [linha]
— para monitoramento específico ou todos./list
oulistar
— lista monitoramentos ativos./where [linha] [ida/volta]
— localização em tempo real dos ônibus./search [termo]
oubuscar [termo]
— busca linhas e paradas./status
— estatísticas pessoais e status do sistema./help
ouajuda
— lista todos os comandos.
Configuração
Edite o arquivo .env
com suas chaves e preferências:
- QUIET_HOURS: Horário em que o bot para de enviar alertas (ex: 23-06 = das 23h às 6h). Após esse horário, se o ônibus não passou, já é considerado preocupante e a pessoa deve estar em alerta.
- PROXIMITY_THRESHOLD_METERS: Distância em metros para disparar o alerta.
- CHECK_INTERVAL_MINUTES: Intervalo de verificação em minutos.
- MAX_ALERTS_PER_ROUTE: Limite máximo de alertas por linha (anti-spam). Se já foram enviados 3 alertas de proximidade para a mesma linha, não enviará mais para evitar spam.
O número do ponto pode ser encontrado no site oficial da EMTU ou no app móvel oficial. Os pontos são numerados sequencialmente ao longo da rota.
Feature futura: Possibilidade de usar nome da parada (ex: Terminal Barão Geraldo) em vez do número específico.
Instalação
- Clone o repositório.
- Instale dependências com
npm install
. - Configure o
.env
com suas credenciais. - Inicie o bot com
npm start
. - Escaneie o QR Code que aparece no terminal.
- Envie
/monitor [linha] [ponto] [horário]
para começar a monitorar.
Deploy com Docker
$ docker build -t emtu-live .
$ docker run -e WHATSAPP_NUMBER -e EMTU_API_KEY emtu-live
Deploy com PM2
$ pm2 start npm --name emtu -- run start
$ pm2 save
Deploy com Systemd
[Unit]
Description=EMTU Live Checker
[Service]
WorkingDirectory=/opt/emtu
ExecStart=/usr/bin/npm run start
Restart=on-failure
[Install]
WantedBy=multi-user.target
Limites & Cotas
O sistema possui mecanismos anti-spam para evitar notificações excessivas:
- Limite de alertas por linha: Cada monitoramento tem um limite máximo de alertas (configurável via
MAX_ALERTS_PER_ROUTE
). Exemplo: se configurado para 3, após 3 alertas de proximidade para a mesma linha, não enviará mais alertas para evitar spam. - Rate limiting: Configure
CHECK_INTERVAL_MINUTES
para controlar a frequência de verificação. - Horários silenciosos: Use
QUIET_HOURS
para definir quando parar de enviar alertas.
Troubleshooting
FAQ
Funciona no celular? Sim, após escanear o QrCode, iniciará uma conversa com o bot.
Como descobrir o número do ponto? Acesse o site oficial da EMTU ou use o app móvel oficial. Os pontos são numerados sequencialmente ao longo da rota.
Por que parou de enviar alertas? Pode ter atingido o limite máximo configurado em MAX_ALERTS_PER_ROUTE
ou estar dentro do QUIET_HOURS
.
Como evitar spam de notificações? Configure adequadamente os valores de MAX_ALERTS_PER_ROUTE
e CHECK_INTERVAL_MINUTES
.