mpcabete / bombcrypto-bot

This is a python bot that automatically logs in, clicks the new button, and sends heroes to work in the bombcrypto game. It is fully open source and free.
819 stars 539 forks source link

Msg para quando o bot encerrar. #265

Closed M1D4SG0LD3N closed 2 years ago

M1D4SG0LD3N commented 2 years ago

Seria possível alguém fazer um código para que o bot do Telegram avise quando o bot se desligar ??? Pois uso vps e acho que seria interessante não só para mim mas para a comunidade.

0bomb4 commented 2 years ago

Na logica teria que ser outro programa, ja que se o bot parar ele nao vai conseguir enviar uma mensagem. Eu tinha sugerido pra alguem adicionar uma mensagem de comando "status" para enviar print de toda a tela do vps ou algo a cada x minutos. Seria legal tambem.

M1D4SG0LD3N commented 2 years ago

Realmente o seu é mais interessante pois se depois de X minutos não chegar nada a gente sabe que o bot caiu.

M1D4SG0LD3N commented 2 years ago

Ou pode ser uma mensagem antes e dps do bot resolver o captcha se assim tivermos só uma entrada saberiamos que o bot desligou.

kerferber commented 2 years ago

Olha só... eu vim aqui comentar exatamente isso kkkk

Eu acho que é possível capturar os erros sim.... através de tratamento de exceções ou exception handling...

No python podem ser usados blocos try/finally... try/except... mas é avançado demais pro meu raso conhecimento. Acredito que programadores mais avançados que nos lêem poderiam tentar implementar algo nesse sentido...

Seria mais ou menos como:

try:
     executar captcha
except:
    Dar Ctrl F5 no jogo e tentar tudo novamente
backslash-f commented 2 years ago

Caras... eu ACABEI de fazer isso... 😁

As mudanças em index.py:

import telegram

try:
    // Novo código:
    TELEGRAM_BOT_TOKEN = 'token do bot de vcs'
    TELEGRAM_CHAT_ID  = 'chat onde quer receber as msgs do bot'
    bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN)

    def sendTelegramMessage(message):
        global bot
        try:
            return bot.send_message(chat_id=TELEGRAM_CHAT_ID, text=bot_message)
        except:
            return 0

    // Código existente
    cat = """
    ... e todo o resto do código aqui, identado

except Exception as error:
  sendTelegramMessage("😵 Uh oh, BombCrypto bot has died:\n\n" + str(error))

Aí no requirements.txt, adicionar:

python-telegram-bot

Rodar pip install -r requirements

Ah sim, pra funcionar tem que configurar o BotFather como explicado aqui.

E criar uma sala de chat e adicionar o bot criado.

Pra pegar o ID do chat: https://stackoverflow.com/a/32572159/584548 (Mas tem outros métodos também, só procurar no Google).

Eu coloquei msg pra quando o script morre e msg pra quando tá pedindo o captcha, que tá falhando pra resolver automaticamente.

Funciona legal.💰

kerferber commented 2 years ago

Caras... eu ACABEI de fazer isso... 😁

As mudanças em index.py:

import telegram

try:
    // Novo código:
    TELEGRAM_BOT_TOKEN = 'token do bot de vcs'
    TELEGRAM_CHAT_ID  = 'chat onde quer receber as msgs do bot'
    bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN)

    def sendTelegramMessage(message):
        global bot
        try:
            return bot.send_message(chat_id=TELEGRAM_CHAT_ID, text=bot_message)
        except:
            return 0

    // Código existente
    cat = """
    ... e todo o resto do código aqui, identado

except Exception as error:
  sendTelegramMessage("😵 Uh oh, BombCrypto bot has died:\n\n" + error)

Aí no requirements.txt, adicionar:

python-telegram-bot

Rodar pip install -r requirements

Ah sim, pra funcionar tem que configurar o BotFather como explicado aqui.

E criar uma sala de chat e adicionar o bot criado.

Pra pegar o ID do chat: https://stackoverflow.com/a/32572159/584548 (Mas tem outros métodos também, só procurar no Google).

