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