Skip to content

Commit

Permalink
added help
Browse files Browse the repository at this point in the history
  • Loading branch information
bomzheg committed Aug 17, 2024
1 parent d6c9be2 commit 41e4aef
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 79 deletions.
7 changes: 7 additions & 0 deletions shvatka/tgbot/handlers/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
CHAT_ID_COMMAND,
ABOUT_COMMAND,
CHAT_TYPE_COMMAND,
HELP_USER,
HELP_COMMAND,
)

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -55,6 +57,10 @@ async def cmd_about(message: Message, user: dto.User, chat: dto.Chat):
await message.reply("Разработчик бота - @bomzheg\n")


async def cmd_help(message: Message):
await message.reply(HELP_USER)


async def chat_type_cmd_supergroup(message: Message):
await message.reply(
"Группа имеет тип supergroup, "
Expand Down Expand Up @@ -95,6 +101,7 @@ def setup() -> Router:
router.message.register(
chat_id, Command(commands=["idchat", CHAT_ID_COMMAND.command], prefix="/!")
)
router.message.register(cmd_help, Command(HELP_COMMAND))
router.message.register(cmd_about, Command(commands=ABOUT_COMMAND))
router.message.register(cmd_about, Command(commands="developer_info"))
router.message.register(
Expand Down
7 changes: 7 additions & 0 deletions shvatka/tgbot/handlers/superuser.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
EXCEPTION_COMMAND,
UPDATE_COMMANDS,
VERSION_COMMAND,
HELP_USER_ADMIN,
HELP_COMMAND,
)

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -57,6 +59,10 @@ async def version_handler(message: Message, main_config: TgBotConfig):
await message.answer(f"Дата билда: {version.build_at}\nВерсия: {version.vcs_hash}")


async def cmd_help_admin(message: Message):
await message.reply(HELP_USER_ADMIN)


def setup(bot_config: BotConfig) -> Router:
router = Router(name=__name__)
is_superuser_ = partial(is_superuser, superusers=bot_config.superusers)
Expand All @@ -66,4 +72,5 @@ def setup(bot_config: BotConfig) -> Router:
router.message.register(leave_chat, Command(commands=GET_OUT))
router.message.register(clean_commands_menu_handler, Command(commands=UPDATE_COMMANDS))
router.message.register(version_handler, Command(commands=VERSION_COMMAND))
router.message.register(cmd_help_admin, Command(commands=HELP_COMMAND))
return router
157 changes: 78 additions & 79 deletions shvatka/tgbot/views/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,19 @@ def __str__(self) -> str:
CHAT_ID_COMMAND = BotCommand(command="chat_id", description="узнать chat_id данного чата")
CHAT_TYPE_COMMAND = BotCommand(command="chat_type", description="узнать chat_id данного чата")

HELP_BASE = CommandsGroup(
"Базовые команды:",
[
START_COMMAND,
HELP_COMMAND,
ABOUT_COMMAND,
CANCEL_COMMAND,
CHAT_ID_COMMAND,
CHAT_TYPE_COMMAND,
],
)


CREATE_TEAM_COMMAND = BotCommand(
command="create_team", description="создать команду на базе текущего чата"
)
Expand All @@ -38,64 +51,15 @@ def __str__(self) -> str:
command="approve_waivers", description="закрыть сборку вейверов"
)

STATUS_COMMAND = BotCommand(command="status", description="статус схватки") # TODO
TEAM_COMMAND = BotCommand(command="team", description="команда")
TEAMS_COMMAND = BotCommand(command="teams", description="список команд")
PLAYERS_COMMAND = BotCommand(command="players", description="игроки команды")
ALL_PLAYERS_COMMAND = BotCommand(command="all_players", description="игроки команды") # TODO
ME_COMMAND = BotCommand(command="me", description="мой профиль") # TODO
LEAVE_COMMAND = BotCommand(command="leave", description="выйти из команды")
GAMES_COMMAND = BotCommand(command="games", description="список игр") # TODO

GET_WAIVERS_COMMAND = BotCommand(command="get_waivers", description="показать текущие вейверы")
SPY_COMMAND = BotCommand(command="spy", description="Меню шпиона - организатора")
SPY_LEVELS_COMMAND = BotCommand(
command="spy_levels", description="показать на каких уровнях команды (только во время игры)"
)
SPY_KEYS_COMMAND = BotCommand(
command="spy_keys", description="получить введённые ключи (только во время игры)"
)
PUBLISH_COMMAND = BotCommand(command="publish_forum", description="опубликовать на форуме")

HELP_BASE = CommandsGroup(
"Базовые команды:",
[
START_COMMAND,
HELP_COMMAND,
ABOUT_COMMAND,
CANCEL_COMMAND,
CHAT_ID_COMMAND,
CHAT_TYPE_COMMAND,
],
)
UPDATE_COMMANDS = BotCommand(command="update_commands", description="обновить команды бота")
VERSION_COMMAND = BotCommand(command="version", description="получить версию приложения")
EXCEPTION_COMMAND = BotCommand(command="exception", description="сгенерировать исключение")
GET_OUT = BotCommand(command="get_out", description="бот, уходи из чата!")
JOBS_COMMAND = BotCommand(command="jobs", description="запланированные функции")
CANCEL_JOBS_COMMAND = BotCommand(
command="cancel_jobs", description="отменить запланированные функции"
)
HELP_ADMIN = CommandsGroup(
"Команды администратора бота:",
[
JOBS_COMMAND,
CANCEL_JOBS_COMMAND,
EXCEPTION_COMMAND,
UPDATE_COMMANDS,
VERSION_COMMAND,
GET_OUT,
],
)


