Skip to content

Позволяет включать/выключать скрипты для отдельных пользователей

Notifications You must be signed in to change notification settings

pushkarev-alexandr/ScriptsManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScriptsManager

Компоненты

  • ScriptsManager.py: Основной модуль, в котором хранятся все основные функции.
  • menu.py: Создает меню для управления ScriptsManager и запускает пользовательские менюшки на старте.
  • scripts_info.json: Информация о скриптах, заполняется в edit_script_info.

Важно: Если вы переместили скрипт в новое место, нужно открыть edit_script_info и пересохранить настройки для этого скрипта.

Принцип работы

  1. Все папки в директории scripts добавляются в pluginPath, чтобы можно было вызвать скрипты, которые лежат в этих папках.
  2. При запуске Nuke, папка текущего пользователя (если существует) добавляется в pluginPath. В ней лежит файл menu.py, в котором происходит добавление всех меню.
  3. Файл menu.py создается во время выполнения скрипта edit_script_info и при первом запуске Nuke, если у пользователя нет никаких настроек.

Тестовые сценарии

Состояние пользовательской директории

  • Что будет, если нет папки users?
  • Что будет, если есть папка users, но нет папки текущего пользователя?
  • Что будет, если есть папка текущего пользователя, но нет файлов data.json и menu.py?
  • Что будет, если есть menu.py, но нет data.json?
  • Что будет, если есть data.json, но нет menu.py?
  • Что будет, если файл data.json поврежден (неправильный формат JSON, отсутствует фигурная скобка и т.п.)?
  • Что будет, если data.json пустой?
  • Что будет, если data.json содержит пустой словарь {}?

Состояние scripts_info.json

  • Что будет, если нет файла scripts_info.json?
  • Что будет, если scripts_info.json пустой?
  • Что будет, если scripts_info.json содержит пустой словарь {}?

Состояние директории scripts

  • Что будет, если нет папки scripts?
  • Что будет, если папка scripts пустая?

Сценарии использования

  • Проверить, чтобы при запуске через терминал папки scripts не добавлялись в pluginPath.
  • Что будет, если у пользователя есть меню со скриптом, а самого скрипта уже нет?
  • Обновится ли информация у пользователя, если обновить информацию о скрипте?
  • Информация о положении в меню указывается через иерархию папок. Что будет, если поменять иерархию?
  • Если у пользователя нет настроек скриптов, должны подгружаться дефолтные скрипты.
  • Новые дефолтные скрипты должны появляться у всех пользователей (как у новых, так и у тех, у кого уже есть настройки).
  • Что будет, если добавить скрипт в новую папку (которой еще не было в pluginPath) во время работы Nuke?
  • Что будет, если добавить/убрать дополнительный параметр (например, icon) в EditScriptPanel?
  • Что будет, если удалить информацию о скрипте, который есть у пользователя?
  • Что будет, если существует несколько скриптов с одинаковым названием?
  • Что будет, если переименовать скрипт?
  • Как удалить скрипт или информацию о скрипте?

TODO

  • Если нажать кнопку "кастомная команда", то сохраняется пункт "путь в меню", хотя меню нет. Нужно обдумать этот момент.
  • Для кастомной команды используется "имя в меню", которое скрыто, когда включена галка "имя в меню".
  • Разобраться, какие папки импортировать в pluginPath. Это тоже можно делать в файле пользователя.
  • По сути, все плагины можно запускать без перезагрузки Nuke.
  • По цифрам контекста (0, 1, 2) не понятно, за что они отвечают. Надо написать имена: 0=Window, 1=Application, 2=DAG.
  • Придумать что-то с иконками.
  • Сейчас работает история с обратными слешами и слешами в нейминге(через get_in_menu_name), но коряво и нужно сделать так чтобы пользвоатель этого не замечал. Сейчас нужно если хочешь поставить прямой слеш / в имени, нужно самому его экранировать через \/, нужно сделать чтобы это происходило автоматически.

About

Позволяет включать/выключать скрипты для отдельных пользователей

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages