Azhariel / soberana-telegram-bot

Servidor do Bot de Telegram do coletivo marxista-leninista Soberana.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Soberana Telegram Bot

NodeJS

Servidor do Bot de Telegram do coletivo marxista-leninista Soberana. O objetivo do bot é postar em um canal de anúncios do Telegram, servindo como um agregador de informações. O bot deve postar quando membros iniciam lives na Twitch e postam vídeos no Youtube e TikTok, além de postar diariamente as lives e eventos agendadas para aquele dia a partir do Google Calendar.

Table of Contents

To do

Telegram

  • Enviar mensagens para um canal especificado no Telegram
    • Enviar mensagens a partir de estímulo externo (api/webhook)

Google

  • Integração com Google Calendar
    • Acessar o calendário Soberana
    • Retornar as lives do dia
    • Formatar as lives do dia
    • Enviar a agenda diária no telegram
    • .. automaticamente
    • Guardar os tokens (access e refresh) e renova-los conforme necessário

YouTube

  • Integração com Youtube
    • Ativar quando um novo vídeo for postado em algum canal da Soberana
    • Retornar o título, canal e link
    • Formatar as informações e postar no Telegram

Twitch

  • Integração com Twitch
    • Ativar quando um canal entrar ao vivo
    • Formatar o nome do canal, título da live e link
    • Enviar no telegram

TikTok

  • Integração com TikTok
    • Ativar quando um novo vídeo for postado
    • Receber o nome do vídeo (?), canal e link
    • Enviar no telegram

Desafios

Google e OAuth2

As APIs da Google utilizam OAuth2 para autorização, que envolvem um método manual para autorização inicial e a manutenção de um token de acesso com um token de atualização (access token e refresh token respectivamente). Atualmente, ambos tokens são hardcoded em variáveis de ambiente (.env), o que não é uma solução a longo prazo, pois mesmo podendo conseguir 'infinitos' tokens de acesso através do token de atualização, eventualmente o token de atualização também expira e deve ser renovado.

O servidor precisa, de alguma forma segura, armazenar ambos os tokens e atualiza-los no banco de dados quando os mesmos são atualizados pela lógica do servidor.

Twitch e SSL

Dada a mudança no sistema de webhooks da Twitch (utilizando agora os endpoints EventSub), há obrigatoriedade do servidor utilizar o protocolo SSL - o que, por sua vez, requer que o domínio possua o devido certificado de autoridade. Em fase de testes, estou utilizando ngrok, que cria uma URL temporária com o devido certificado, mas essa solução é inviável a nível de produção - ou, ao menos, longe do ideal.

Uma das alternativas, que exigem mais estudo, é alguma forma de hospedar na AWS com suporte a certificado SSL, mas não possuo expierência nesse tipo de deploy.

Links Úteis

About

Servidor do Bot de Telegram do coletivo marxista-leninista Soberana.


Languages

Language:JavaScript 96.6%Language:Shell 3.4%