Skip to content

ThisTakou/FPC-ProxyAutoRotator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

FunPay Proxy Rotator

FunPay Proxy Rotator — плагин для FunPayCardinal, который добавляет удобную Telegram-панель для работы с прокси: проверку через PX6, массовый импорт, выбор текущего прокси и автоматическую ротацию.

Плагин делался как практический инструмент под живую работу, а не как учебный пример. Главная цель — убрать хаос вокруг прокси и свести управление к понятной панели с кнопками.

Что это за плагин

Если коротко, плагин решает три задачи:

  1. Хранит список прокси внутри FunPayCardinal.
  2. Проверяет их через PX6 перед использованием.
  3. Позволяет переключать текущий прокси вручную или по таймеру.

На практике это особенно полезно, если:

  • у вас не один прокси, а пул;
  • прокси периодически умирают;
  • не хочется постоянно редактировать конфиги руками;
  • нужен человеческий интерфейс через Telegram, а не набор неудобных команд.

Основные возможности

  • команда /proxyrot для открытия панели;
  • кнопочное управление;
  • проверка прокси через PX6 check;
  • добавление одного прокси;
  • массовый залив прокси списком;
  • пропуск дублей;
  • выбор текущего прокси;
  • ручная ротация;
  • автоматическая ротация;
  • проверка всех прокси из списка;
  • сохранение состояния между перезапусками;
  • две реферальные кнопки PX6 в панели.

Что плагин не делает

Важно сразу обозначить ограничения:

  • плагин не покупает прокси;
  • плагин не “оживляет” нерабочие прокси;
  • плагин не гарантирует, что прокси, который PX6 считает валидным, одинаково хорошо подойдёт для любого сайта;
  • плагин не спасёт Cardinal, если бот падает до загрузки плагинов из-за битого стартового прокси в базовом конфиге.

Именно поэтому плагин лучше использовать как инструмент runtime-управления пулом, а не как костыль для уже сломанного старта.

Почему вообще нужен отдельный ротатор

Если прокси один и он меняется раз в неделю, можно жить без отдельного менеджера.

Но как только появляется несколько прокси, начинаются типичные проблемы:

  • часть из них уже мёртвая;
  • часть работает нестабильно;
  • часть не подходит конкретному сайту;
  • часть вроде бы живая, но непонятно, когда проверялась в последний раз;
  • приходится держать всё это в голове или в заметках.

Обычно это приводит к очень знакомому сценарию:

  1. Бот начал тупить.
  2. Человек вспоминает, какой там сейчас прокси.
  3. Идёт в конфиг.
  4. Меняет руками строку.
  5. Перезапускает сервис.
  6. Смотрит, помогло или нет.
  7. Если не помогло — повторяет всё заново.

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.

Как работает добавление одного прокси

Сценарий выглядит так:

  1. Нажимаете Добавить прокси.
  2. Плагин ждёт одно сообщение.
  3. Вы отправляете строку прокси.
  4. Плагин пытается распарсить формат.
  5. Если формат битый — сразу пишет, что строка не разобралась.
  6. Если строка нормальная — отправляет её в PX6 на проверку.
  7. Если PX6 считает прокси рабочим — запись добавляется.
  8. Если 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 считает невалидными, можно:

  • не добавлять их;
  • добавить их принудительно.

Проверка через PX6

Для проверки используется метод check.

Плагин работает со строкой прокси, а не только с внутренним ID, что удобно в повседневной работе: получил строку от поставщика, вставил в Telegram, сразу увидел результат.

После проверки у записи обновляются:

  • last_valid
  • last_check_ts
  • last_error
  • px6_proxy_id

Это полезно, потому что список перестаёт быть “слепым”.

Ручная ротация

Кнопка 🔄 Ротация сейчас запускает немедленное переключение.

Что происходит:

  1. Плагин находит следующий прокси в списке.
  2. Если включена проверка перед ротацией — проверяет кандидата через PX6.
  3. Если кандидат живой — делает его текущим.
  4. Если нет — пропускает и идёт дальше по списку.

Идея простая: текущий прокси не меняется на заведомо плохой, если есть рабочая альтернатива.

Автоматическая ротация

Авто-ротация работает по таймеру.

Через кнопки можно выбрать один из интервалов:

  • 10 минут
  • 15 минут
  • 30 минут
  • 60 минут

Когда авто-ротация включена, плагин сам следит за временем следующего переключения и пытается применить следующий валидный прокси.

Выбор текущего прокси вручную

