| 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 |
| |
| 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() |
|
|