Skip to content

Commit

Permalink
added admin commands to join teams
Browse files Browse the repository at this point in the history
  • Loading branch information
bomzheg committed May 25, 2024
1 parent 37c536e commit bd7806f
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 1 deletion.
3 changes: 2 additions & 1 deletion shvatka/tgbot/handlers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from shvatka.tgbot import dialogs
from shvatka.tgbot.config.models.bot import BotConfig
from shvatka.tgbot.handlers import errors, merge
from shvatka.tgbot.handlers import errors, merge, admin
from shvatka.tgbot.handlers import game, waivers, player
from shvatka.tgbot.handlers import last
from shvatka.tgbot.handlers import superuser, base
Expand All @@ -25,6 +25,7 @@ def setup_handlers(
dp.include_router(merge.setup(bot_config))
dp.include_router(game.setup())
dp.include_router(waivers.setup())
dp.include_router(admin.setup(bot_config))

bg_manager_factory = dialogs.setup(dp, message_manager)

Expand Down
35 changes: 35 additions & 0 deletions shvatka/tgbot/handlers/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from functools import partial

from aiogram import Router, types
from aiogram.filters import Command, CommandObject

from shvatka.core.services.team import get_team_by_id, merge_teams
from shvatka.core.views.game import GameLogWriter
from shvatka.infrastructure.db.dao.holder import HolderDao
from shvatka.tgbot.config.models.bot import BotConfig
from shvatka.tgbot.filters import is_superuser
from shvatka.tgbot.views.commands import MERGE_TEAMS


async def merge_teams_command(
message: types.Message,
command: CommandObject,
game_log: GameLogWriter,
dao: HolderDao,
):
old_id, new_id = map(int, command.args.split())
primary = await get_team_by_id(new_id, dao.team)
assert primary.captain
secondary = await get_team_by_id(old_id, dao.team)
await merge_teams(primary.captain, primary, secondary, game_log, dao.team_merger)
await message.reply(f"Успешно объединены {primary.name} и {secondary.name}")


def setup(bot_config: BotConfig) -> Router:
router = Router(name=__name__)
is_superuser_ = partial(is_superuser, superusers=bot_config.superusers)
router.message.filter(is_superuser_)

router.message.register(merge_teams, Command(MERGE_TEAMS))

return router
11 changes: 11 additions & 0 deletions shvatka/tgbot/views/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,17 @@ def __str__(self) -> str:
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(
Expand Down

0 comments on commit bd7806f

Please sign in to comment.