Через раздел Список можно выбрать конкретную запись как текущую.

Это удобно, если:

  • вы уже знаете, какой прокси сейчас нужен;
  • не хочется ждать очередной ротации;
  • нужно вернуться на проверенный вариант;
  • хотите быстро сравнить работу нескольких прокси вручную.

Удаление прокси

Прокси можно удалить через список.

Если удаляется именно текущая запись, плагин сбрасывает указатель current_proxy_id, чтобы не оставлять ссылку на уже несуществующий элемент.

Что хранится внутри плагина

Плагин использует директорию:

storage/plugins/<UUID>

Основные файлы:

  • settings.json
  • state.json

settings.json

Там лежат:

  • список прокси;
  • PX6 API key;
  • интервал ротации;
  • флаг включения авто-ротации;
  • notify_chat_id.

state.json

Там лежат:

  • текущий прокси;
  • время последней ротации;
  • время следующей ротации;
  • последняя ошибка.

Как плагин применяет прокси

Плагин старается применять прокси без грубого редактирования systemd-юнитов.

На runtime-уровне он пытается:

  • обновить proxy-поля у Cardinal;
  • обновить доступные requests.Session;
  • обновить runtime-конфиг прокси;
  • сохранить новый текущий прокси в своём состоянии.

Это именно рабочий прикладной подход, а не попытка превратить плагин в системный менеджер всего окружения.

Важное замечание про стартовый прокси Cardinal

Это очень важный пункт.

Если у вас в самом _main.cfg или в окружении сервиса уже зашит битый стартовый прокси, FunPayCardinal может упасть до того, как вообще дойдёт до загрузки плагинов.

В таком случае ротатор не успеет помочь.

Правильный сценарий такой:

  1. Добиться стабильного старта Cardinal.
  2. Не держать мёртвый прокси в базовом конфиге.
  3. Использовать FunPay Proxy Rotator для дальнейшего управления пулом.

Установка

  1. Скопируйте файл funpay_proxy_rotator.py в папку plugins вашего FunPayCardinal.
  2. Перезапустите бот.
  3. Убедитесь по логам, что плагин зарегистрировался.
  4. Откройте /proxyrot.
  5. Укажите PX6 API key.
  6. Добавьте один прокси или загрузите список.

Типичный путь на сервере:

/home/<user>/FunPayCardinal/plugins/funpay_proxy_rotator.py

Быстрый старт

Если нужен короткий рабочий сценарий:

  1. Перезапустить Cardinal.
  2. Открыть /proxyrot.
  3. Нажать 🔑 PX6 API.
  4. Отправить PX6 API key.
  5. Нажать ➕ Добавить прокси или 📥 Массовый залив.
  6. Добавить список.
  7. Нажать ✅ Проверить все.
  8. При необходимости нажать 🔄 Ротация сейчас.
  9. Если всё нормально — включить Авто: ON.

Как оценивать качество пула

Любой пул прокси на практике можно разделить на несколько состояний.

Чистый пул

Признаки:

  • валидность списка предсказуемая;
  • дубли не копятся;
  • ротация не упирается в постоянные пропуски;
  • ручная смена даёт ожидаемый результат.

Смешанный пул

Это самый частый реальный вариант.

Признаки:

  • часть прокси хорошая;
  • часть устаревает;
  • периодически нужно чистить список;
  • авто-ротация уже полезна, но ручной контроль всё ещё нужен.

Шумный пул

Обычно появляется, когда список набирают без дисциплины.

Признаки:

  • много дублей;
  • много мусорных строк;
  • много невалидных записей;
  • никто не понимает, на какие IP вообще можно опираться.

Битый пул

Это уже ситуация, где сначала надо чинить входные данные.

Признаки:

  • валидных записей почти нет;
  • ротация упирается в постоянные ошибки;
  • стартовые прокси периодически валят бот.

Практика работы с небольшим списком

Если у вас 3–5 прокси, не всегда есть смысл сразу включать агрессивную авто-ротацию.

Часто удобнее такой режим:

  • держать список чистым;
  • время от времени нажимать Проверить все;
  • в случае проблем делать Ротация сейчас;
  • включать авто только когда это реально нужно.

Это особенно полезно на старте.

Практика работы с большим списком

Если список уже большой, ручной подход быстро начинает мешать.

Здесь и становятся особенно полезны:

  • массовый залив;
  • фильтрация дублей;
  • проверка всего списка;
  • спокойная ротация по интервалу.

В этом режиме плагин раскрывается лучше всего.

