Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Mar 4, 2022. It is now read-only.
/matebotPublic archive

Bot do Matehackers

License

NotificationsYou must be signed in to change notification settings

matehackers/matebot

Repository files navigation

Archiving notice / Aviso de arquivamento: Development active at / Desenvolvimento continua emhttps://github.com/iuriguilherme/iacecil


MateBot

There is no english README. Sorry about that, I am having a mean time. Justlearn brazilian portuguese in the meantime.

O quê

Este é umbot de Telegram baseado em pluginsescrito emPython.

Uso

Chame o bot em@mate_obot para ver a lista decomandos.

Quem tiver qualquer dúvida pode entrar nogrupo do MateBot no Telegram.Todo mundo lá também tem dúvidas, tu vai te sentir em casa.

Comandos

Atualmente o bot tem os seguintes comandos:

/lista

Exibe os atuais comandos do bot.

Aliases:/help/ajuda

/doar

Exibe informações sobre como ajudar financeiramente oHackerspace Matehackers.

Alias:/donate

/feedback

Envia mensagem para os desenvolvedores do bot. É necessário enviar um texto.

Exemplo:/feedback Esse bot não funciona!

Alias:/f

/qr

Cria uma imagem png com um QR code representando o texto que foi enviado. Otexto pode ser qualquer coisa.

Exemplo:/qr https://matehackers.org

Alias:/qrcode

/random

Gera um número pseudo aleatório bom para criptografia. É possível definir otamanho da semente como parâmetro.

Exemplos:/random ou/random 32

Alias:/r

/pi

Gera uma boa aproximação depi.

/phi

Gera uma boa aproximação dephi.

/baixar

Faz download de vídeos ou áudios a partir de URLs suportadas peloyoutube-dl e envia como vídeo ouáudio por mensagem de telegram.

Aliases:/y/ytdl

/arquivar

Arquiva um site naWayback Machine.

Exemplo:/arquivar https://matehackers.org

Aliases:/a/wm/archive

Por que

História

MateBot foi feito para o hackerspaceMatehackers.

Vegga foi feita para oVelivery.

foi feita para aGreatful.

Matebot por sua vez é clonado deCryptoForexBot.
Todos estes bots são inspirados naPaloma,originalmente um bot de IRC inspirado nalalenia, que é umsupybot. Viva o software livre.


Como

Roadmap

Ver também o arquivoCHANGES.TXT

Nível de automata:combinational logic

Requisitos e escopo
  • Bot deve responder comandos com valores pré definidos
  • Bot pode ter personalidade fixa configurada previamente e que vaiperdurar durante todo o seu funcionamento
  • Novas funcionalidades podem ser acrescentadas através de plugins
  • Funcionalidades podem ser ativadas ou desativadas de acordo compersonalidade ou finalidade do bot
  • Sistema de log para depuração
Funcionalidades
  • Geração de QR Code
  • Download de vídeos do Youtube
  • Geração de números aleatórios
  • Cálculo de hash de textos
  • Recepção de novos usuários em grupos no Telegram
  • Salvar URLs na Wayback Machine
Funcionalidades abandonadas

Funcionalidades presentes em forks ou versãov0.0.14

  • Conversão de valores [coinmarketcap] (cryptoforex)
  • Integração com bancos de dados externos [velivery] (vegga)
  • Envio de SMS e realização de ligações telefônicas [totalvoice](vegga)
  • Sistema auxiliar para produção de alimentos [cr1pt0_almoco]
  • Integração com ESP32 e monitoramento climático (climobike)
  • Controle de atividades de trabalho [workrave] ()

Nível de automata:finite-state machine

Requisitos e escopo
  • Bot deve responder comandos de acordo com regras fixas e variáveisconforme aprendizado prévio
  • Bot deve ter personalidade configurada no estado inicial que pode variare humor que deve variar
  • Funcionalidades podem ser ativadas ou desativadas de acordo com mudançade personalidade, humor ou evento de aprendizado
  • Sistema de coleta de dados para machine learning
  • Bot deve funcionar no Telegram e no Discord
Funcionalidades
  • Faz questionários para usuários e armazena as informações em banco dedados
  • Usa dados obtidos para tomar decisões e adicionar pessoas em grupos deacordo com critérios estabelecidos
  • Cria perfil de pessoas através de análise de respostas
  • Otimiza perfil de pessoas através de análise de comportamento

