Сделал для вас плагин что-бы пассивно (почти) фармить бабки. Выдача звезд работает через @apovel_bot Инструкция: Сервивс закрылся, но я продаю бота для продажи звезд. Пишите в ТГ. 1. Заходим к https://t.me/toncenter и регаем бесплатный API ключ, заменяем в файле YOUR_TONCENTER_API_KEY на ваш ключ 2. Заходим к @apovel_bot и гетаем API ключ, заменяем в файле POVEL_API_TOKEN на ваш ключ 3. Топапаем баланс бота (За отзыв в теме даю 0.25 TON на балик) 4. Стартуем бота, профит! Бот выдает вне зависимости вот тайтлов и всего остального. БОТ ВЫДАЕТ МИНИМУМ 50 ЗВЕЗД!!! Bot.py from __future__ import annotations import os import json import time import hashlib import hmac import logging import random import urllib import base64 import requests from locales.localizer import Localizer from cardinal import Cardinal from FunPayAPI.updater.events import NewOrderEvent, NewMessageEvent logger = logging.getLogger(__name__) localizer = Localizer() _ = localizer.translate #Настройки бота plugin_settings = { "TONCENTER_API": "YOUR_TONCENTER_API_KEY", #Получите у @tonapibot "POVEL_API_TOKEN": "YOUR_POVEL_API" #Получите у @apovel_bot } NAME = "Telegram Auto-Stars" VERSION = "1.0.0" DESCRIPTION = " Плагин для автоматической отправки звезд в Телеграме.\n Плагин работает с сервисом Povel API (@apovel_bot).\n\n НЕ ЗАБУДЬТЕ ЗАМЕНИТЬ КЛЮЧИ В ФАЙЛЕ ПЛАГИНА!!!" CREDITS = "@sandfoxy | https://github.com/SandFoxy" UUID = "3c7a4e3b-6b56-4769-88f2-04be496ae190" SETTINGS_PAGE = True logger.info(f"[{NAME}] Плагин загружен!") order_data = {} def new_message_handler(cardinal: Cardinal, event: NewMessageEvent) -> None: try: user_id = str(event.message.author_id) if user_id not in order_data: return if order_data[user_id]["state"] == "username": order_data[user_id]["user_tag"] = event.message.text order_data[user_id]["state"] = "checking" cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Секунду, проверяю...", watermark=False) try: response = requests.get( f"https://sandfoxy.digital/searchStarsRecipient?tag={event.message.text}", headers={"auth": plugin_settings["POVEL_API_TOKEN"]} ) if response.status_code == 404: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! Тег указан неверно! Попробуйте ещё раз!", watermark=False) order_data[user_id]["state"] = "username" return elif response.status_code == 200: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ваше имя пользователя - {response.json()['found']['name']}? Если да, то отправьте в чат - '+'. Если нет - '-'", watermark=False) order_data[user_id]["state"] = "confirm" else: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {response.json()['error']}", watermark=False) order_data[user_id]["state"] = "username" except Exception as e: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {e}", watermark=False) elif order_data[user_id]["state"] == "confirm": if event.message.text == "+": order_data[user_id]["state"] = "sending" cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Секунду, отправляю звезды...", watermark=False) try: response = requests.post("https://sandfoxy.digital/sendStars", headers={"auth": plugin_settings["POVEL_API_TOKEN"]}, json={ "recipient_tag": order_data[user_id]["user_tag"], "stars_quantity": order_data[user_id]["stars_count"], "toncenter_api_key": plugin_settings["TONCENTER_API"] }) if response.status_code == 200: order_data[user_id]["state"] = "done" cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Звезды отправлены! Спасибо за покупку!\n Транзакция: {response.json()['data']['hash']}\n\n Не забудьте подтвердить заказ!", watermark=False) else: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {response.json()['error']}", watermark=False) except Exception as e: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {e}", watermark=False) elif event.message.text == "-": cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Отправьте ваш новый @username", watermark=False) order_data[user_id]["state"] = "username" except Exception as e: logger.error(f"Ошибка в обработчике сообщения: {e}") def new_order_handler(cardinal: Cardinal, event: NewOrderEvent) -> None: logger.info(f"Новый заказ: {event.order.subcategory.id} | {event.order.amount} руб.") if event.order.subcategory.id != 2418: logger.info(f"Заказ не в категории звезды, пропускаю.") return logger.info(f"Заказ в категории звезды, обрабатываю.") stars_count = 0 split = event.order.description.split() try: if event.order.description.startswith("Другое количество"): stars_count = int(split[2]) elif split[1] == "звёзд": stars_count = int(split[0]) except Exception as e: logger.info(f"Ошибка при получении количества звезд: {e}") return logger.info(f"Количество звезд: {stars_count}") if stars_count < 50 or stars_count > 1000000: logger.info(f"Количество звезд не в диапазоне 50-1000000, пропускаю.") return logger.info(f"Все в порядке! Начинаю выдачу!") cardinal.send_message(chat_id=event.order.chat_id, message_text=f" Здравствуйте, отправьте ваш @username!", watermark=False) order_data[str(event.order.buyer_id)] = { "stars_count": stars_count, "state": "username", "user_tag": None } BIND_TO_NEW_ORDER = [new_order_handler] BIND_TO_NEW_MESSAGE = [new_message_handler] BIND_TO_DELETE = None Python from __future__ import annotations import os import json import time import hashlib import hmac import logging import random import urllib import base64 import requests from locales.localizer import Localizer from cardinal import Cardinal from FunPayAPI.updater.events import NewOrderEvent, NewMessageEvent logger = logging.getLogger(__name__) localizer = Localizer() _ = localizer.translate #Настройки бота plugin_settings = { "TONCENTER_API": "YOUR_TONCENTER_API_KEY", #Получите у @tonapibot "POVEL_API_TOKEN": "YOUR_POVEL_API" #Получите у @apovel_bot } NAME = "Telegram Auto-Stars" VERSION = "1.0.0" DESCRIPTION = " Плагин для автоматической отправки звезд в Телеграме.\n Плагин работает с сервисом Povel API (@apovel_bot).\n\n НЕ ЗАБУДЬТЕ ЗАМЕНИТЬ КЛЮЧИ В ФАЙЛЕ ПЛАГИНА!!!" CREDITS = "@sandfoxy | https://github.com/SandFoxy" UUID = "3c7a4e3b-6b56-4769-88f2-04be496ae190" SETTINGS_PAGE = True logger.info(f"[{NAME}] Плагин загружен!") order_data = {} def new_message_handler(cardinal: Cardinal, event: NewMessageEvent) -> None: try: user_id = str(event.message.author_id) if user_id not in order_data: return if order_data[user_id]["state"] == "username": order_data[user_id]["user_tag"] = event.message.text order_data[user_id]["state"] = "checking" cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Секунду, проверяю...", watermark=False) try: response = requests.get( f"https://sandfoxy.digital/searchStarsRecipient?tag={event.message.text}", headers={"auth": plugin_settings["POVEL_API_TOKEN"]} ) if response.status_code == 404: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! Тег указан неверно! Попробуйте ещё раз!", watermark=False) order_data[user_id]["state"] = "username" return elif response.status_code == 200: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ваше имя пользователя - {response.json()['found']['name']}? Если да, то отправьте в чат - '+'. Если нет - '-'", watermark=False) order_data[user_id]["state"] = "confirm" else: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {response.json()['error']}", watermark=False) order_data[user_id]["state"] = "username" except Exception as e: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {e}", watermark=False) elif order_data[user_id]["state"] == "confirm": if event.message.text == "+": order_data[user_id]["state"] = "sending" cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Секунду, отправляю звезды...", watermark=False) try: response = requests.post("https://sandfoxy.digital/sendStars", headers={"auth": plugin_settings["POVEL_API_TOKEN"]}, json={ "recipient_tag": order_data[user_id]["user_tag"], "stars_quantity": order_data[user_id]["stars_count"], "toncenter_api_key": plugin_settings["TONCENTER_API"] }) if response.status_code == 200: order_data[user_id]["state"] = "done" cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Звезды отправлены! Спасибо за покупку!\n Транзакция: {response.json()['data']['hash']}\n\n Не забудьте подтвердить заказ!", watermark=False) else: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {response.json()['error']}", watermark=False) except Exception as e: cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Ошибка! {e}", watermark=False) elif event.message.text == "-": cardinal.send_message(chat_id=event.message.chat_id, message_text=f" Отправьте ваш новый @username", watermark=False) order_data[user_id]["state"] = "username" except Exception as e: logger.error(f"Ошибка в обработчике сообщения: {e}") def new_order_handler(cardinal: Cardinal, event: NewOrderEvent) -> None: logger.info(f"Новый заказ: {event.order.subcategory.id} | {event.order.amount} руб.") if event.order.subcategory.id != 2418: logger.info(f"Заказ не в категории звезды, пропускаю.") return logger.info(f"Заказ в категории звезды, обрабатываю.") stars_count = 0 split = event.order.description.split() try: if event.order.description.startswith("Другое количество"): stars_count = int(split[2]) elif split[1] == "звёзд": stars_count = int(split[0]) except Exception as e: logger.info(f"Ошибка при получении количества звезд: {e}") return logger.info(f"Количество звезд: {stars_count}") if stars_count < 50 or stars_count > 1000000: logger.info(f"Количество звезд не в диапазоне 50-1000000, пропускаю.") return logger.info(f"Все в порядке! Начинаю выдачу!") cardinal.send_message(chat_id=event.order.chat_id, message_text=f" Здравствуйте, отправьте ваш @username!", watermark=False) order_data[str(event.order.buyer_id)] = { "stars_count": stars_count, "state": "username", "user_tag": None } BIND_TO_NEW_ORDER = [new_order_handler] BIND_TO_NEW_MESSAGE = [new_message_handler] BIND_TO_DELETE = None