Skip to content

Commit

Permalink
Merge branch 'master' into feature/#71
Browse files Browse the repository at this point in the history
  • Loading branch information
bomzheg authored Oct 6, 2024
2 parents d7a3d22 + 28ead94 commit 7a64c80
Show file tree
Hide file tree
Showing 5 changed files with 104 additions and 85 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def hint_parts_to_text(hints: list[BaseHint]) -> str:
assert isinstance(hint, GPSHint | VenueHint)
transformed = f"{hint.latitude},{hint.longitude}"
case _:
# TODO other cases
# TODO other cases #81
transformed = f"<b>unknown {hint.type}<b>"
result.append(transformed)

Expand Down
5 changes: 5 additions & 0 deletions shvatka/tgbot/dialogs/starters/editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ def setup() -> Router:
state=states.LevelSG.level_id,
router=router,
)
register_start_handler(
Command(commands=LEVELS_COMMAND),
state=states.LevelListSG.levels,
router=router,
)
register_start_handler(
Command(commands=NEW_GAME_COMMAND),
state=states.GameWriteSG.game_name,
Expand Down
15 changes: 14 additions & 1 deletion 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 All @@ -81,7 +87,12 @@ async def privacy(message: Message, user: dto.User):
importlib.resources.path("shvatka.infrastructure.assets", "privacy.txt") as path,
path.open("r") as f,
):
await message.reply(f.read())
await message.reply(
f"our privacy is something like https://telegram.org/privacy-tpa\n"
f"But this bot is only for Russian-speaking people, "
f"so detailed privacy is in Russian:\n"
f"{f.read()}"
)
privacy_counter.inc(1, {"user": str(user.tg_id)})


Expand All @@ -90,7 +101,9 @@ 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(
chat_type_cmd_group, Command(commands=CHAT_TYPE_COMMAND), F.chat.type == ChatType.GROUP
)
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
160 changes: 77 additions & 83 deletions shvatka/tgbot/views/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,25 @@ def __str__(self) -> str:


START_COMMAND = BotCommand(command="start", description="начало работы с ботом")
HELP_COMMAND = BotCommand(command="help", description="помощь") # TODO
HELP_COMMAND = BotCommand(command="help", description="помощь")
ABOUT_COMMAND = BotCommand(command="about", description="о боте")
CANCEL_COMMAND = BotCommand(command="cancel", description="отмена начатого диалога")
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 @@ -30,23 +43,29 @@ def __str__(self) -> str:
MANAGE_TEAM_COMMAND = BotCommand(
command="manage_team", description="открыть меню управления командой"
)
REMOVE_FROM_TEAM_COMMAND = BotCommand(
command="remove_from_team", description="удалить игрока из команды (реплаем по игроку)"
) # TODO
START_WAIVERS_COMMAND = BotCommand(command="waivers", description="начать сборку вейверов")
APPROVE_WAIVERS_COMMAND = BotCommand(
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
HELP_TEAM = CommandsGroup(
"Команды для управления командой:",
[
CREATE_TEAM_COMMAND,
ADD_IN_TEAM_COMMAND,
MANAGE_TEAM_COMMAND,
START_WAIVERS_COMMAND,
APPROVE_WAIVERS_COMMAND,
],
)


MY_GAMES_COMMAND = BotCommand(command="my_games", description="мои игры (включая черновики)")
NEW_LEVEL_COMMAND = BotCommand(command="new_level", description="новый уровень")
NEW_GAME_COMMAND = BotCommand(
command="new_game", description="начать сборку новой игры из ранее написанных уровней"
)
LEVELS_COMMAND = BotCommand(command="levels", description="показать список уровней")
GET_WAIVERS_COMMAND = BotCommand(command="get_waivers", description="показать текущие вейверы")
SPY_COMMAND = BotCommand(command="spy", description="Меню шпиона - организатора")
SPY_LEVELS_COMMAND = BotCommand(
Expand All @@ -57,102 +76,85 @@ def __str__(self) -> str:
)
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(
"Команды администратора игры",
[
MERGE_TEAMS,
],
)


MY_GAMES_COMMAND = BotCommand(command="my_games", description="мои игры (включая черновики)")
NEW_LEVEL_COMMAND = BotCommand(command="new_level", description="новый уровень")
NEW_GAME_COMMAND = BotCommand(
command="new_game", description="начать сборку новой игры из ранее написанных уровней"
)
LEVELS_COMMAND = BotCommand(command="levels", 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,
],
)

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 +163,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 7a64c80

Please sign in to comment.