ScriptsManager.py: Основной модуль, в котором хранятся все основные функции.menu.py: Создает меню для управленияScriptsManagerи запускает пользовательские менюшки на старте.scripts_info.json: Информация о скриптах, заполняется вedit_script_info.
Важно: Если вы переместили скрипт в новое место, нужно открыть
edit_script_infoи пересохранить настройки для этого скрипта.
- Все папки в директории
scriptsдобавляются вpluginPath, чтобы можно было вызвать скрипты, которые лежат в этих папках. - При запуске Nuke, папка текущего пользователя (если существует) добавляется в
pluginPath. В ней лежит файлmenu.py, в котором происходит добавление всех меню. - Файл
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? - Что будет, если папка
scriptsпустая?
- Проверить, чтобы при запуске через терминал папки
scriptsне добавлялись вpluginPath. - Что будет, если у пользователя есть меню со скриптом, а самого скрипта уже нет?
- Обновится ли информация у пользователя, если обновить информацию о скрипте?
- Информация о положении в меню указывается через иерархию папок. Что будет, если поменять иерархию?
- Если у пользователя нет настроек скриптов, должны подгружаться дефолтные скрипты.
- Новые дефолтные скрипты должны появляться у всех пользователей (как у новых, так и у тех, у кого уже есть настройки).
- Что будет, если добавить скрипт в новую папку (которой еще не было в
pluginPath) во время работы Nuke? - Что будет, если добавить/убрать дополнительный параметр (например,
icon) вEditScriptPanel? - Что будет, если удалить информацию о скрипте, который есть у пользователя?
- Что будет, если существует несколько скриптов с одинаковым названием?
- Что будет, если переименовать скрипт?
- Как удалить скрипт или информацию о скрипте?
- Если нажать кнопку "кастомная команда", то сохраняется пункт "путь в меню", хотя меню нет. Нужно обдумать этот момент.
- Для кастомной команды используется "имя в меню", которое скрыто, когда включена галка "имя в меню".
- Разобраться, какие папки импортировать в
pluginPath. Это тоже можно делать в файле пользователя. - По сути, все плагины можно запускать без перезагрузки Nuke.
- По цифрам контекста (
0,1,2) не понятно, за что они отвечают. Надо написать имена:0=Window,1=Application,2=DAG. - Придумать что-то с иконками.
- Сейчас работает история с обратными слешами и слешами в нейминге(через
get_in_menu_name), но коряво и нужно сделать так чтобы пользвоатель этого не замечал. Сейчас нужно если хочешь поставить прямой слеш/в имени, нужно самому его экранировать через\/, нужно сделать чтобы это происходило автоматически.