Перейти к основному содержимому

mp.app — 25 функций

ФункцияВозвратОписание
version()stringВерсия MultiProg (например "2.3.0")
script_api_version()stringВерсия API скриптов (например "1.7.10", формат major.minor.patch) — увеличивается на любом изменении API
build_info()table{git_hash, build_time, qt_version, compiler, platform, script_api}
os_info()table{os, os_version, kernel, kernel_version, cpu_arch, hostname}
exe_dir()stringПапка MultiProg.exe
exe_path()stringПолный путь к MultiProg.exe
config_dir()stringПапка пользовательских конфигов
scripts_dir()stringПапка скриптов
temp_dir()stringСистемная temp
home_dir()stringДомашняя папка пользователя
desktop_dir()stringDesktop пользователя
documents_dir()stringDocuments пользователя
get_env(name)stringПеременная окружения
args()tableМассив аргументов командной строки
log_path()stringСегодняшний лог MultiProg (тот же, что в панели логов)
log_tail(n?)stringПоследние n строк этого лога (по умолчанию 200, максимум 10000)
add_script_shortcut(path)ok, errДобавить .lua-путь в меню Script (сохраняется между запусками). Принимает абсолютный путь ИЛИ голое имя файла
remove_script_shortcut(path)ok, errУдалить путь из меню Script
list_script_shortcuts()tableМассив текущих ярлыков скриптов
cleanup_ipc_dir(names)int, tableУдалить файлы в IPC-папке моста; names — Lua-массив имён файлов (без / или \). Жёсткий whitelist защищает критичные файлы

Пример

mp.log.info(mp.app.version()) -- "2.3.0"
mp.log.info(mp.app.script_api_version()) -- "1.7.10"

local b = mp.app.build_info()
mp.log.infof("git=%s qt=%s build=%s",
b.git_hash, b.qt_version, b.build_time)

local o = mp.app.os_info()
mp.log.infof("os=%s arch=%s host=%s",
o.os, o.cpu_arch, o.hostname)

mp.log.info("scripts: " .. mp.app.scripts_dir())
mp.log.info("config: " .. mp.app.config_dir())
mp.log.info("сегодняшний лог: " .. mp.app.log_path())

-- Сделать кастомный скрипт видимым в меню Script после рестарта
mp.app.add_script_shortcut("C:/scripts/my_flow.lua")
for _, p in ipairs(mp.app.list_script_shortcuts()) do
mp.log.info(p)
end