TODO

  • Traduzir este README
    • Translate the README back to English, Pedro Bó
  • Usar dicionários em todos os retornos de funções
  • Melhorar o empacotamento dos plugins
  • Migrar de telepot para python-telegram-bottag v0.1.0.0a
  • Acrescentar também código para usar com aiogramtag v0.1.3.0
  • Tratar as exceções corretamente, principalmente as informativas
    • Exceções informativas para quem está tentando instalar o bot dozero suficientemente tratadas e suficientemente informativas comcommit 367613a
    • Usar Exception Handling do python-telegram-bot
  • Arquivos para usar com Heroku
  • Arquivos para usar com Docker
  • Documentar o roadmap com issues, milestones e projetos do github
    • Issues feitas durante uma Terça Sem Fim

Onde

Se vossa excelência quiserdes usar o código deste bot pra fazer o vossopróprio, vós deveis:

Entenderdes e usardes a licença GPL v3

Para mais informações, veja o arquivoLICENSE.md.

Aprenderdes a usar git

...e incidentalmente, Github ou Notabug - que são coisas completamentediferentes de git.

Para mexer no código agora mesmo no Linux:

user@home:~$ git clone https://github.com/matehackers/matebot.git  user@home:~$cd matebot  user@home:~/matebot$ python3 -m pip install --user --upgrade pip pipenvuser@home:~/matebot$ pipenv installuser@home:~/matebot$ pipenv run matebot

Grupo de usuária(o)s e desenvolvedora(e)s

Eu criei um grupo novo para quem quiser conversar sobre, usar, testar,desenvolver e acompanhar o processo de desenvolvimento, teste e uso do bot:https://t.me/joinchat/CwFUFkf-dKW34FPBjEJs9Q

Grupo só para testar bots (pode gerar o caos):https://t.me/joinchat/CwFUFhbgApLHBMLoNnkiRg

Grupo para testar o plugin de logs:https://t.me/joinchat/CwFUFhy2NQRi_9Cc60v_aA

Pra testar o plugin de logs, coloque o bot neste grupo e use o chat_id-481703172 no arquivo de configuração (bot.users['special']['log'])


Dependências

Este bot foi testado com Python 3.7 e 3.8; Se vós não tiverdes Python,instale!

Estamos usandoAiogram,Flask ePython Telegram Bot,então é necessário instalá-los para rodar o bot.

Ritual de instalação:

pipenv

O jeito mais fácil de todos é usarpipenv, inclusiveestá incluso o Pipfile no repositório:

user@home:~/matebot$ python3 -m ensurepip  user@home:~/matebot$ python3 -m pip install --user --upgrade pip pipenv  user@home:~/matebot$ pipenv install

Outras formas

Quem não quiser usar pipenv pode usar virtualenvwrapper, virtualenv ou outrométodo de preferência se souber o que está fazendo. Um arquivorequirements.txt é mantido atualizado no repositório.

user@home:~/matebot$ python3 -m ensurepipuser@home:~/matebot$ python3 -m pip install --user --upgrade pipuser@home:~/matebot$ python3 -m pip install --user -r requirements.txt

TODO: Fazer instruções para usar sem pipenv


Configurando

Criar o diretórioinstance:

user@home:~/matebot$ mkdir instance

Renomear o arquivodoc/default_config.py parainstance/config.py.

user@home:~/matebot$ cp doc/default_config.py instance/config.py

Editar o arquivo de configuração, pelo menos adicionando tokens para o valorobtido através do@BotFather.

A parte da configuração que é necessário alterar se parece com isto:

