Esempio n. 1
0
def profile_info(cod_user: Person) -> str:
    """Возвращает информацию о Пользователе в виде текста"""
    db = DB()
    if cod_user.platform is not None:
        platform = db.get_all_platforms(id=cod_user.platform)[0]
        platform_name = platform.name
    else:
        platform_name = None

    if cod_user.input_device is not None:
        input_device = db.get_all_input_devices(id=cod_user.input_device)[0]
        input_device_name = input_device.name
    else:
        input_device_name = None

    if cod_user.modified_at is not None:
        modified_at = str(cod_user.modified_at.strftime("%d.%m.%Y %H:%M"))
    else:
        modified_at = None
    db.close()
    text_by_strings = [
        f'Информация о пользователе:',
        '',
        f'Порядковый номер в базе данных: {cod_user.id}',
        f'Имя или ник: <b>{cod_user.name_or_nickname}</b>',
        f'Аккаунт ACTIVISION: <b>{cod_user.activision_account}</b>',
        f'Аккаунт PSN: <b>{cod_user.psn_account}</b>',
        f'Аккаунт Blizzard: <b>{cod_user.blizzard_account}</b>',
        f'Аккаунт Xbox: <b>{cod_user.xbox_account}</b>',
        f'Предпочитаемая платформа: <b>{platform_name}</b>',
        f'Предпочитаемое устройство ввода: <b>{input_device_name}</b>',
        f'О себе: <b>{cod_user.about_yourself}</b>',
        f'',
        f'Last update: {modified_at}'
    ]
    full_text = '\n'.join(text_by_strings)  # красивый способ объеденить строки с пререносами
    return full_text
Esempio n. 2
0
async def command_me(query: types.CallbackQuery, state: FSMContext):
    await types.ChatActions.typing()
    data = await state.get_data()
    logger.info(f'Пользователь {query.from_user.full_name} '
                f'(ID: {query.from_user.id}) нажал кнопку {query.data}')
    db = DB()
    tg_account = db.get_tg_account(tg_id=query.from_user.id)
    person = db.get_person_by_tg_account(tg_account=tg_account)

    input_device = db.get_all_input_devices(id=query.data)[0]
    person.input_device = input_device.id
    db.update_person(person)

    await bot.answer_callback_query(callback_query_id=query.id)

    message_text = "Данные об устройстве ввода, которое вы используете для игры в Call of Duty, успешно обновлены!"

    await bot.edit_message_text(chat_id=query.from_user.id,
                                message_id=data['main_message_id'],
                                text=message_text,
                                reply_markup=inline.inline_kb_go_back,
                                parse_mode=types.ParseMode.HTML)

    db.close()
Esempio n. 3
0
from random import shuffle

from aiogram import types
from keyboards.inline.cancel_button import go_back_button
from utils.db_api.alchemy import DB

kb_input_device = types.InlineKeyboardMarkup(
    row_width=1)  # создаём экземпляр клавиатуры

db = DB()
input_devices = db.get_all_input_devices()
shuffle(input_devices)
for input_device in input_devices:
    button = types.InlineKeyboardButton(text=input_device.name,
                                        callback_data=input_device.id)
    kb_input_device.add(button)
kb_input_device.add(go_back_button)  # добавляем кнопку отмена
db.close()