Eu coloquei msg pra quando o script morre e msg pra quando tá pedindo o captcha, que tá falhando pra resolver automaticamente.

Funciona legal.💰

PERFEITO! Gênio! Pareceu mais simples que imaginei. Vou testar hoje à noite. Grande abraço.

PS: @mpcabete acho que seria importantíssimo adicionar esta feature ao bot

backslash-f commented 2 years ago

Example:

captcha
mtmassa commented 2 years ago

Aqui ta brabo, funciona de jeito nenhum, mas tbm entendo nada de python. Mas apagando ou comentando o // codigo novo sempre da erro nao roda ... nao sei o que to fazendo errado. Mas pra ajudar O povo poderia anexar o codigo inteiro, sei la, o index inteiro, seja o arquivo seja o codigo completo, eu e muita gente aqui olhamos pra essas letrinhas e ficamos cada vez mais perdidos...

image

backslash-f commented 2 years ago

@mtmassa segue aí: https://pastebin.com/imcM743K (tem que alterar o token / chat ID nas linhas 51/52).

Lembrando que eu estou usando a última versão do código do branch main. 👍🏻

trinitro2 commented 2 years ago

Example:

captcha

what program do you use to emulate windows on osx?

backslash-f commented 2 years ago

what program do you use to emulate windows on osx?

Hi, this is not emulating. It's remote accessing a Linux machine via RealVNC.

mtmassa commented 2 years ago

@mtmassa segue aí: https://pastebin.com/imcM743K (tem que alterar o token / chat ID nas linhas 51/52).

Lembrando que eu estou usando a última versão do código do branch main. 👍🏻

Cara to cagado mesmo, copiei e salvei como index.py e da erro

File "index.py", line 56 bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN) ^ IndentationError: unexpected indent

pior que tenho um outro bot que tava testando isso e funconava, parei quando mudei pro linux e nao consegui instalar o tesseract. Mas te contar kkkkk 1000 para o codigo e 0 pra mim, tomando surra!

nesse parametro
TELEGRAM_BOT_TOKEN = '' TELEGRAM_CHAT_ID = ''

te que ser colocado assim

TELEGRAM_BOT_TOKEN = '111111111111111111111111111111111111111'
TELEGRAM_CHAT_ID  = '2222222222'

ou assim

TELEGRAM_BOT_TOKEN = '<1111111111111111111111111111111>'
TELEGRAM_CHAT_ID  = '<22222222>'
backslash-f commented 2 years ago

É cara, não tem milagre. Programação é difícil mesmo. Virgindade level 100.

Sugiro baixar o Visual Studio pra editar os arquivos Python, ao menos ele vai te ajudar a detectar esses errors mais básicos.

Sobre a pergunta, tem que ser colocado assim: TELEGRAM_BOT_TOKEN = '111111111111111111111111111111111111111'

M1D4SG0LD3N commented 2 years ago

É cara, não tem milagre. Programação é difícil mesmo. Virgindade level 100.

Sugiro baixar o Visual Studio pra editar os arquivos Python, ao menos ele vai te ajudar a detectar esses errors mais básicos.

Sobre a pergunta, tem que ser colocado assim:

TELEGRAM_BOT_TOKEN = '111111111111111111111111111111111111111'

Back oq eu precisaria para o bot me enviar uma screen shot da tela de 10 em 10 minutos ?

backslash-f commented 2 years ago

@M1D4SG0LD3N Não sei ao certo, mas dá uma olhada nessa função do repo do @thiago-molive.

M1D4SG0LD3N commented 2 years ago

@M1D4SG0LD3N Não sei ao certo, mas dá uma olhada nessa função do repo do @thiago-molive.

Sim eu implementei no meu código mas não coloquei em operação ainda pois não entendi. Mas vou dar uma estudada mais profunda pois sou muito noob em programação e entendo nadinha mas uma hora da certo.

mtmassa commented 2 years ago

É cara, não tem milagre. Programação é difícil mesmo. Virgindade level 100.

Sugiro baixar o Visual Studio pra editar os arquivos Python, ao menos ele vai te ajudar a detectar esses errors mais básicos.

