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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2Captcha x Telegram

LFRMS opened this issue · comments

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()

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.