import telebot from telebot import types import time # --- НАСТРОЙКИ --- TOKEN = '8317707454:AAHRAInErEdeLVO5d_NDWkYZtCMxU1wXBdw' ADMIN_ID = 0 BOT_START_TIME = int(time.time()) bot = telebot.TeleBot(TOKEN) user_data = {} def get_stats(): now = int(time.time()) diff = now - BOT_START_TIME # Стартовые значения: 5243 подарка и 8125 звезд gifts = (diff if diff > 0 else 0) + 5243 hours_passed = diff // 3600 saved_money = (hours_passed * 5000) + 8125 return gifts, saved_money def main_menu(): gifts, saved = get_stats() kb = types.InlineKeyboardMarkup(row_width=1) btn_nfts = types.InlineKeyboardButton("🎁 Подарки", callback_data="nft_list") btn_task = types.InlineKeyboardButton("📱 Написать комментарий в TikTok - + 100⭐", callback_data="tiktok_task") btn_profile = types.InlineKeyboardButton("👤 Профиль", callback_data="profile") kb.add(btn_nfts, btn_task, btn_profile) # Текст с жирными значениями, которые меняются text = ( "📍 Главное меню\n\n" f"🎁 Подарено подарков: **{gifts}**⠀\n" f"💸 Сэкономили для вас: **{saved}** ⭐\n\n" "Выбери категорию 👇" ) return text, kb def nft_menu(): kb = types.InlineKeyboardMarkup(row_width=1) items = [ "🎭 Маска", "💼 Рюкзак", "📅 Календарь", "🍭 Лолипоп", "🦩 Фламинго", "🥥 Кокос", "🥚 Яйцо", "🍦 Мороженое", "💩 Какашка", "🧁 Кекс", "☘️ Клевер", "🗑 Банка", "🐍 Змея", "🍸 Коктейль", "🕯 Свеча", "🐒 Обезьяна", "🍄 Гриб", "🌸 Цветок", "🎃 Тыква", "👁 Глаз", "🧹 Метла", "🍜 Рамен", "🗽 Статуя Свободы", "🧦 Носок", "🐶 Редо", "👜 Сумка", "⌚️ Часы", "🚬 Сигара", "⛑ Шлем", "🧢 Кепка", "🍑 Персик", "🐸 Лягушка", "👳‍♂️ Папаха", "🗿 Статуя Дурова", "💪 Бицепс", "🕴 Оскар", "🧴 Духи", "📦 UFC Бокс" ] for item in items: kb.add(types.InlineKeyboardButton(f"{item} — 35 ⭐", callback_data=f"buy_{item}")) kb.add(types.InlineKeyboardButton("Назад 🔙", callback_data="to_main")) return kb @bot.message_handler(commands=['start']) def start_cmd(message): user_data[message.chat.id] = {'photos': 0, 'is_uploading': False} text, kb = main_menu() bot.send_message(message.chat.id, text, reply_markup=kb, parse_mode="Markdown") @bot.callback_query_handler(func=lambda call: True) def handle_calls(call): chat_id = call.message.chat.id if call.data == "to_main": text, kb = main_menu() bot.edit_message_text(text, chat_id, call.message.message_id, reply_markup=kb, parse_mode="Markdown") elif call.data == "profile": user_id = call.from_user.id first_name = call.from_user.first_name profile_text = ( "📊 Ваш профиль!\n\n" f"┌ 💡 ID: `{user_id}`\n" f"├ 👤 Имя: {first_name}\n" f"├ 💰 Баланс дуровы: 50\n" "└ ⭐ Потрачено звёзд: 0" ) kb = types.InlineKeyboardMarkup() kb.add(types.InlineKeyboardButton("Назад 🔙", callback_data="to_main")) bot.edit_message_text(profile_text, chat_id, call.message.message_id, reply_markup=kb, parse_mode="Markdown") elif call.data == "nft_list": bot.edit_message_text("✨ НФТ подарки:", chat_id, call.message.message_id, reply_markup=nft_menu()) elif call.data.startswith("buy_"): item_full = call.data.replace("buy_", "") pay_text = ( f"🎁 {item_full}\n\n" "1️⃣ Нажмите кнопку ниже.\n" "2️⃣ Оплатите платное сообщение.\n" "3️⃣ После оплаты бот автоматически выдаст Вам подарок.\n\n" "⚡️ Скриншоты не нужны — подтверждение срабатывает автоматически." ) kb = types.InlineKeyboardMarkup(row_width=1) kb.add(types.InlineKeyboardButton("💳 Оплатить", callback_data="pay_now")) kb.add(types.InlineKeyboardButton("Назад 🔙", callback_data="nft_list")) bot.edit_message_text(pay_text, chat_id, call.message.message_id, reply_markup=kb) elif call.data == "tiktok_task": task_text = ( "📱 Задание: Комментарии в TikTok\n\n" "🎁 Награда: +100 ⭐\n\n" "📝 Что нужно сделать:\n\n" " 1️⃣ Откройте TikTok\n" " 2️⃣ Найдите любое видео в ленте\n" " 3️⃣ Напишите ровно 10 комментариев под разными видео с этим текстом:\n\n" "`зашёл в durov_play_bot и сразу получил подарок` \n" " (можно нажать, и скопировать)\n\n" " 4️⃣ Поставьте ❤️ лайк под каждым комментарием\n" " 5️⃣ Сделайте 10 скриншотов (комментарий + лайк)\n" " 6️⃣ Отправьте все 10 фото сюда подряд\n\n" "⏳ После проверки звёзды придут в течение 24 часов" ) kb = types.InlineKeyboardMarkup(row_width=1) kb.add(types.InlineKeyboardButton("✅ Я Выполнил - отправить скриншот", callback_data="send_screens")) kb.add(types.InlineKeyboardButton("Назад 🔙", callback_data="to_main")) bot.edit_message_text(task_text, chat_id, call.message.message_id, reply_markup=kb, parse_mode="Markdown") elif call.data == "send_screens": user_data[chat_id] = {'photos': 0, 'is_uploading': True} kb = types.InlineKeyboardMarkup().add(types.InlineKeyboardButton("Отменить ❌", callback_data="tiktok_task")) bot.edit_message_text("📸 Отправляйте 10 скриншотов по одному\n\nКак только будет ровно 10 — они автоматически отправятся на модерацию", chat_id, call.message.message_id, reply_markup=kb) @bot.message_handler(content_types=['photo']) def handle_photo_task(message): chat_id = message.chat.id if chat_id in user_data and user_data[chat_id].get('is_uploading'): user_data[chat_id]['photos'] += 1 count = user_data[chat_id]['photos'] if ADMIN_ID != 0: bot.forward_message(ADMIN_ID, chat_id, message.message_id) if count < 10: bot.send_message(chat_id, f"вы отправили {count} скрин из 9 для получения 100 ⭐ звезд") elif count == 10: kb = types.InlineKeyboardMarkup().add(types.InlineKeyboardButton("Хорошо", callback_data="to_main")) bot.send_message(chat_id, "Ожидайте модерации после проверок фоток вы получите звезды ⭐", reply_markup=kb) user_data[chat_id]['is_uploading'] = False @bot.message_handler(func=lambda m: True) def handle_any_text(message): chat_id = message.chat.id if chat_id in user_data and user_data[chat_id].get('is_uploading'): bot.send_message(chat_id, "Отправляй только фото скриншотов (по одному).") if __name__ == "__main__": bot.infinity_polling()