Sobre a pergunta, tem que ser colocado assim: TELEGRAM_BOT_TOKEN = '111111111111111111111111111111111111111'

Acho que pra editar um notepad++ ja resolveria, to editando pelo notepadqq.

Quanto a programação nao sei te dizer se e facil ou e dificil pq eu nao programo, nao sou programador. Pelo que foi dito parece ser algo bobo, ridiculo, porem nao achei a resposta e so copiar o codigo nao resolveu o problema, o que me leva a crer que eu se fosse programador eu seria um pessimo programador, mas como nao programo, to de boa, cedo ou tarde alguem coloca a função aqui de um jeito que funcione para todos. De qualquer forma obrigado pela explicação e atenção! Grato

2mate commented 2 years ago

Caras... eu ACABEI de fazer isso... 😁

As mudanças em index.py:

import telegram

try:
    // Novo código:
    TELEGRAM_BOT_TOKEN = 'token do bot de vcs'
    TELEGRAM_CHAT_ID  = 'chat onde quer receber as msgs do bot'
    bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN)

    def sendTelegramMessage(message):
        global bot
        try:
            return bot.send_message(chat_id=TELEGRAM_CHAT_ID, text=bot_message)
        except:
            return 0

    // Código existente
    cat = """
    ... e todo o resto do código aqui, identado

except Exception as error:
  sendTelegramMessage("😵 Uh oh, BombCrypto bot has died:\n\n" + str(error))

Aí no requirements.txt, adicionar:

python-telegram-bot

Rodar pip install -r requirements

Ah sim, pra funcionar tem que configurar o BotFather como explicado aqui.

E criar uma sala de chat e adicionar o bot criado.

Pra pegar o ID do chat: https://stackoverflow.com/a/32572159/584548 (Mas tem outros métodos também, só procurar no Google).

Eu coloquei msg pra quando o script morre e msg pra quando tá pedindo o captcha, que tá falhando pra resolver automaticamente.

Funciona legal.💰

Brother primeiramente muito obrigado por disponibilizar sua implementação, é ótima para notificar quando não consegue resolver o captcha, porém como o outro membro aí disse a cima também não estou conseguindo incrementar ele ao código original, tem como colocar um print de como fica o cabeçalho com ele? e no final do código precisa estar com o:

except Exception as error: sendTelegramMessage("😵 Uh oh, BombCrypto bot has died:\n\n" + error)

? Obrigado novamente!

backslash-f commented 2 years ago

@2mate Copia daqui: https://pastebin.com/imcM743K (clica em raw pra ficar mais fácil de copiar). 👍🏻

2mate commented 2 years ago

@backslash-f final de ano da rapaziada vai ser só alegricidade graças a todos os contribuintes desse projeto assim como você, muito obrigado abraço!

gabrielwjesus commented 2 years ago

Cara.. mto legal a ideia. Estou indo dormir e vim olhar as ideias kkkk já vi que não vou dormir. Temos uma opção mto boa pra isso: Um script main Que deixa uma thread Que ativa um segundo o script (o nosso bot) e monitora o funcionamento desse script. Em caso de erro ele pode não só enviar uma mensagem pelo telegrama como pode tentar reabrir o navegador e reiniciar o bot 🥰

kerferber commented 2 years ago

Cara.. mto legal a ideia. Estou indo dormir e vim olhar as ideias kkkk já vi que não vou dormir. Temos uma opção mto boa pra isso: Um script main Que deixa uma thread Que ativa um segundo o script (o nosso bot) e monitora o funcionamento desse script. Em caso de erro ele pode não só enviar uma mensagem pelo telegrama como pode tentar reabrir o navegador e reiniciar o bot 🥰

Bem interessante essa ideia @gabrielwjesus. Gostei mesmo

thiago-molive commented 2 years ago

Eu não entendi direito, em qual momento o bot cai?

Acredito q isso n deveria acontecer, se acontece é alguma exceção q está sendo lançada sem tratamento. Teria q procurar o problema e resolver.

M1D4SG0LD3N commented 2 years ago

Eu não entendi direito, em qual momento o bot cai?

Acredito q isso n deveria acontecer, se acontece é alguma exceção q está sendo lançada sem tratamento. Teria q procurar o problema e resolver.

Quando implementaram o captcha ele ao resolver acabava travando daí morria.

Amigo eu tava estudando sei código ontem e não consegui DE MANEIRA NENHUMA ENVIAR UMA jpg Para o bot no telegram, teria como vc me ajudar nisso ???

thiago-molive commented 2 years ago

Eu não entendi direito, em qual momento o bot cai? Acredito q isso n deveria acontecer, se acontece é alguma exceção q está sendo lançada sem tratamento. Teria q procurar o problema e resolver.

Quando implementaram o captcha ele ao resolver acabava travando daí morria.

Amigo eu tava estudando sei código ontem e não consegui DE MANEIRA NENHUMA ENVIAR UMA jpg Para o bot no telegram, teria como vc me ajudar nisso ???

Da uma olhada lá no meu fork que já tem coisa pronta lá pra enviar imagens. Só n tá sendo usado agr pq n preciso atualmente, mas o código ainda ta lá telegram_sendphoto algo assim

M1D4SG0LD3N commented 2 years ago

Eu não entendi direito, em qual momento o bot cai?

Acredito q isso n deveria acontecer, se acontece é alguma exceção q está sendo lançada sem tratamento. Teria q procurar o problema e resolver.

Quando implementaram o captcha ele ao resolver acabava travando daí morria.

Amigo eu tava estudando sei código ontem e não consegui DE MANEIRA NENHUMA ENVIAR UMA jpg Para o bot no telegram, teria como vc me ajudar nisso ???

Da uma olhada lá no meu fork que já tem coisa pronta lá pra enviar imagens. Só n tá sendo usado agr pq n preciso atualmente, mas o código ainda ta lá telegram_sendphoto algo assim

Sim eu modifiquei Oq foi preciso mas acabou que não envia a imagem sabe? Enviava msg mas a foto não por isso eu fiquei meio frustrado

thiago-molive commented 2 years ago

Eu não entendi direito, em qual momento o bot cai? Acredito q isso n deveria acontecer, se acontece é alguma exceção q está sendo lançada sem tratamento. Teria q procurar o problema e resolver.

Quando implementaram o captcha ele ao resolver acabava travando daí morria. Amigo eu tava estudando sei código ontem e não consegui DE MANEIRA NENHUMA ENVIAR UMA jpg Para o bot no telegram, teria como vc me ajudar nisso ???

Entendi, eu n usei mais essa versão aqui então tô por fora, mas vcs podem adicionar no método main um try except em todo o bloco assim mesmo que lançar exceção n vai finalizar o bot, pois a exceção vai ser tratada

Da uma olhada lá no meu fork que já tem coisa pronta lá pra enviar imagens. Só n tá sendo usado agr pq n preciso atualmente, mas o código ainda ta lá telegram_sendphoto algo assim

gabrielwjesus commented 2 years ago

Eu não entendi direito, em qual momento o bot cai?

Acredito q isso n deveria acontecer, se acontece é alguma exceção q está sendo lançada sem tratamento. Teria q procurar o problema e resolver.

eu acho que um dos erros que peguei é quando o jogo esta numa tela diferente e tenta fazer algo que não é daquela tela eu notei que isso aconteceu algumas vezes quando o captcha apareceu e ele por algum motivo não resolveu tentava ir para a proxima etapa e dava crash no programa. Ele não deveria tentar fazer outra coisa enqto houver um captcha na tela estou tentando implementar aqui uma função WhereAmI que vai dar retorno True ou False exemplo: "sending heroes" ... vai no whereAmI -> se estiver na tela de login do jogo ele nem tenta e pula pra proxima ação até fizeram ai um WaitScreen para o sendHeroes que ficou muito bom esse WaitScreen deve ser implementado pra todas as telas... SE ele não está na tela correspondente daquela ação, então não faz nada e pula pra proxima ação aciona um contador de tentativas.. se não andar pra nenhum lugar mete um Ctrl F5 e reinicia

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.