title: "Livecoding da(o)(e) MateBot, Robô Social (3)"
Começou pouco após à meia noite BRT (UTC -3) do dia 02 de setembro de 2020 (quarta-feira já).
Ao vivo no Youtube no canal do Matehackers: https://www.youtube.com/c/Exmachinae/live
Salvo no Youtube:
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 e Aiogram 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: https://github.com/matehackers/matebot
Blog da Terça Sem Fim: 🌐 Web:
Grupo do Matehackers no Telegram: https://t.me/matehackerspoa
Grupo do MateBot no Telegram: https://t.me/joinchat/CwFUFkf-dKW34FPBjEJs9Q
Meu usuário no Telegram: https://t.me/desobedientecivil
Ajude o Hackerspace Matehackers a se manter: https://matehackers.org/renda
#Python #Telegram #Aiogram #Geany #Flask #Quart #PythonTelegramBot #DataScience #IA #AI #ML #DS
Como sempre a primeira coisa é alimentar o blog dessa vez sem o tor porque eu estou usando o Qubes e não configurei um serviço oculto na VM do Whonix.
Durante a semana foram se acumulando feedbacks e novas ideias para o bot que devem ser documentadas no repositório git.
Às 01:18 BRT terminei de colocar todas as issues do mês de agosto no github. Foram três no total, da 64 até a 66.
Esclareci duas vezes que eu parei de usar Flask e Quart para o desenvolvimento e voltei a usar "python puro (tm)" pra desenvolver o bot como era no tempo do telepot.
Esclareci que os próximos passos serão continuar desenvolvendo o bot usando Aiogram e python-telegram-bot, sendo o foco maior em Aiogram.
Coisas para curto prazo que devem ser feitas é refazer todo o plugin de logging (que já estava parcialmente desenvolvido com python-telegram-bot), fazer um controle de acesso (que já tinha em telepot), escrever um controle de flood (que ninguém escreveu, nem no telepot, nem no ptb, nem no aiogram, nem no telethon, etc.) e finalmente migrar os plugins todos no mínimo para funcionar com aiogram mas preferencialmente pra funcionar com python-telegram-bot também.
Às 01:30 BRT terminei de escrever o blog e voltei para o desenvolvimento.
Perdi bastante tempo (de novo) tentando usar json.dumps() com as updates.
Cheguei a testar o método de copiar mensagem do aiogram, mas por fim consegui fazer logging em grupos escrevendo meus próprios métodos e adicionando uma linha em cada handler de mensagem.
Lancei uma versão estável do matebot que é a v0.1.3.1. O próximo passo é passar todos os plugins já existentes para usar aiogram.
Uma coisa engraçada é que eu fiz uma cacaca no repositório ao vivo. Ao invés de fazer merge da branch main na branch async, eu fiz o contrário. Depois tive que adicionar vários commits de merge para retomar o código ao estado que estava, mas não estava mais transmitindo no vídeo.
Transmissão foi encerrada aproximadamente às 04:45 BRT de 02 de Setembro 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.
Consegui resolver o problema dos arquivos de configuração. Descobri o método Dispatcher.get_current()
que retorna o dispatcher do contexto do método. Então não preciso importar o Bot() em cada arquivo do código. Commit com esta correção. Na documentação do aiogram não tinha essa informação, eu abri uma issue no repositório para isto.
Consegui resolver o problema do pretty print para as updates. O objeto TelegramObject que é base para os outros objetos tem os métodos to_python() e as_json() que eu consegui usar pra formatar os updates nos logs. Commit com esta alteração.