Skip to content

Commit 19f23b6

Browse files
wolfram request refactoring
1 parent 672e0b3 commit 19f23b6

File tree

1 file changed

+43
-20
lines changed

1 file changed

+43
-20
lines changed

telegram_bot/handlers/messages/wolfram_request.py

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from io import BytesIO
22

3-
from telegram.ext import run_async
4-
53
from system.config import WOLFRAM_APP_ID
64
from system.db import db
75
from telegram_bot.handlers.utils.decorators import write_logs, send_typing, \
@@ -13,35 +11,60 @@
1311
from wolfram.api import make_wolfram_request, make_simple_wolfram_request
1412

1513

16-
@run_async
1714
@write_logs
1815
@send_typing
1916
@remember_new_user
2017
def handle_wolfram_request(bot, update, prefix: str = '') -> int:
2118
chat_id = update.message.chat_id
19+
reply_markup = create_main_reply_markup()
2220
request = f'{prefix} {update.message.text}'.strip()
2321
current_user = db.session.query(User).filter_by(
2422
telegram_id=update.message.from_user.id
2523
).first()
26-
reply_markup = create_main_reply_markup()
27-
2824
if current_user.simple_mode:
29-
answer = make_simple_wolfram_request(request, WOLFRAM_APP_ID)
30-
if not answer:
31-
bot.send_message(
32-
chat_id=chat_id,
33-
text='Unsuccessful. Check your request and try again',
34-
reply_markup=reply_markup
35-
)
36-
else:
37-
bytes_io = BytesIO(answer)
38-
bot.send_photo(
39-
chat_id=chat_id,
40-
photo=bytes_io,
41-
reply_markup=reply_markup
42-
)
43-
return MenuEntry.START_MENU.value
25+
return handle_simple_wolfram_request(
26+
bot,
27+
chat_id,
28+
request,
29+
reply_markup
30+
)
31+
return handle_detailed_wolfram_request(
32+
bot,
33+
chat_id,
34+
request,
35+
reply_markup
36+
)
37+
38+
39+
def handle_simple_wolfram_request(
40+
bot,
41+
chat_id,
42+
request,
43+
reply_markup
44+
) -> int:
45+
answer = make_simple_wolfram_request(request, WOLFRAM_APP_ID)
46+
if not answer:
47+
bot.send_message(
48+
chat_id=chat_id,
49+
text='Unsuccessful. Check your request and try again',
50+
reply_markup=reply_markup
51+
)
52+
else:
53+
bytes_io = BytesIO(answer)
54+
bot.send_photo(
55+
chat_id=chat_id,
56+
photo=bytes_io,
57+
reply_markup=reply_markup
58+
)
59+
return MenuEntry.START_MENU.value
60+
4461

62+
def handle_detailed_wolfram_request(
63+
bot,
64+
chat_id,
65+
request,
66+
reply_markup
67+
) -> int:
4568
answer = make_wolfram_request(request, WOLFRAM_APP_ID)
4669
parsed_answer = parse_wolfram_answer(answer)
4770
for message in parsed_answer[:-1]:

0 commit comments

Comments
 (0)