Утилита предназначена для создания локальных бекапов fig файлов
Для работы необходимо:
- bash консоль
- Установленная node (проверено на версии v16.13.0)
- Для полной версии, установленный python (проверено на Python 2.7.18)
Ligth запуск
Предусмотрен вариант запуска в режиме простого скачивания. Для этого необходимо в корне проекта
- Установить зависимости node (команда
npm i
) - Выполнить команду
node download_figma_files.js figmaLogin=<ваш логин> figmaPassword=<ваш пароль> figmaUrl=<полный адрес файла, который необходимо скачать>
В случае если необходимо скачать несколько файлов, можно подготовить конфигурационный json файл следующего формата:[ { "key": "<ключ файла>", "project": "<название проекта>", "team": "<название команды>" }, ... { "key": "<ключ файла>", "project": "<название проекта>", "team": "<название команды>" } ]
Загрузка файлов по конфигурационному файлу осуществляется командойnode download_figma_files.js figmaLogin=<ваш логин> figmaPassword=<ваш пароль> igmaFilesList=<путь до файла>
В ligth запуске все файлы будут сохранены в директорию ./process/_download
. Если эта директория не пустая, существующие в ней файлы будут переименованы
Full запуск
Требует установленного python, отличается от ligth версии следующим:
- Скачивает все файлы для команд, указанных в
./config/get_figme_files_list.yml
- Анализирует время изменения файла в figma и если файл не менялся с прошлого запуска пропускает их
Для запуска полной версии необходимо выполнить команду ./manage.sh <ваш логин> <ваш пароль>
.
Файлы будут сохранены в ./store
, если какие-то файлы были обновлены, предыдущие версии сохраняются в ./store/<дата запуска>
Настройки:
-
./config/download_settings.json - настройки таймаутов для скачивания файлов 1.1 downloadTimeout - ожидание скачивания файла в секундах. Если указан 0 - таймаут оключается 1.2 selectorTimeout - ожидание появления нужных пунктов меню на странице в миллисекундах 1.3 navigationTimeout - таймаут навигации в миллисекундах 1.4 launchTimeout - таймаут запуска headless хрома в миллисекундах 1.5 loginTimeout - таймаут ожидания логина в миллисекундах 1.6 pageOpenTimeout - таймаут открытия страницы в миллисекундах
-
get_figme_files_list.yml - настройки для скачивания файлов команд 2.1 access_token - access token для вызовов методов figma api 2.2 teams - список идентификаторов команд (можно подсмотреть в урле https://www.figma.com/files/<...>/team/<нужный ид команды>/...)