/
aexirm
/
botbot
Обзор
Документация
Войти
/
aexirm
/
botbot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
profile.py
105 строк
5 KB
aexirm
upload files
10 янв 2026, 20:19
10 янв 2026, 20:19
5b77c85
Код
Авторство
О чём код?
from models.users import User from config import MarkupPyrogram, ProjectProduct from pyrogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton from pyrogram import Client, filters from filters import message, callback @Client.on_message(filters.private & message(message=MarkupPyrogram.BUTTON_PROFILE)) async def profile(client: Client, message: Message): user = await User.filter(user_id=message.from_user.id).first() keyboard = [ [InlineKeyboardButton("💳 Пополнить", url="t.me/send?start=IVrMSJViN1WJ"), InlineKeyboardButton("💸 Перевести", callback_data=f"transfer")], [InlineKeyboardButton("👥 Рефералы", callback_data=f"referals"), InlineKeyboardButton("❤️ Избранные", callback_data=f"favorites")], [InlineKeyboardButton("📖 Правила", url="https://teletype.in/@montanashop/S6GZ7_kPf5f"), InlineKeyboardButton("🌐 Языки", callback_data=f"lang")] ] profile_markup = InlineKeyboardMarkup(keyboard) profile_message = ( f"💠 Ваш профиль:\n" f"➖➖➖➖➖➖➖➖➖➖\n" f"🪪 ID: `{user.user_id}`\n" f"💸 Баланс: `{user.user_balance}$`\n" f"➖➖➖➖➖➖➖➖➖➖\n" f"🛒 Куплено товаров: `{user.user_buy}`\n" f"💎 Сумма пополнений: `{user.user_donate}$`\n" f"➖➖➖➖➖➖➖➖➖➖\n" f"⏱ Регистрация: `{user.user_joined.strftime('%d.%m.%Y')}`\n" ) await client.send_photo( chat_id=message.chat.id, photo="AgACAgIAAxkBAAMPZrjiYwrtjKD_VZt370HGH_oZauAAAkfkMRt3s8hJxjLqRbWsQ68ACAEAAwIAA3kABx4E", caption=profile_message, reply_markup=profile_markup ) @Client.on_callback_query(callback("profiles")) async def profiles(client: Client, query: CallbackQuery): user = await User.filter(user_id=query.from_user.id).first() keyboard = [ [InlineKeyboardButton("💳 Пополнить", url="t.me/send?start=IVVihs4PTV9j"), InlineKeyboardButton("💸 Перевести", callback_data=f"transfer")], [InlineKeyboardButton("👥 Рефералы", callback_data=f"referals"), InlineKeyboardButton("❤️ Избранные", callback_data=f"favorites")], [InlineKeyboardButton("📖 Правила", url="https://teletype.in/@montanashop/S6GZ7_kPf5f"), InlineKeyboardButton("🌐 Языки", callback_data=f"lang")] ] profile_markup = InlineKeyboardMarkup(keyboard) profile_message = ( f"💠 Ваш профиль:\n" f"➖➖➖➖➖➖➖➖➖➖\n" f"🪪 ID: `{user.user_id}`\n" f"💸 Баланс: `{user.user_balance}$`\n" f"➖➖➖➖➖➖➖➖➖➖\n" f"🛒 Куплено товаров: `{user.user_buy}`\n" f"💎 Сумма пополнений: `{user.user_donate}$`\n" f"➖➖➖➖➖➖➖➖➖➖\n" f"⏱ Регистрация: `{user.user_joined.strftime('%d.%m.%Y')}`\n" ) await query.edit_message_text(profile_message) await query.edit_message_reply_markup(profile_markup) @Client.on_callback_query(callback("referals")) async def callback_referals(client: Client, query: CallbackQuery): user = await User.filter(user_id=query.from_user.id).first() referals = await User.filter(user_referal=query.from_user.id).count() keyboard = [ [InlineKeyboardButton("👥 Рефералы", callback_data="referallist"), InlineKeyboardButton("📖 Подробнее", url="https://teletype.in/@montanashop/C4a8tpjTQLX")], [InlineKeyboardButton("🔙 Вернуться", callback_data=f"profiles")] ] if user.user_referal == "0": referal = "`Другой источник`" else: referal = f"tg://user?id={user.user_referal}" product_markup = InlineKeyboardMarkup(keyboard) product_message = ( f"👤 Вас пригласил: {referal}\n" f"👥 Всего рефералов: `{referals}`\n\n" f"⛓ Ваша реферальная ссылка: \n" f"`https://t.me/montanashop_bot?start={query.from_user.id}`\n" ) await query.edit_message_text(product_message) await query.edit_message_reply_markup(product_markup) @Client.on_callback_query(callback("favorites")) async def callback_favorites(client: Client, query: CallbackQuery): user = await User.filter(user_id=query.from_user.id).first() keyboard = [] if len(user.user_favorite) == 0: return await query.answer("💔 У вас нет избранных товаров.", show_alert=True, cache_time=5) for favorite in user.user_favorite: data = ProjectProduct[favorite.split("|")[0]][favorite.split("|")[1]] name = f"{data['name']} | {data['price']} | {data['quantity']}" keyboard.append([InlineKeyboardButton( name, callback_data=f"product|{favorite.split('|')[0]}|{favorite.split('|')[1]}")] ) product_markup = InlineKeyboardMarkup(keyboard) product_message = f"Текущая категория: Избранные" await query.edit_message_text(product_message) await query.edit_message_reply_markup(product_markup)