PDA

Просмотр полной версии : ассинхронный фильтр aiogram


laiser
25.07.2022, 01:51
Всем привет, у меня опять проблема.

Есть функция, которая принимает ид и нужный текст, а возвращает уже переведенный текст.

Python:






async
def
return_txt
(
user_id
,
text
)
:
user_info
=
await
get_userx
(
user_id
)
new_text
=
await
get_textx
(
)
return
new_text
[
f'{text}{user_info["user_lang"]}'
]




Но я не знаю как сделать, чтобы бот реагировал на данный текст, хотелось бы что-то типо такого:

Python:






@dp.message_handler
(
text
=
await
return_txt
(
message
.
from_user
.
id
,
'but1'
)
)




Ну или так:

Python:






@dp.message_handler
(
lambda
msg
:
msg
.
text
==
await
return_txt
(
msg
.
from_user
.
id
,
'but1_'
)
)




Но там нет ассинхронности, и я не знаю что делать(

Neon3333
28.07.2022, 22:56
Всем привет, у меня опять проблема.
Есть функция, которая принимает ид и нужный текст, а возвращает уже переведенный текст.

Python:






async
def
return_txt
(
user_id
,
text
)
:
user_info
=
await
get_userx
(
user_id
)
new_text
=
await
get_textx
(
)
return
new_text
[
f'{text}{user_info["user_lang"]}'
]




Но я не знаю как сделать, чтобы бот реагировал на данный текст, хотелось бы что-то типо такого:

Python:






@dp.message_handler
(
text
=
await
return_txt
(
message
.
from_user
.
id
,
'but1'
)
)




Ну или так:

Python:






@dp.message_handler
(
lambda
msg
:
msg
.
text
==
await
return_txt
(
msg
.
from_user
.
id
,
'but1_'
)
)




Но там нет ассинхронности, и я не знаю что делать(


Ты не сделаешь мультиязычность таким образом, ты или пишешь свою мидлварь для перевода, или используешь готовые решения - I18n

Самый хреновый вариант - захардкодить все переводы в фильтры при регистрации руками

laiser
29.07.2022, 02:22
Ты не сделаешь мультиязычность таким образом, ты или пишешь свою мидлварь для перевода, или используешь готовые решения - I18n
Самый хреновый вариант - захардкодить все переводы в фильтры при регистрации руками


Большое спасибо за ответ, почитаю на досуге.

В моем же случае, я решил отказаться от ассинхронности.