Здравствуйте. Хотим уточнить поведение Remnawave по кастомному названию подписки.
В панели в Subscription Settings → Profile Title мы можем вручную указать название с пробелами, кириллицей и emoji, например:
“ Крутой VPN”
Это работает как глобальный profileTitle.
Но нам нужно задавать разное название подписки программно для разных пользователей/ботов. Для этого мы ставим в Subscription Settings → Profile Title значение:
{{TAG}}
Дальше через API/SDK обновляем пользователя и передаём user.tag, например:
tag = “Non VPN”
tag = “Kostetvpn”
tag = “ Крутой VPN”
Ожидание: profile-title в подписке должен стать значением user.tag.
Фактически Python SDK / DTO UpdateUserRequestDto падает с validation error до выполнения обновления:
1 validation error for UpdateUserRequestDto
tag
String should match pattern ‘[1]+$’
Также для длинных значений:
String should have at most 16 characters
Примеры:
tag=“Non VPN” → ошибка из-за пробела
tag=“Kostetvpn” → ошибка из-за lowercase
tag=“bugsis vpn | Ускоритель Интернета” → ошибка из-за длины/символов
Вопрос:
Это ожидаемое ограничение именно для поля user.tag?
Есть ли другой per-user field/template variable, куда можно записать произвольный title с пробелами, кириллицей и emoji?
Можно ли через API обновлять profileTitle персонально для пользователя, а не глобально?
Если нет, планируется ли расширить user.tag или добавить отдельное поле для display title?
Смотрели код backend:
profile-title формируется из settings.profileTitle через TemplateEngine.formatWithUser:
{{TAG}} подставляется как user.tag:
update/create user DTO используют command schemas: не могу вставить ещё 2 ссылки.
Хотим понять, можно ли штатно сделать per-user/per-bot profile-title с кириллицей, пробелами и emoji через API.
Создайте разные конфиги страницы подписки для разных ботов. Разным ботам отдайте разные внешние сквады по умолчанию, а в самих внешних сквадах переопределите используемый конфиг страницы подписки.
Если мы используем данный метод, о котором я выше писал, значит нам не подходят внешние сквады. Это уже второе сообщение о внешнем скваде, но оно нам не подходит.
Я думаю, это баг, поэтому сюда и написал. Пожалуйста, давайте без советов “Используйте внешние сквады”. Буду ждать “официального” ответа.
Внешние сквады созданы как раз именно для этого, не вижу ни одной причины их не использовать.
У вас есть группа пользователей условно говоря от сервиса “Зайчик КВН”, есть вторая группа от сервиса “Песик КВН”.
Вместо того, чтобы в каждого пользователя из обоих сервисов хардкодить название – вы можете с помощью внешнего сквада сразу и красиво сделать переопределение profileTitle сразу для огромной группы пользователей.
Поле tag у пользователя никогда не подразумевалось для использования в той ситуации, которую описали вы. У него всегда были ограничения и строгая валидация.
Если вы выше говорили о разделе profile-title в Subscription Settings – там русские буквы и эмоджи можно только из-за того, что панель перед выдачей подписки кодирует значение в base64, потому что согласно RFC – в хедерах не может быть ни эмоджи, ни кириллицы.
Почему нельзя при автоматическом создании так же создать внешний сквад, сохранить его в вашу базу данных (привязать к созданному боту), и потом уже при создании пользователей назначить им внешний сквад?
При создании пользователя ведь можно указать внешний сквад.
Так не на каждого пользователя, а на каждого бота. У нас франшиза открытая будет с созданием бота в один клик. У нас другой проект подобный этому насчитывает 30000+ ботов и не просто зеркал, а именно люди зашли и создали и настроили под себя.
Ладно, жаль, оставляем TAG, спасибо в любом случае. Хотелось бы, конечно, видеть красоту, но не получится.
Ограничений на количество внешний сквадов нет. Однако, на таком количестве тесты не проводились.
Можете попробовать реализовать подобное, если будут проблемы с производительностью или еще с чем – вы в любой момент можете отписаться здесь на форуме, будем смотреть в каких местах могут быть проблемы и при возможности исправлять.