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 540 forks source link

2Captcha x Telegram #773

Closed LFRMS closed 8 months ago

LFRMS commented 11 months ago

Criei um script para que consiga fazer com que o meu bot do telegram faça comunicação com o bot do 2captcha , porém não estou tendo exito quando eu dou start no bot do telegram para depois dar start no 2captcha .

O que eu preciso arrumar para que o mesmo funcione?

Segue o código

import requests from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

Configurações da API do 2Captcha

CAPTCHA_API_KEY = '5bafac75c0d9194f534695dee37a61dc' CAPTCHA_TIMEOUT = 120 # Tempo limite para resolver o captcha em segundos

Configurações do bot do Telegram

TELEGRAM_BOT_TOKEN = '6556791573:AAEbrDGPiu8v7uqeNKSxuMYuC5P31t-Cy4g'

ID do seu bot do Telegram

BOT_ID = '6556791573' # Substitua por seu nome de usuário do bot

Função para resolver o captcha usando o 2Captcha

def solve_captcha(api_key, captcha_data):

Envie a solicitação para o 2Captcha

response = requests.post(f'https://2captcha.com/in.php?key={api_key}&method=base64&json=1&body={captcha_data}')
request_result = response.json()

if request_result['status'] == 1:
    captcha_id = request_result['request']
    while True:
        # Aguarde até que o captcha seja resolvido
        if CAPTCHA_TIMEOUT <= 0:
            return None
        captcha_response = requests.get(f'https://2captcha.com/res.php?key={api_key}&action=get&id={captcha_id}&json=1')
        result = captcha_response.json()
        if result['status'] == 1:
            return result['request']
        elif result['status'] == 0:
            return None
        CAPTCHA_TIMEOUT -= 5  # Aguarda mais 5 segundos

Função para lidar com mensagens de imagem no Telegram

def handle_image(update, context):

Suponha que a imagem seja enviada como um arquivo

file_id = update.message.photo[-1].file_id
file = context.bot.get_file(file_id)

# Baixe a imagem e converta para base64
image_data = file.download_as_bytearray()
image_base64 = base64.b64encode(image_data).decode('utf-8')

# Envie a imagem ao seu próprio bot para resolução
context.bot.send_photo(BOT_ID, InputFile(file_id))

# Resolva o captcha
captcha_solution = solve_captcha(CAPTCHA_API_KEY, image_base64)

if captcha_solution:
    update.message.reply_text(f'Captcha resolvido: {captcha_solution}')
else:
    update.message.reply_text('Não foi possível resolver o captcha.')

Função para lidar com mensagens de texto

def handle_text(update, context):

Resolva o captcha

captcha_solution = solve_captcha(CAPTCHA_API_KEY, update.message.text)

if captcha_solution:
    update.message.reply_text(f'Captcha resolvido: {captcha_solution}')
else:
    update.message.reply_text('Não foi possível resolver o captcha.')

Função para lidar com o comando /start

def start(update, context): update.message.reply_text('Envie uma imagem contendo um captcha ou um captcha como uma string.')

Função para lidar com erros

def error(update, context): update.message.reply_text('Ocorreu um erro inesperado.')

def main(): updater = Updater(token=TELEGRAM_BOT_TOKEN, use_context=True)

# Registre manipuladores de comandos, mensagens de imagem e mensagens de texto
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(MessageHandler(Filters.photo, handle_image))
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_text))
dispatcher.add_error_handler(error)

updater.start_polling()
updater.idle()

if name == 'main': main()

stale[bot] commented 9 months 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.