'matebot': {## Obtenha um token com @BotFather no Telegram'token':"123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11",

Onde123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 deve ser substituída com atoken providenciada pelo BotFather.

Uma forma alternativa de alterar este campo é diretamente na linha de comandousando sed:

user@home:~/matebot$ TOKEN="654321:ZXC-VBN4321ghIkl-zyx57W2v1u123ew11"; sed -i's/123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/'${TOKEN}'/g' instance/config.py

Alterar os demais campos de configuração de acordo com a necessidade, cadaopção está comentada no arquivo de configuração de exemplodoc/default_config.py.

TODO: Documentar exemplos de uso do arquivo de configuração para um bot ouvários bots

Flask / Quart

Para usar a versão com Flask (ou Quart), é necessário também renomear o arquivodoc/default_env para.env. Ou criar um arquivo.env com as variáveisFLASK_APP eFLASK_ENV (ouQUART_APP /QUART_ENV).


Rodando

No diretório principal domatebot:

pipenv

Para rodar com pipenv, assumindo que a configuração já está correta:

user@home:~/matebot$ pipenv run matebot

Se tiver mais bots configurados, informar o nome da chave do token do arquivode configuração:

user@home:~/matebot$ pipenv run matebot production

O método anterior para usar Flask e python-telegram-bot:

user@home:~/matebot$ pipenv run ptb

O método antigo pra usar telepot (não recomendado):

user@home:~/matebot$ pipenv run telepot

Outros métodos

Quem estiver usando outra coisa que não seja pipenv, pode usar o scriptapp.py que vai tentar encontrar os módulos e arquivos de configuraçãopertinentes. Alguns exemplos:

user@home:~/matebot$ python3 start.py aiogram matebot
C:\Users\user\tg-matebot> Python start.py flask matebot

Para parar, enviar um sinalKeyboardInterrupt (CTRL+C).


Deploy / produção

Systemd

Exemplo de arquivo para usar com systemd:

[Unit]Description=MateBot daemonAfter=network.target nss-lookup.target[Service]Type=simpleExecStart=/home/user/.local/bin/pipenv run matebotWorkingDirectory=/home/user/matebot/Restart=on-failure[Install]WantedBy=multi-user.target

Em um sistema Debian, este arquivo deveria estar em${HOME}/.config/systemd/user/matebot.service.

Habilitando o serviço na inicialização do sistema e iniciando agora:

user@home:~$ systemctl --user daemon-reload  user@home:~$ systemctl --userenable matebot.service  user@home:~$ systemctl --user -l start matebot.service

Para ver se está funcionando:

user@home:~$ systemctl --user -l status matebot.service

Parar:

user@home:~$ systemctl --user stop matebot.service

Remover da inicialização:

user@home:~$ systemctl --user disable matebot.service

Reiniciar:

user@home:~$ systemctl --user -l restart matebot.service

Para o caso de usar systemd como root, o arquivo de configuração deve estar em/lib/systemd/system/matebot.service, e os comandos devem ser utilizadossem o--user, como por exemplo:

root@home:/root# systemctl -l restart matebot.service

Mas eu não recomendo esta abordagem.

Crontab

Também é possível usar cron para verificar se o bot está no ar periodicamente:

user@home:~$ crontab -e

Adicione uma linha como por exemplo esta na crontab:

*/10****/usr/lib/systemctl --user is-active matebot.service || /usr/lib/systemctl --user restart matebot.service

Isto vai verificar se o bot está no ar a cada 10 minutos, e reiniciar o serviçocaso esteja fora do ar.

Docker

Adicione seu token emBOTFATHER_TOKEN no arquivodoc/default_env e depois rode os comandos abaixo na raiz do projeto

docker build -t matebot -f Dockfile.docker run -d --name matebot matebotdocker inspect matebot| grep IPAddress

Após esses comandos você terá o IP do seu container pegue esse IP e acesse viaCURL IP:5000

Heroku / Python Anywhere

Existem usuária(o)s do bot que usam Heroku e Python Anywhere solicitando ajudapara configurar o robô nestes serviços. Eu nunca usei nada disto então precisode ajuda para tal feito.


Licença

Copyleft 2012-2020 Iuri Guilherme, 2017-2020 Matehackers, 2018-2019 Velivery,2019 Greatful, 2019-2020 Fábrica do Futuro

Este programa é um software livre; você pode redistribuí-lo e/ou
modificá-lo sob os termos da Licença Pública Geral GNU como publicada
pela Free Software Foundation; na versão 3 da Licença, ou
(a seu critério) qualquer versão posterior.

Este programa é distribuído na esperança de que possa ser útil,
mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO
a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
Licença Pública Geral GNU para mais detalhes.

Você deve ter recebido uma cópia da Licença Pública Geral GNU junto
com este programa (veja o arquivo LICENSE.md).
Se não, vejahttp://www.gnu.org/licenses/.


[8]ページ先頭

©2009-2025 Movatter.jp