2020-08-18.md 7.3 KB


title: "Livecoding da(o)(e) MateBot, Robô Social"

date: 2020-08-18T19:39:16-03:00

Objetivos de hoje:

  • Ler a documentação, aprender a usar e colocar no código o telegram.ext do PTB
  • Alimentar o blog pra documentar o processo
  • Fazer código funcional do MateBot (Dev)

Bibliografia (linkania):


Transmissão ao vivo

Começou às 19:42 BRT (UTC -3)

Ao vivo no Youtube no canal do Matehackers: https://www.youtube.com/c/Exmachinae/live

Salvo no youtube:

Título e descrição do vídeo:

Terça Sem Fim - Livecoding da(o)(e) MateBot, Robô Social

MateBot é atualmente um(a)(e)(?) robô de Telegram que está sendo escrito usando Python, Flask, python-telegram-bot com licença de software livre. Esta série de vídeos serve para documentar e acompanhar o processo de desenvolvimento. Além do canal do Youtube do Matehackers, também está sendo documentado no repositório git público e no blog Terça Sem Fim. Estes vídeos estão disponíveis via IPFS e Tor pra quem não consegue assistir pelo Youtube.

Código fonte do MateBot: https://github.com/matehackers/tg-matebot

Blog da Terça Sem Fim:

Grupo do Matehackers no telegram: https://t.me/matehackerspoa
Meu usuário no telegram: https://t.me/desobedientecivil

Ajude o Hackerspace Matehackers a se manter: https://matehackers.org/renda

#Python #Flask #Telegram #DataScience #AI #ML #IA


Pré produção

Quem não sabe faz ao vivo.

Divulguei nos grupos de Python do telegram que a transmissão está acontecendo aproximadamente às 20:00

Após isto o pessoal começou a entrar na transmissão ao vivo e me avisaram que o microfone não estava funcionando. Passei a apanhar do Windows e tentar consertar isto. Aparentemente o problema era o hardware e não o sistema operacional. Voltando ao assunto aproximadamente às 20:40 com quase uma hora de transmissão já.

Agora estou com problemas de conexão. Parei a transmissão para buscar um cabo cat6 grande pra conectar o laptop direto no rack da rede.

Então o youtube parou de receber o streaming, não obstante o OBS dizia que o streaming estava acontecendo. Parei o streaming (isto levou vários minutos) pra começar de novo. 21:00 horas e ainda não conseguimos começar de fato a transmissão.

Às 21:36 BRT estamos no ar, com transmissão funcionando e microfone funcionando.


Desenvolvimento

O ponto de partida para o estudo de hoje é o https://github.com/python-telegram-bot/python-telegram-bot/wiki/Extensions-%E2%80%93-Your-first-Bot. Abri uma janela do Chrome no OBS e passei a estudar a documentação.

Aprendi a configurar mais de um bot ao mesmo tempo (o telegram permite que cada usuário tenha até 20 bots) lendo a documentação.

Comecei a configurar o Updater lendo a documentação. Será importante posteriormente estudar os seguintes parâmetros que eu ainda não domino:

Outra coisa que será pertinente ler posteriormente é tratar exceções.

O telegram.ext.Updater basicamente "recebe" as atualizações do servidor do telegram (tudo o que acontece, mensagens, usuários entrando em grupos, mensagens fixadas, pessoas editando ou apagando mensagens, etc.) e o telegram.ext.Dispatcher "envia" atualizações pro servidor do telegram (por exemplo o bot enviar mensagens para grupos). É pertinente ler a documentação do Dispatcher pra se aprofundar nas possibilidades.

Interagi com o pessoal na transmissão ao vivo no youtube e tive que fazer uma pausa compulsória pra resolver uma questão no mundo real durante alguns minutos aproximadamente às 23:06, voltando aproximadamente às 23:33.

Descobri uma forma melhor do que usar getattr() para tratar comandos que é o CommandHandler do PTB. Na documentação é explicado os vários tipos de "Handlers" e há alguns exemplos de como usar. Coisas importantes para estudar posteriormente:

Aproximadamente às 02:27 (já quarta feira) eu enviei o commit 0af802d para o repositório no github com a versão funcional do robô (v0.1.1.0) que ecoa as mensagens e responde o comando /start.

Em decorrência de muito tempo sem dormir e sem comer adequadamente, terei que encerrar a transmissão ao vivo e consequentemente a gravação do vídeo. Aproveito para encerrar o blog de hoje também.

Transmissão ao vivo encerrada aproximadamente às 02:33 BRT (UTC -3) de 19 de agosto de 2020.

Não curtam o vídeo, não sigam o canal, não se inscrevam para receber notificações. Usem youtube-dl para obter o vídeo, assistam no VLC. Ou melhor, assistam o vídeo via IPFS.