MERGE_TEAMS = BotCommand(
command="merge_teams", description="объединить достижения команды в разных источниках"
)
HELP_GAME_ADMIN = CommandsGroup(
"Команды администратора игры",
HELP_TEAM = CommandsGroup(
"Команды для управления командой:",
[
MERGE_TEAMS,
CREATE_TEAM_COMMAND,
ADD_IN_TEAM_COMMAND,
MANAGE_TEAM_COMMAND,
REMOVE_FROM_TEAM_COMMAND,
START_WAIVERS_COMMAND,
APPROVE_WAIVERS_COMMAND,
],
)

Expand All @@ -106,53 +70,96 @@ def __str__(self) -> str:
command="new_game", description="начать сборку новой игры из ранее написанных уровней"
)
LEVELS_COMMAND = BotCommand(command="levels", description="показать список уровней") # TODO
GET_WAIVERS_COMMAND = BotCommand(command="get_waivers", description="показать текущие вейверы")
SPY_COMMAND = BotCommand(command="spy", description="Меню шпиона - организатора")
SPY_LEVELS_COMMAND = BotCommand(
command="spy_levels", description="показать на каких уровнях команды (только во время игры)"
)
SPY_KEYS_COMMAND = BotCommand(
command="spy_keys", description="получить введённые ключи (только во время игры)"
)
PUBLISH_COMMAND = BotCommand(command="publish_forum", description="опубликовать на форуме")

HELP_ORG = CommandsGroup(
"Команды для организаторов:",
[
MY_GAMES_COMMAND,
NEW_LEVEL_COMMAND,
NEW_GAME_COMMAND,
LEVELS_COMMAND,
NEW_LEVEL_COMMAND,
GET_WAIVERS_COMMAND,
SPY_COMMAND,
SPY_LEVELS_COMMAND,
SPY_KEYS_COMMAND,
PUBLISH_COMMAND,
],
)

HELP_TEAM = CommandsGroup(
"Команды для управления командой:",
[
CREATE_TEAM_COMMAND,
ADD_IN_TEAM_COMMAND,
MANAGE_TEAM_COMMAND,
REMOVE_FROM_TEAM_COMMAND,
START_WAIVERS_COMMAND,
APPROVE_WAIVERS_COMMAND,
],
)

STATUS_COMMAND = BotCommand(command="status", description="статус схватки") # TODO
TEAM_COMMAND = BotCommand(command="team", description="команда")
TEAMS_COMMAND = BotCommand(command="teams", description="список команд")
PLAYERS_COMMAND = BotCommand(command="players", description="игроки команды")
ME_COMMAND = BotCommand(command="me", description="мой профиль") # TODO
GAMES_COMMAND = BotCommand(command="games", description="список игр")
LEAVE_COMMAND = BotCommand(command="leave", description="выйти из команды")

HELP_INFO = CommandsGroup(
"Другие команды:",
[
STATUS_COMMAND,
TEAM_COMMAND,
TEAMS_COMMAND,
PLAYERS_COMMAND,
ME_COMMAND,
GAMES_COMMAND,
LEAVE_COMMAND,
],
)

MERGE_TEAMS = BotCommand(
command="merge_teams", description="объединить достижения команды в разных источниках"
)
HELP_GAME_ADMIN = CommandsGroup(
"Команды администратора игры",
[
MERGE_TEAMS,
],
)

UPDATE_COMMANDS = BotCommand(command="update_commands", description="обновить команды бота")
VERSION_COMMAND = BotCommand(command="version", description="получить версию приложения")
EXCEPTION_COMMAND = BotCommand(command="exception", description="сгенерировать исключение")
GET_OUT = BotCommand(command="get_out", description="бот, уходи из чата!")
JOBS_COMMAND = BotCommand(command="jobs", description="запланированные функции")
CANCEL_JOBS_COMMAND = BotCommand(
command="cancel_jobs", description="отменить запланированные функции"
)

HELP_ADMIN = CommandsGroup(
"Команды администратора бота:",
[
JOBS_COMMAND,
CANCEL_JOBS_COMMAND,
EXCEPTION_COMMAND,
UPDATE_COMMANDS,
VERSION_COMMAND,
GET_OUT,
],
)

HELP_USER = "\n\n".join(
map(
str,
(
HELP_BASE,
HELP_ORG,
HELP_TEAM,
HELP_ORG,
HELP_INFO,
),
)
)

HELP_USER_ADMIN = "\n\n".join(
map(
str,
Expand All @@ -161,16 +168,8 @@ def __str__(self) -> str:
HELP_ORG,
HELP_TEAM,
HELP_INFO,
HELP_GAME_ADMIN,
HELP_ADMIN,
),
)
)

DEFAULT_COMMANDS = [
HELP_COMMAND,
GAMES_COMMAND,
STATUS_COMMAND,
CANCEL_COMMAND,
TEAM_COMMAND,
ME_COMMAND,
]

0 comments on commit 41e4aef

Please sign in to comment.