Gê no Telegram (clone da Vegga / MateBot)

Desobediente Civil 9e7e2ba162 v0.0.8.6 7 سال پیش
config fd131ef22b Finalizando mudanças para merge de upstream 7 سال پیش
matebot 1b0192541f Datas corretamente funcionando em qualquer servidor do mundo 7 سال پیش
plugins 1b0192541f Datas corretamente funcionando em qualquer servidor do mundo 7 سال پیش
.gitignore 2fa51ce473 Commit inicial 8 سال پیش
CHANGES.txt 9e7e2ba162 v0.0.8.6 7 سال پیش
LICENSE.md 2fa51ce473 Commit inicial 8 سال پیش
MANIFEST.in 2fa51ce473 Commit inicial 8 سال پیش
README.md 0d9ba6f79e Merge branch 'master' of github.com:matehackers/tg-matebot 7 سال پیش
requirements.txt 1b0192541f Datas corretamente funcionando em qualquer servidor do mundo 7 سال پیش
start.py 954318be9b Contribuições do VeliveryBot 7 سال پیش

README.md

Bot de Telegram para Velivery

O que

Este é um bot de Telegram escrito em Python para o Velivery.
Clonado do bot original para o hackerspace Matehackers funcionando em @Mate_obot.

Este bot pode ser extendido com o uso de plugins, inspirado no supybot.

Uso

Este bot serve para automatizar determinadas áreas no trabalho do Velivery. Somente funcionária(o)s autorizada(o)s têm ou deveriam ter acesso.

Comandos

Atualmente o bot tem os seguintes comandos:

/start

Não faz nada.

Exemplo: /start

/help

Não faz nada.

Exemplo: /help

/feedback

Envia mensagem para os desenvolvedores do bot.

Exemplo: /feedback Esse bot não funciona!

/hash

Calcula o hash de um texto. O texto pode ser qualquer coisa, observado o limite de tamanho de mensagem do telegram.

Exemplo: /hash Mensagem secreta

/qr

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

Exemplo: /qr https://matehackers.org

Fork

Se você quiser usar o código deste bot pra fazer o seu próprio, você deve:

Entender e usar a licença GPL v3

Para mais informações, veja o arquivo LICENSE.md.

Aprender a usar git

...e incidentalmente, Github - que é outra coisa completamente diferente de git.

Para mexer no código agora mesmo no Linux:

$ git clone -b stable https://github.com/matehackers/tg-matebot.git
$ cd tg-matebot

Dependências

Este bot foi testado com Python 3.4
Se você não tiver Python, instale!

Estamos usando Telepot, então é necessário instalá-lo para rodar o bot.
Tente pip3 install --user telepot ou python3 -m pip install --user telepot. Ou melhor, pip3 install -r requirements.txt para instalar todas as dependências dos plugins. Se este comando não funcionar, instale pip.

Configurando

No diretório config:
Renomeie o arquivo matebot.cfg.example para .matebot.cfg. Sem este arquivo, o bot não vai funcionar.
Edite o arquivo, alterando o valor de token na seção [botfather] para o valor obtido através do @BotFather.
Altere os demais campos de configuração de acordo com a necessidade.

Rodando

No diretório principal do matebot:
Se for UNIX, rode com ./start.py
Em qualquer plataforma, deveria funcionar com python3 start.py
Para parar, envie um sinal KeyboardInterrupt (no Linux, CTRL+C).

Administração

Envie uma mensagem para o bot e preste atenção no console para descobrir qual é o seu id do telegram.
Deveria aparecer algo parecido com isto:

[2017-05-09 13:37:26.113188] RCV: Received "hi" from 123456789

Onde 123456789 é o seu telegram id. Coloque este número no arquivo de configuração, na seção [admin], item id. O arquivo é config/.matebot.cfg conforme explicado acima, veja Configurando.
Isto possibilita usar comandos especificamente para administração do bot.

Além disto, é possível configurar um id de grupo de administração, que é parecido com -123456789. Este grupo é para onde o bot envia informações de depuração (debug) e onde o comando /feedback envia feedback.

Systemd

Exemplo de arquivo para usar com systemd:

[Unit]
Description=tg-matebot daemon
After=network.target nss-lookup.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/user/tg-matebot/start.py
WorkingDirectory=/home/user/tg-matebot/
Restart=on-failure

[Install]
WantedBy=multi-user.target

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

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

# systemctl daemon-reload
# systemctl enable tg-matebot.service
# systemctl -l start tg-matebot.service

Para ver se está funcionando:

# systemctl -l status tg-matebot.service

Parar:

# systemctl stop tg-matebot.service

Reiniciar:

# systemctl -l restart tg-matebot.service

Para o caso de usar systemd como usuário, o arquivo de configuração deve estar em ${HOME}/.config/systemd/user/tg-matebot.service, e os comandos devem ser precedidos de --user, como por exemplo:

# systemctl --user -l restart tg-matebot.service

Crontab

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

# crontab -e

Adicione uma linha como por exemplo esta na crontab:

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

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

Roadmap

TODO

  • Traduzir este README ~(pedi ajuda nos grupos de telegram e ninguém fez merda nenhuma. grupo de telegram é que nem grupo de feisse e uáts - só tem sofista e gente fazendo nada!)~
  • Usar dicionários em todos os retornos de funções
  • Melhorar o empacotamento dos plugins
  • Tratar as exceções corretamente, principalmente as informativas
    • Exceções informativas para quem está tentando instalar o bot do zero suficientemente tratadas e suficientemente informativas com commit 367613a

Licença

Copyleft 2016-2018 Desobediente Civil, 2017-2018 Matehackers, 2018 Velivery

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, veja http://www.gnu.org/licenses/.

Informações

Este bot aproveita o trabalho feito no tg-cryptoforexbot e é laboratório para melhorar o código de outro bot, a Paloma. Assim como este código é reaproveitado em outro bot, o VeliveryBot, que por sua vez contribui com código e melhorias para este. Viva o software livre.