~cytrogen/evi-run

ref: 2126525f0d329b7dc1d677fa1c5115335e668ad8 evi-run/bot/routers/admin.py -rw-r--r-- 1.5 KiB
2126525f — Bendy Fix undefined name error in config.py 6 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from aiogram import F, Router
from aiogram.types import Message, CallbackQuery
from aiogram.filters import Command, Filter, CommandObject
from aiogram_dialog import DialogManager, StartMode

from config import ADMIN_ID
from database.repositories.utils import UtilsRepository
import bot.keyboards.inline as inline_kb
from bot.states.states import Knowledge


class IsAdmin(Filter):
    async def __call__(self, event: Message | CallbackQuery):
        return event.from_user.id == ADMIN_ID


router = Router()


@router.message(Command('token_price'), IsAdmin())
async def token_price(message: Message, command: CommandObject, utils_repo: UtilsRepository, i18n):
    if command.args:
        try:
            price = float(command.args)
            await utils_repo.update_token_price(price)
            return await message.answer(text=i18n.get('token_price_updated_text'))
        except Exception as e:
            await message.answer(text=i18n.get('token_price_error_text'))
            return
    price_token = await utils_repo.get_token()
    if price_token:
        return await message.answer(text=f'${price_token.price_usd}', reply_markup=inline_kb.close_text(i18n.get('close_kb')))
    
    return await message.answer(text=i18n.get('not_token_price_error_text'))


@router.message(Command('knowledge'), IsAdmin())
async def cmd_knowledge(message: Message, utils_repo: UtilsRepository, i18n, dialog_manager: DialogManager):
    await dialog_manager.start(state=Knowledge.main, mode=StartMode.RESET_STACK)