2Captcha x Telegram
LFRMS opened this issue · 1 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.