Где брать прокси для тестов и работы

Если нужен удобный поставщик, на котором можно быстро проверить весь сценарий от покупки до ротации, удобно смотреть PX6.

Это логично по двум причинам:

  • плагин и так использует PX6 API для проверки;
  • не нужно собирать отдельный временный сценарий ради теста.

Если нужен стартовый вариант для обкатки:

  • PX6 — по ссылке обычно доступна скидка -5%;
  • дополнительно можно попробовать промокод PX6ME, который даёт -10%.

Это не обязательная часть работы плагина, но для теста и первого запуска — вполне практичная подсказка.

Почему в README вообще есть упоминание PX6 как сервиса

Причина простая и не маркетинговая:

  • проверка уже завязана на PX6 API;
  • люди всё равно спрашивают, где тестировать сценарий с прокси;
  • проще один раз дать нормальную подсказку прямо в документации.

Если у вас уже есть свой поставщик, просто используйте его.

FAQ

Можно ли использовать плагин только для ручной смены прокси?

Да.

Можно ли массово залить десятки прокси?

Да, для этого есть отдельная кнопка.

Что если список содержит мусорные строки?

Они будут пропущены, а итоговая сводка покажет, сколько строк не обработалось.

Что если PX6 временно недоступен?

Проверка конкретной записи не пройдёт, а прокси получит ошибку проверки.

Можно ли принудительно добавить невалидный прокси?

Да.

Можно ли выбрать конкретный прокси текущим вручную?

Да.

Можно ли использовать плагин просто как проверяльщик списка?

Да, даже без авто-ротации он полезен.

Нужно ли после обновления плагина использовать старые сообщения панели?

Нет. После обновления лучше открыть новое сообщение /proxyrot.

Типичные проблемы

Всплывает сырой callback вместо реакции кнопки

Обычно это значит одно из двух:

  • нажимается старая кнопка из старого сообщения;
  • на сервере лежит старая версия плагина.

Решение:

  1. Обновить файл плагина.
  2. Перезапустить Cardinal.
  3. Открыть новое сообщение /proxyrot.

Cardinal падает ещё до загрузки плагина

Скорее всего, проблема в стартовом прокси Cardinal, а не в самом ротаторе.

Проверьте _main.cfg и окружение systemd.

PX6 считает прокси валидным, но нужный сайт всё равно работает плохо

Это не обязательно ошибка плагина. Валидность записи и качество прокси под конкретный сайт — не одно и то же.

Массовый залив добавил не всё

Причины обычно такие:

  • дубли;
  • кривые строки;
  • невалидность по PX6.

Логи и диагностика

При проблемах полезно смотреть:

  • systemctl status FunPayCardinal@<user>
  • journalctl -u FunPayCardinal@<user>
  • log.log внутри Cardinal

Если плагин загрузился, в логах должна быть строка регистрации обработчиков.

Рекомендации по использованию

  • не превращайте список в кладбище мёртвых прокси;
  • после массового импорта всегда делайте проверку;
  • не путайте валидность PX6 и пригодность прокси для конкретного домена;
  • не тестируйте новую версию плагина на старой клавиатуре Telegram;
  • сначала добейтесь стабильного старта Cardinal, потом включайте ротацию.

Возможные направления развития

Если расширять проект дальше, логично смотреть в такие стороны:

  • отдельные политики ротации;
  • чёрные списки прокси;
  • статистика по качеству записей;
  • лимиты на повторное использование;
  • экспорт и импорт через файл;
  • отдельные режимы для “боевых” и “тестовых” прокси.

Changelog

0.1.1

  • добавлен массовый залив 1 строка = 1 прокси;
  • добавлена сводка по массовому импорту;
  • улучшена обработка дублей;
  • добавлены реферальные кнопки PX6;
  • уточнены данные о разработчиках.

0.1.0

  • первая публичная версия;
  • панель /proxyrot;
  • PX6-проверка;
  • ручная и автоматическая ротация;
  • добавление, удаление и выбор текущего прокси.

Авторство

Разработка и оформление:

  • @takouq
  • @llzzvvww

Если будете форкать проект или дописывать поверх него свою логику, лучше сохранять changelog и коротко фиксировать, что именно поменялось в поведении UI, проверок и ротации.

About

Плагин для автоматической смены прокси для API Telegram работы fpc Cardinal / Умная система ротации / Проверка валидностим прокси , адаптированная настройка и также позволяет загружать неограниченное кол-во прокси.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages