Spaces:
Sleeping
Sleeping
import os | |
import logging | |
from telegram import Update | |
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext | |
import requests | |
# Configurar o token do bot | |
BOT_TOKEN = os.environ.get('BOT_TOKEN') | |
# Configurar o logger | |
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO) | |
logger = logging.getLogger(__name__) | |
# Função para lidar com o comando /start | |
def start(update: Update, context: CallbackContext) -> None: | |
update.message.reply_text("Posso gerar números aleatórios verdadeiros") | |
# Função para lidar com o comando /aleatorio | |
def aleatorio(update: Update, context: CallbackContext) -> None: | |
text = "Por favor escolha um tipo de dado:\nuint8 (Inteiros 0–255), uint16 (Inteiros 0–65535)" | |
update.message.reply_text(text) | |
# Esperar a resposta do usuário sobre o tipo de dado | |
context.user_data['command'] = 'aleatorio' | |
context.user_data['data_type'] = None | |
update.message.reply_text("Por favor, escolha o comprimento da matriz. O valor deve variar de 1 a 1024.") | |
# Função para lidar com mensagens de texto | |
def text_handler(update: Update, context: CallbackContext) -> None: | |
user_data = context.user_data | |
# Verificar se estamos esperando a resposta do tipo de dado | |
if user_data.get('command') == 'aleatorio' and not user_data.get('data_type'): | |
user_data['data_type'] = update.message.text | |
# Perguntar ao usuário sobre o comprimento da matriz | |
update.message.reply_text("Por favor, escolha o comprimento da matriz. O valor deve variar de 1 a 1024.") | |
return | |
# Se não estamos esperando resposta, processar como mensagem comum | |
update.message.reply_text("Desculpe, não entendi. Você pode usar o comando /aleatorio para começar.") | |
# Função para lidar com a escolha do comprimento da matriz | |
def process_array_length_choice(update: Update, context: CallbackContext) -> None: | |
data_type = context.user_data.get('data_type') | |
array_length = update.message.text | |
api_url = f"https://qrng.anu.edu.au/API/jsonI.php?length={array_length}&type={data_type}" | |
try: | |
response = requests.get(api_url) | |
response.raise_for_status() | |
result = response.json() | |
random_data = result.get('data', []) | |
update.message.reply_text(f"Números aleatórios verdadeiros: {random_data}") | |
except requests.exceptions.RequestException as e: | |
update.message.reply_text(f"Aguarde 1 min depois da ultima solicitação. Detalhes: {str(e)}") | |
# Configurar o Updater e adicionar manipuladores | |
updater = Updater(BOT_TOKEN) | |
dispatcher = updater.dispatcher | |
dispatcher.add_handler(CommandHandler("start", start)) | |
dispatcher.add_handler(CommandHandler("aleatorio", aleatorio)) | |
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, text_handler)) | |
dispatcher.add_handler(MessageHandler(Filters.text, process_array_length_choice)) | |
# Iniciar o polling | |
updater.start_polling() | |
# Manter o bot rodando | |
updater.idle() | |