FunPay User-Agent Rotator — это плагин для FunPayCardinal, который не просто хранит один User-Agent, а управляет всем циклом работы с ним: генерацией, ротацией, проверкой, импортом собственных строк и областью применения.
Основная идея плагина — дать удобный инструмент, который можно полностью контролировать через Telegram-кнопки, без постоянной ручной правки файлов и без рестартов после каждого изменения.
Плагин умеет:
- генерировать
User-Agentпрямо внутри себя; - ротировать его по таймеру в секундах;
- менять интервал без рестарта;
- работать через кнопочный интерфейс Telegram;
- проверять строку через
WhatMyUserAgent Free API; - включать и выключать уведомления;
- выбирать платформы и браузеры для генерации;
- загружать свои
User-Agentсписком; - переключать охват применения нового
User-Agent.
Внутри плагин логически делится на несколько основных блоков.
Плагин хранит:
- включена ли авто-ротация;
- какой интервал стоит в секундах;
- включены ли уведомления;
- включена ли API-проверка;
- какой режим источника активен;
- какой охват активен;
- какие платформы участвуют в генерации;
- какие браузеры участвуют в генерации;
- какие пользовательские
User-Agentуже загружены.
Отдельно хранится текущее runtime-состояние:
- какой
User-Agentсейчас активен; - из какого источника он получен;
- какая платформа использовалась;
- какой браузер использовался;
- время последней смены;
- время следующей смены;
- результат последней проверки;
- последние ошибки;
- кеш каталогов;
- список последних строк, чтобы не крутить одно и то же слишком часто.
Плагин подтягивает списки значений с WhatMyUserAgent:
На момент проверки страницы содержат:
143платформы;419браузеров.
По умолчанию в рабочий пул попадают:
- первые
100платформ; - первые
300браузеров.
Это можно менять вручную через кнопки.
Плагин умеет генерировать строку сам.
Для этого он:
- выбирает платформу из активного списка;
- выбирает браузер из активного списка;
- определяет семейство браузера;
- подставляет подходящий шаблон;
- собирает итоговый
User-Agent.
Поддерживаются разные семейства строк:
- Chromium / Chrome;
- Firefox;
- Safari;
- Edge;
- Opera;
- Samsung Internet;
- UC Browser;
- Brave;
- Vivaldi;
- Yandex Browser;
- текстовые браузеры вроде
Lynx.
То есть это не просто одна и та же строка с подменой пары цифр, а несколько разных шаблонов под разные типы клиентов.
Если встроенной генерации мало, можно загрузить свой список.
Формат:
1 строка = 1 UA Пример:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.6998.89 Safari/537.36 Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.6768.91 Safari/537.36 После импорта можно выбрать один из режимов:
генерация свои UA микс Как работает ротация Плагин запускает собственный фоновый цикл. Он регулярно проверяет:
включена ли авто-ротация; наступило ли время следующей смены; какой источник сейчас активен; куда должен применяться новый User-Agent. Если пришло время смены, плагин:
берёт новый User-Agent из активного источника; сохраняет его как текущий; применяет его в runtime; при необходимости проверяет через API; обновляет время следующего цикла; отправляет уведомление, если они включены. Главное здесь то, что всё это работает без рестарта.
Зачем нужна внешняя API-проверка Плагин умеет проверять текущую строку через:
WhatMyUserAgent Free API По документации используется запрос вида:
https://whatmyuseragent.com/api?ua=USERAGENT&key=NOTREQUIED То есть отдельный пользовательский API-ключ не нужен.
Важно: API здесь нужно не для генерации и не для ротации. Оно нужно только для проверки результата.
Проверка позволяет понять:
как внешний сервис распознаёт браузер; какую ОС он видит; какой тип устройства определяет; распознаётся ли строка вообще адекватно. То есть API в этом плагине — это валидатор, а не обязательная зависимость.
Нужно ли добавлять API вручную Нет.
Для этого плагина отдельный ключ добавлять не нужно.
Причина простая:
используется free API WhatMyUserAgent; у него уже предусмотрен публичный формат запроса; плагин сам обращается к нему для валидации строки. Если API-проверка не нужна, её можно выключить — и плагин всё равно продолжит:
генерировать строки; менять их по таймеру; применять в runtime. Что даёт смена User-Agent на практике Плагин нужен не как “магия против лимитов”, а как управляемый инструмент работы с User-Agent.
Он может быть полезен для:
обновления профиля HTTP-запросов; снижения однотипности строк; тестов разных платформ и браузеров; ручного и автоматического контроля текущего клиента; управления поведением без ручной правки кода. Что смена User-Agent не делает Важно не ждать от плагина того, чего User-Agent сам по себе не гарантирует.
Смена User-Agent не означает, что она:
обнуляет лимиты сайта; сбрасывает rate limit; меняет IP; обходит ограничения аккаунта; сбрасывает серверные ограничения по сессии; решает все вопросы антибот-логики сама по себе. Если ограничения завязаны на:
IP; cookies; сессию; fingerprint; аккаунт; серверную историю запросов, то одна только смена User-Agent это не исправит.
Поэтому правильнее воспринимать плагин как инструмент управления HTTP-профилем клиента, а не как средство “обнуления лимитов”.
Охват применения В плагине есть три режима охвата:
FunPay API Cardinal Server FunPay API Более точечный режим. Ориентирован на рабочие объекты и запросы, связанные с FunPay-аккаунтом.
Cardinal Более широкий runtime-режим. Плагин обновляет:
активные requests.Session; известные headers/default_headers; runtime-объекты процесса; рабочую среду самого FunPayCardinal. Это основной и самый практичный режим для повседневной работы.
Server Специальный режим для Ubuntu/Linux-сценариев.
Важно понимать честно: у Linux нет одной глобальной “системной настройки User-Agent для всей ОС”. User-Agent — это HTTP-заголовок клиента, а не системный сетевой параметр.
Поэтому режим Server делает реалистичную вещь:
пишет текущий User-Agent в env/profile текущего пользователя или сервиса; одновременно применяет его в текущем runtime процесса. Это практичный профильный режим, а не фейковый “магический global UA”.
Логика конфликтов режимов Здесь специально сделана строгая логика, чтобы всё не превратилось в конфликтные галочки.
Если включается Server, то:
FunPay API выключается; Cardinal выключается. Если включается FunPay API, то:
Server выключается. Если включается Cardinal, то:
Server выключается. FunPay API и Cardinal могут работать вместе.
Если пользователь случайно выключит всё, плагин оставит хотя бы:
Cardinal Это сделано для того, чтобы не было ситуации, когда ротация включена, интерфейс живой, а реально User-Agent никуда не применяется.