ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   ассинхронный фильтр aiogram (https://forum.antichat.xyz/showthread.php?t=1442197)

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

Цитата:

Сообщение от laiser

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

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

Цитата:

Сообщение от Neon3333

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

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

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


Время: 22:03