pink-mothra commited on
Commit
d37fe44
1 Parent(s): 9163cb5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -32
app.py CHANGED
@@ -1,59 +1,76 @@
1
  import os
2
-
3
- import telebot
 
4
 
5
  import requests
6
 
 
7
  BOT_TOKEN = os.environ.get('BOT_TOKEN')
8
 
9
- bot = telebot.TeleBot(BOT_TOKEN)
10
-
 
11
 
12
- @bot.message_handler(commands=['start', 'hello'])
13
- def send_welcome(message):
14
- bot.reply_to(message, "Posso gerar números aleatórios verdadeiros")
15
-
16
- @bot.message_handler(commands=['aleatorio'])
17
 
18
- def sign_handler(message):
 
19
  text = "Por favor escolha um tipo de dado:\nuint8 (Inteiros 0–255), uint16 (Inteiros 0–65535)"
20
- bot.reply_to(message, text)
 
 
 
 
 
21
 
22
- bot.register_next_step_handler(message, process_data_type_choice)
 
 
23
 
24
- def process_data_type_choice(message):
25
-
26
- data_type = message.text
27
 
28
-
29
- bot.reply_to(message, "Por favor, escolha o comprimento da matriz. O valor deve variar de 1 a 1024.")
 
30
 
31
- bot.register_next_step_handler(message, lambda msg: process_array_length_choice(msg, data_type))
 
32
 
33
- def process_array_length_choice(message, data_type):
34
-
35
- array_length = message.text
 
36
 
37
-
38
  api_url = f"https://qrng.anu.edu.au/API/jsonI.php?length={array_length}&type={data_type}"
39
 
40
-
41
  try:
42
  response = requests.get(api_url)
43
- response.raise_for_status()
44
 
45
-
46
  result = response.json()
47
-
48
-
49
  random_data = result.get('data', [])
50
 
51
-
52
- bot.reply_to(message, f"Números aleatórios verdadeiros: {random_data}")
53
 
54
  except requests.exceptions.RequestException as e:
55
-
56
- bot.reply_to(message, f"Aguarde 1 min depois da ultima solicitação")
 
 
 
 
 
 
 
 
57
 
 
 
58
 
59
- bot.infinity_polling()
 
 
1
  import os
2
+ import logging
3
+ from telegram import Update
4
+ from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
5
 
6
  import requests
7
 
8
+ # Configurar o token do bot
9
  BOT_TOKEN = os.environ.get('BOT_TOKEN')
10
 
11
+ # Configurar o logger
12
+ logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
13
+ logger = logging.getLogger(__name__)
14
 
15
+ # Função para lidar com o comando /start
16
+ def start(update: Update, context: CallbackContext) -> None:
17
+ update.message.reply_text("Posso gerar números aleatórios verdadeiros")
 
 
18
 
19
+ # Função para lidar com o comando /aleatorio
20
+ def aleatorio(update: Update, context: CallbackContext) -> None:
21
  text = "Por favor escolha um tipo de dado:\nuint8 (Inteiros 0–255), uint16 (Inteiros 0–65535)"
22
+ update.message.reply_text(text)
23
+
24
+ # Esperar a resposta do usuário sobre o tipo de dado
25
+ context.user_data['command'] = 'aleatorio'
26
+ context.user_data['data_type'] = None
27
+ update.message.reply_text("Por favor, escolha o comprimento da matriz. O valor deve variar de 1 a 1024.")
28
 
29
+ # Função para lidar com mensagens de texto
30
+ def text_handler(update: Update, context: CallbackContext) -> None:
31
+ user_data = context.user_data
32
 
33
+ # Verificar se estamos esperando a resposta do tipo de dado
34
+ if user_data.get('command') == 'aleatorio' and not user_data.get('data_type'):
35
+ user_data['data_type'] = update.message.text
36
 
37
+ # Perguntar ao usuário sobre o comprimento da matriz
38
+ update.message.reply_text("Por favor, escolha o comprimento da matriz. O valor deve variar de 1 a 1024.")
39
+ return
40
 
41
+ # Se não estamos esperando resposta, processar como mensagem comum
42
+ update.message.reply_text("Desculpe, não entendi. Você pode usar o comando /aleatorio para começar.")
43
 
44
+ # Função para lidar com a escolha do comprimento da matriz
45
+ def process_array_length_choice(update: Update, context: CallbackContext) -> None:
46
+ data_type = context.user_data.get('data_type')
47
+ array_length = update.message.text
48
 
 
49
  api_url = f"https://qrng.anu.edu.au/API/jsonI.php?length={array_length}&type={data_type}"
50
 
 
51
  try:
52
  response = requests.get(api_url)
53
+ response.raise_for_status()
54
 
 
55
  result = response.json()
 
 
56
  random_data = result.get('data', [])
57
 
58
+ update.message.reply_text(f"Números aleatórios verdadeiros: {random_data}")
 
59
 
60
  except requests.exceptions.RequestException as e:
61
+ update.message.reply_text(f"Aguarde 1 min depois da ultima solicitação. Detalhes: {str(e)}")
62
+
63
+ # Configurar o Updater e adicionar manipuladores
64
+ updater = Updater(BOT_TOKEN)
65
+ dispatcher = updater.dispatcher
66
+
67
+ dispatcher.add_handler(CommandHandler("start", start))
68
+ dispatcher.add_handler(CommandHandler("aleatorio", aleatorio))
69
+ dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, text_handler))
70
+ dispatcher.add_handler(MessageHandler(Filters.text, process_array_length_choice))
71
 
72
+ # Iniciar o polling
73
+ updater.start_polling()
74
 
75
+ # Manter o bot rodando
76
+ updater.idle()