Spaces:
Sleeping
Sleeping
File size: 3,032 Bytes
4e0a07b d37fe44 0c706d1 d37fe44 0c706d1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 d2170e1 d37fe44 0c706d1 d37fe44 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
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()
|