diff options
| author | Igor Tolmachov <me@igorek.dev> | 2022-12-03 18:20:16 +0900 |
|---|---|---|
| committer | Igor Tolmachov <me@igorek.dev> | 2022-12-03 18:20:16 +0900 |
| commit | 0d5cab62b0d077ad7946b64a534e3914f1cc79dd (patch) | |
| tree | e2bd44b832d29312d05cf736f691ba5b87e611c3 | |
| parent | d717c4e08245196b0d528716f9d269c71749365a (diff) | |
| download | karpov_ai_bot-0d5cab62b0d077ad7946b64a534e3914f1cc79dd.tar.gz karpov_ai_bot-0d5cab62b0d077ad7946b64a534e3914f1cc79dd.zip | |
2.0
| -rw-r--r-- | handlers/config.py | 3 | ||||
| -rw-r--r-- | handlers/gen.py | 14 | ||||
| -rw-r--r-- | shared/settings.py | 10 |
3 files changed, 18 insertions, 9 deletions
diff --git a/handlers/config.py b/handlers/config.py index 21d556b..7628805 100644 --- a/handlers/config.py +++ b/handlers/config.py | |||
| @@ -1,4 +1,5 @@ | |||
| 1 | from json import JSONDecodeError, dumps, loads | 1 | from json import JSONDecodeError, dumps, loads |
| 2 | from logging import info | ||
| 2 | 3 | ||
| 3 | from aiogram import types as t | 4 | from aiogram import types as t |
| 4 | from pydantic import BaseModel, ValidationError | 5 | from pydantic import BaseModel, ValidationError |
| @@ -42,7 +43,7 @@ async def settings_command(msg: t.Message) -> None: | |||
| 42 | text = "" | 43 | text = "" |
| 43 | for field_name in path: | 44 | for field_name in path: |
| 44 | assert ( | 45 | assert ( |
| 45 | isinstance(config, BaseModel) and f in config.__fields__ | 46 | isinstance(config, BaseModel) and field_name in config.__fields__ |
| 46 | ), "Параметр не найден" | 47 | ), "Параметр не найден" |
| 47 | field_info = config.__fields__[field_name].field_info | 48 | field_info = config.__fields__[field_name].field_info |
| 48 | config = getattr(config, field_name) | 49 | config = getattr(config, field_name) |
diff --git a/handlers/gen.py b/handlers/gen.py index e4398bd..72afb79 100644 --- a/handlers/gen.py +++ b/handlers/gen.py | |||
| @@ -39,10 +39,9 @@ def get_text(chat_id: int) -> str: | |||
| 39 | 39 | ||
| 40 | @dp.message_handler(commands=["gen"]) | 40 | @dp.message_handler(commands=["gen"]) |
| 41 | async def gen_command(msg: t.Message) -> None: | 41 | async def gen_command(msg: t.Message) -> None: |
| 42 | await msg.delete() | 42 | if config.get_config(msg.chat.id).gen.delete_command: |
| 43 | message = get_text(msg.chat.id) | 43 | await msg.delete() |
| 44 | if message is not None: | 44 | await msg.answer(get_text(msg.chat.id)) |
| 45 | await msg.answer(message) | ||
| 46 | 45 | ||
| 47 | 46 | ||
| 48 | @dp.message_handler(commands=["del"]) | 47 | @dp.message_handler(commands=["del"]) |
| @@ -64,6 +63,7 @@ async def del_command(msg: t.Message) -> None: | |||
| 64 | content_types=[t.ContentType.ANY], | 63 | content_types=[t.ContentType.ANY], |
| 65 | ) | 64 | ) |
| 66 | async def chance_message(msg: t.Message) -> None: | 65 | async def chance_message(msg: t.Message) -> None: |
| 67 | message = get_text(msg.chat.id) | 66 | if config.get_config(msg.chat.id).gen.reply: |
| 68 | if message is not None: | 67 | await msg.reply(get_text(msg.chat.id)) |
| 69 | await msg.reply(message) | 68 | else: |
| 69 | await msg.answer(get_text(msg.chat.id)) | ||
diff --git a/shared/settings.py b/shared/settings.py index 731fade..560f8f8 100644 --- a/shared/settings.py +++ b/shared/settings.py | |||
| @@ -10,10 +10,18 @@ class Settings(BaseSettings): | |||
| 10 | class GenConfig(BaseModel): | 10 | class GenConfig(BaseModel): |
| 11 | chance: int = Field( | 11 | chance: int = Field( |
| 12 | 10, | 12 | 10, |
| 13 | description="Шанс с которым бот оеи а сообщение", | 13 | description="Шанс с которым бот енеиут сообщение", |
| 14 | ge=1, | 14 | ge=1, |
| 15 | le=100, | 15 | le=100, |
| 16 | ) | 16 | ) |
| 17 | reply: bool = Field( | ||
| 18 | True, | ||
| 19 | description="Включить/Выключить ответ на сообщение", | ||
| 20 | ) | ||
| 21 | delete_command: bool = Field( | ||
| 22 | True, | ||
| 23 | description="Включить/Выключить удаление /gen команды", | ||
| 24 | ) | ||
| 17 | min_word_count: int | str | None = Field( | 25 | min_word_count: int | str | None = Field( |
| 18 | None, | 26 | None, |
| 19 | description="Минимальное количество слов в сгенерированном предложении", | 27 | description="Минимальное количество слов в сгенерированном предложении", |
