The tmc CLI - The Modding Community
API — Прямо Из Терминала
tmc — клиент командной строки для нашего публичного API контента. Он создаёт, редактирует и удаляет ваши ассеты, моды, серверы, статьи, сообщества, коллекции и группы — и, поскольку именно ради этого API и используют, он загружает файлы и выпускает релизы одной командой.
tmc ещё не выпущен. Его нет на PyPI и у него нет публичного репозитория — сегодня он ставится из копии исходников, и эта страница описывает то, что инструмент уже умеет, а не анонсирует запуск.
# From the source checkout — there is nothing to build
pip install .
pip install '.[fast]' # optional: cryptography, for faster signing
tmc --version # tmc 1.1.0
# Keys are made under Account → API Keys
tmc auth login --token tmc_xxxxxxxxxxxx
tmc auth whoami
# …or read public items with no key at all
tmc mod list --anon --app 4 -o json
Один пакет на стандартной библиотеке — нечего собирать и нечего разрешать, а каждая команда, флаг и код возврата описаны в документации.
Ради Чего Вообще Нужен Инструмент
Выпустить релиз через «сырое» API — это четыре запроса в определённом порядке: загрузить файлы, собрать их идентификаторы, прочитать уже существующий набор релизов и записать новый не задев остальные. release publish — это и есть вся эта последовательность.
Всё, Что Умеет API, Разложено По Полочкам
По одной команде на каждое действие, которое вы сделали бы в браузере, и на несколько таких, которые в браузере делать не захочется: массовые правки, конвейеры и релизы по скрипту.
Ключи, Профили И Публичная Половина
Войдите один раз, и учётные данные сохранятся в ~/.config/tmc/config.json с правами 0600 — или передайте их через окружение, и диск вообще не будет затронут. По одному профилю на сайт или на ключ, и --anon для той половины API, которой ключ не нужен вовсе.
Четыре Глагола, Которые Говорят, Что Делают
Опасный — set: в этом API PUT к связи означает «теперь это полный набор», поэтому PUT с одним участником удаляет у объекта всё остальное. CLI держит все четыре раздельно и предупреждает перед отправкой разрушительного.
Создан Жить В CI
Собирайте проект, выпускайте релиз и загружайте его файлы при каждом теге. Учётные данные берутся из окружения, поэтому на раннере ничего не пишется на диск.
