FunPay Proxy Rotator — плагин для FunPayCardinal, который добавляет удобную Telegram-панель для работы с прокси: проверку через PX6, массовый импорт, выбор текущего прокси и автоматическую ротацию.
Плагин делался как практический инструмент под живую работу, а не как учебный пример. Главная цель — убрать хаос вокруг прокси и свести управление к понятной панели с кнопками.
Если коротко, плагин решает три задачи:
- Хранит список прокси внутри
FunPayCardinal. - Проверяет их через PX6 перед использованием.
- Позволяет переключать текущий прокси вручную или по таймеру.
На практике это особенно полезно, если:
- у вас не один прокси, а пул;
- прокси периодически умирают;
- не хочется постоянно редактировать конфиги руками;
- нужен человеческий интерфейс через Telegram, а не набор неудобных команд.
- команда
/proxyrotдля открытия панели; - кнопочное управление;
- проверка прокси через PX6
check; - добавление одного прокси;
- массовый залив прокси списком;
- пропуск дублей;
- выбор текущего прокси;
- ручная ротация;
- автоматическая ротация;
- проверка всех прокси из списка;
- сохранение состояния между перезапусками;
- две реферальные кнопки PX6 в панели.
Важно сразу обозначить ограничения:
- плагин не покупает прокси;
- плагин не “оживляет” нерабочие прокси;
- плагин не гарантирует, что прокси, который PX6 считает валидным, одинаково хорошо подойдёт для любого сайта;
- плагин не спасёт Cardinal, если бот падает до загрузки плагинов из-за битого стартового прокси в базовом конфиге.
Именно поэтому плагин лучше использовать как инструмент runtime-управления пулом, а не как костыль для уже сломанного старта.
Если прокси один и он меняется раз в неделю, можно жить без отдельного менеджера.
Но как только появляется несколько прокси, начинаются типичные проблемы:
- часть из них уже мёртвая;
- часть работает нестабильно;
- часть не подходит конкретному сайту;
- часть вроде бы живая, но непонятно, когда проверялась в последний раз;
- приходится держать всё это в голове или в заметках.
Обычно это приводит к очень знакомому сценарию:
- Бот начал тупить.
- Человек вспоминает, какой там сейчас прокси.
- Идёт в конфиг.
- Меняет руками строку.
- Перезапускает сервис.
- Смотрит, помогло или нет.
- Если не помогло — повторяет всё заново.
FunPay Proxy Rotator как раз убирает эту рутину.
Основная точка входа:
/proxyrot
После этого открывается панель с кнопками.
На текущий момент в панели есть:
➕ Добавить прокси📥 Массовый залив📋 Список✅ Проверить все🔄 Ротация сейчас⏸ / 🟢 Авто: ON/OFF🔑 PX6 API⏱ 10м / 15м / 30м / 60мПрокси со скидкой - 5%Промокод на прокси px6me 10%
Плагин умеет разбирать несколько форматов:
ip:port
ip:port:user:pass
user:pass@host:port
http://user:pass@host:port
socks5://user:pass@host:port
Если схема не указана явно, по умолчанию используется http.
Сценарий выглядит так:
- Нажимаете
Добавить прокси. - Плагин ждёт одно сообщение.
- Вы отправляете строку прокси.
- Плагин пытается распарсить формат.
- Если формат битый — сразу пишет, что строка не разобралась.
- Если строка нормальная — отправляет её в PX6 на проверку.
- Если PX6 считает прокси рабочим — запись добавляется.
- Если PX6 считает прокси невалидным — плагин спрашивает:
Добавить всё равноНе добавлять
Такой сценарий удобнее, чем молча добавлять всё подряд.
Для больших списков есть отдельная кнопка 📥 Массовый залив.
Формат очень простой:
1 строка = 1 прокси
Пример:
191.102.181.45:9032:VLjm:x9jZ
45.152.197.29:8000:zqF8:rqeR
1.2.3.4:8080:user:pass
Что делает плагин:
- берёт каждую строку отдельно;
- пропускает пустые строки;
- пытается распарсить формат;
- отбрасывает дубли;
- прогоняет каждую запись через PX6;
- валидные прокси добавляет сразу;
- невалидные собирает отдельно;
- в конце даёт сводку.
Если часть прокси PX6 считает невалидными, можно:
- не добавлять их;
- добавить их принудительно.
Для проверки используется метод check.
Плагин работает со строкой прокси, а не только с внутренним ID, что удобно в повседневной работе: получил строку от поставщика, вставил в Telegram, сразу увидел результат.
После проверки у записи обновляются:
last_validlast_check_tslast_errorpx6_proxy_id
Это полезно, потому что список перестаёт быть “слепым”.
Кнопка 🔄 Ротация сейчас запускает немедленное переключение.
Что происходит:
- Плагин находит следующий прокси в списке.
- Если включена проверка перед ротацией — проверяет кандидата через PX6.
- Если кандидат живой — делает его текущим.
- Если нет — пропускает и идёт дальше по списку.
Идея простая: текущий прокси не меняется на заведомо плохой, если есть рабочая альтернатива.
Авто-ротация работает по таймеру.
Через кнопки можно выбрать один из интервалов:
10 минут15 минут30 минут60 минут
Когда авто-ротация включена, плагин сам следит за временем следующего переключения и пытается применить следующий валидный прокси.
Через раздел Список можно выбрать конкретную запись как текущую.
Это удобно, если:
- вы уже знаете, какой прокси сейчас нужен;
- не хочется ждать очередной ротации;
- нужно вернуться на проверенный вариант;
- хотите быстро сравнить работу нескольких прокси вручную.
Прокси можно удалить через список.
Если удаляется именно текущая запись, плагин сбрасывает указатель current_proxy_id, чтобы не оставлять ссылку на уже несуществующий элемент.
Плагин использует директорию:
storage/plugins/<UUID>
Основные файлы:
settings.jsonstate.json
Там лежат:
- список прокси;
- PX6 API key;
- интервал ротации;
- флаг включения авто-ротации;
notify_chat_id.
Там лежат:
- текущий прокси;
- время последней ротации;
- время следующей ротации;
- последняя ошибка.
Плагин старается применять прокси без грубого редактирования systemd-юнитов.
На runtime-уровне он пытается:
- обновить proxy-поля у Cardinal;
- обновить доступные
requests.Session; - обновить runtime-конфиг прокси;
- сохранить новый текущий прокси в своём состоянии.
Это именно рабочий прикладной подход, а не попытка превратить плагин в системный менеджер всего окружения.
Это очень важный пункт.
Если у вас в самом _main.cfg или в окружении сервиса уже зашит битый стартовый прокси, FunPayCardinal может упасть до того, как вообще дойдёт до загрузки плагинов.
В таком случае ротатор не успеет помочь.
Правильный сценарий такой:
- Добиться стабильного старта Cardinal.
- Не держать мёртвый прокси в базовом конфиге.
- Использовать
FunPay Proxy Rotatorдля дальнейшего управления пулом.
- Скопируйте файл
funpay_proxy_rotator.pyв папкуpluginsвашегоFunPayCardinal. - Перезапустите бот.
- Убедитесь по логам, что плагин зарегистрировался.
- Откройте
/proxyrot. - Укажите PX6 API key.
- Добавьте один прокси или загрузите список.
Типичный путь на сервере:
/home/<user>/FunPayCardinal/plugins/funpay_proxy_rotator.py
Если нужен короткий рабочий сценарий:
- Перезапустить Cardinal.
- Открыть
/proxyrot. - Нажать
🔑 PX6 API. - Отправить PX6 API key.
- Нажать
➕ Добавить проксиили📥 Массовый залив. - Добавить список.
- Нажать
✅ Проверить все. - При необходимости нажать
🔄 Ротация сейчас. - Если всё нормально — включить
Авто: ON.
Любой пул прокси на практике можно разделить на несколько состояний.
Признаки:
- валидность списка предсказуемая;
- дубли не копятся;
- ротация не упирается в постоянные пропуски;
- ручная смена даёт ожидаемый результат.
Это самый частый реальный вариант.
Признаки:
- часть прокси хорошая;
- часть устаревает;
- периодически нужно чистить список;
- авто-ротация уже полезна, но ручной контроль всё ещё нужен.
Обычно появляется, когда список набирают без дисциплины.
Признаки:
- много дублей;
- много мусорных строк;
- много невалидных записей;
- никто не понимает, на какие IP вообще можно опираться.
Это уже ситуация, где сначала надо чинить входные данные.
Признаки:
- валидных записей почти нет;
- ротация упирается в постоянные ошибки;
- стартовые прокси периодически валят бот.
Если у вас 3–5 прокси, не всегда есть смысл сразу включать агрессивную авто-ротацию.
Часто удобнее такой режим:
- держать список чистым;
- время от времени нажимать
Проверить все; - в случае проблем делать
Ротация сейчас; - включать авто только когда это реально нужно.
Это особенно полезно на старте.
Если список уже большой, ручной подход быстро начинает мешать.
Здесь и становятся особенно полезны:
- массовый залив;
- фильтрация дублей;
- проверка всего списка;
- спокойная ротация по интервалу.
В этом режиме плагин раскрывается лучше всего.
Если нужен удобный поставщик, на котором можно быстро проверить весь сценарий от покупки до ротации, удобно смотреть PX6.
Это логично по двум причинам:
- плагин и так использует PX6 API для проверки;
- не нужно собирать отдельный временный сценарий ради теста.
Если нужен стартовый вариант для обкатки:
- PX6 — по ссылке обычно доступна скидка
-5%; - дополнительно можно попробовать промокод
PX6ME, который даёт-10%.
Это не обязательная часть работы плагина, но для теста и первого запуска — вполне практичная подсказка.
Причина простая и не маркетинговая:
- проверка уже завязана на PX6 API;
- люди всё равно спрашивают, где тестировать сценарий с прокси;
- проще один раз дать нормальную подсказку прямо в документации.
Если у вас уже есть свой поставщик, просто используйте его.
Да.
Да, для этого есть отдельная кнопка.
Они будут пропущены, а итоговая сводка покажет, сколько строк не обработалось.
Проверка конкретной записи не пройдёт, а прокси получит ошибку проверки.
Да.
Да.
Да, даже без авто-ротации он полезен.
Нет. После обновления лучше открыть новое сообщение /proxyrot.
Обычно это значит одно из двух:
- нажимается старая кнопка из старого сообщения;
- на сервере лежит старая версия плагина.
Решение:
- Обновить файл плагина.
- Перезапустить Cardinal.
- Открыть новое сообщение
/proxyrot.
Скорее всего, проблема в стартовом прокси Cardinal, а не в самом ротаторе.
Проверьте _main.cfg и окружение systemd.
Это не обязательно ошибка плагина. Валидность записи и качество прокси под конкретный сайт — не одно и то же.
Причины обычно такие:
- дубли;
- кривые строки;
- невалидность по PX6.
При проблемах полезно смотреть:
systemctl status FunPayCardinal@<user>journalctl -u FunPayCardinal@<user>log.logвнутри Cardinal
Если плагин загрузился, в логах должна быть строка регистрации обработчиков.
- не превращайте список в кладбище мёртвых прокси;
- после массового импорта всегда делайте проверку;
- не путайте валидность PX6 и пригодность прокси для конкретного домена;
- не тестируйте новую версию плагина на старой клавиатуре Telegram;
- сначала добейтесь стабильного старта Cardinal, потом включайте ротацию.
Если расширять проект дальше, логично смотреть в такие стороны:
- отдельные политики ротации;
- чёрные списки прокси;
- статистика по качеству записей;
- лимиты на повторное использование;
- экспорт и импорт через файл;
- отдельные режимы для “боевых” и “тестовых” прокси.
- добавлен массовый залив
1 строка = 1 прокси; - добавлена сводка по массовому импорту;
- улучшена обработка дублей;
- добавлены реферальные кнопки PX6;
- уточнены данные о разработчиках.
- первая публичная версия;
- панель
/proxyrot; - PX6-проверка;
- ручная и автоматическая ротация;
- добавление, удаление и выбор текущего прокси.
Разработка и оформление:
@takouq@llzzvvww
Если будете форкать проект или дописывать поверх него свою логику, лучше сохранять changelog и коротко фиксировать, что именно поменялось в поведении UI, проверок и ротации.