Download main.py from zjsjdjsj/der: direct link, hf CLI and curl.
- Browser
- Download file 8.04 kB
-
https://huggingface.co/spaces/zjsjdjsj/der/resolve/main/main.py
- Command line
-
hf download hf://spaces/zjsjdjsj/der/main.py
-
curl -L -o main.py https://huggingface.co/spaces/zjsjdjsj/der/resolve/main/main.py
8.04 kB
| 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 | |
| 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") | |
| 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) | |
| 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 | |
| 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() | |