setup создаёт локально управляемого companion-бота и минимальное рабочее
пространство Telegram. Это привилегированная операция, доступная только в
«Сохранённых сообщениях» авторизованного аккаунта. В другом диалоге команда
не запускается. Во время активной настройки ответы BotFather и ввод в
«Сохранённых сообщениях» обрабатываются как часть настройки, а не как обычные
команды.
Во всех примерах <prefix> означает текущий префикс Lavis (по умолчанию ,).
<prefix>setup
<prefix>setup <username_bot>
<prefix>setup auto
<prefix>setup status
<prefix>setup repair
<prefix>setup cancel
<prefix>setupзапрашивает имя пользователя бота; следующим сообщением в «Сохранённых сообщениях» укажите имя, оканчивающееся на_bot.<prefix>setup <username_bot>показывает план и ждёт точного ответаconfirmлибоcancel.<prefix>setup autoгенерирует имя видаlavis_<16-шестнадцатеричных-символов>_botи начинает настройку. Если BotFather сообщает, что имя занято, Lavis пробует новые автоматически сгенерированные имена, не более десяти попыток всего.<prefix>setup statusпоказывает сохранённый статус и имя бота, но не токен.<prefix>setup repairпродолжает создание ресурсов по сохранённому состоянию.<prefix>setup cancelотменяет текущую локальную интерактивную настройку; он не удаляет уже созданного бота или ресурсы Telegram.
Имя должно состоять из 5–32 ASCII-букв, цифр или _ и оканчиваться на _bot.
Команда принимает ровно один аргумент: например, setup start — это попытка
использовать имя start, а не отдельная форма запуска.
Lavis ведёт последовательный диалог с официальным @BotFather: сначала
отменяет его незавершённый диалог, затем создаёт нового бота, передаёт фиксированное
отображаемое имя и выбранное имя пользователя. Следующий шаг отправляется только
после ответа BotFather. Полученный токен проверяется запросом Bot API getMe;
проверенное имя должно совпасть с запрошенным.
Токен — секрет. Не пересылайте ответ BotFather, не публикуйте его в чатах,
скриншотах, журналах или Git. Lavis не показывает токен в статусе и использует
редактированные диагностические данные; URL Bot API с токеном не попадает в
сообщения об ошибках. Токен хранится отдельно от состояния в
$XDG_CONFIG_HOME/lavis/companion-bot.token (или
$HOME/.config/lavis/companion-bot.token) с правами 0600. Не открывайте этот
файл другим пользователям и не добавляйте его в резервные копии общего доступа.
Состояние прогресса находится в $XDG_STATE_HOME/lavis/setup.json (или
$HOME/.local/state/lavis/setup.json). Оно не содержит токен; каталог и файлы
проверяются как приватные (0700 для каталога, 0600 для файлов).
После проверки токена Lavis создаёт или дополняет следующие ресурсы:
- forum-супергруппу Lavis с описанием
Lavis companion workspace; - темы General, Logs и Backups в этой группе;
- аватар группы из bundled-ассетов Lavis; фото накладывается при каждом
provision, включая восстановление через
setup repair; - приглашение companion-бота в группу;
- права администратора бота только для управления темами, удаления и закрепления сообщений;
- папку диалогов Lavis ровно с ботом и companion-группой; флаги автоматического включения групп и ботов отключены.
Lavis использует лимит папок, объявленный Telegram для текущего типа аккаунта, и выбирает свободный безопасный идентификатор, не предполагая фиксированного диапазона. Одноимённая папка, которая не записана как созданная Lavis, считается конфликтом и никогда не заменяется. Порядок всех уже существующих пользовательских и chatlist-папок сохраняется.
Если Telegram не разрешает ещё одну папку или нет безопасного идентификатора, создание
папки не завершается. Уже созданные бот,
группа, темы и права не удаляются. Освободите папку в Telegram и выполните
<prefix>setup repair в «Сохранённых сообщениях».
Прогресс записывается после каждого успешного удалённого шага. Поэтому сбой сети,
перезапуск Lavis или частичная ошибка не должны создавать заново уже записанные
ресурсы: после устранения причины используйте <prefix>setup repair. Команда
восстанавливает только сохранённое рабочее пространство; без безопасно читаемого
состояния или имени бота она не может продолжить работу. Если токен не прошёл
проверку или настройка BotFather не завершилась, токен не сохраняется.
Конструктор 0x7f5defa6 — это messages.invitedUsers, возвращаемый при
channels.inviteToChannel; он наблюдался как проблема десериализации во время
работы.
В текущую реализацию намеренно не входят:
- обработчики команд или сообщений companion-бота;
- отправка логов, резервных копий или иных данных в темы
LogsиBackups; - настройка webhook, polling, Bot API updates или внешнего сервиса для бота;
- изменение профиля бота, команд BotFather, меню, privacy mode или команд бота;
- управление участниками группы сверх первоначального приглашения и минимальных прав бота;
- удаление, очистка, переименование или откат созданных бота, группы, тем и папки;
- отзыв или ротация токена, а также настройка нескольких companion-ботов;
- автоматическое возобновление после перезапуска без явной команды
<prefix>setup repair.