adds .local/share/millennium and easyeffects

This commit is contained in:
2026-08-06 18:19:44 +02:00
parent d4541842a4
commit 2b51bfa8c5
2581 changed files with 339035 additions and 0 deletions
@@ -0,0 +1,87 @@
local json = require("json")
local fs = require("fs")
local utils = require("utils")
local logger = require("logger")
local millennium = require("millennium")
local M = {}
function M.HandleLegacyExtensions()
local plugin_dir = GetPluginDir()
if not plugin_dir then
logger:error("Failed to get plugin directory")
return json.encode({ error = "Failed to get plugin directory" })
end
local extensions_dir = fs.join(plugin_dir, ".extensions")
if not fs.exists(extensions_dir) or not fs.is_directory(extensions_dir) then
return json.encode({})
end
local extensions = {}
local entries, err = fs.list(extensions_dir)
if entries then
for _, entry in ipairs(entries) do
if entry.is_directory then
local metadata_path = fs.join(entry.path, "metadata.json")
local extension_data = {
name = string.gsub(entry.name, '-', ' '),
hasMetadata = false
}
if fs.is_file(metadata_path) then
local content, err = utils.read_file(metadata_path)
if content then
local metadata, decode_err = json.decode(content)
if metadata then
extension_data.hasMetadata = true
extension_data.extensionId = metadata.extensionId
extension_data.url = metadata.url
else
logger:warn("Failed to decode metadata for " .. entry .. ": " .. (decode_err or "unknown error"))
end
else
logger:warn("Failed to read metadata for " .. entry .. ": " .. (err or "unknown error"))
end
end
table.insert(extensions, extension_data)
end
end
end
if #extensions == 0 then
return
end
logger:info("Found " .. #extensions .. " legacy extensions")
local extensions_json = json.encode(extensions)
millennium.call_frontend_method("showLegacyExtensionDialog", {extensions_json})
end
---Delete the .extensions folder
function M.DeleteLegacyExtensions()
local plugin_dir = GetPluginDir()
if not plugin_dir then
logger:error("Failed to get plugin directory")
end
local extensions_dir = fs.join(plugin_dir, ".extensions")
if not fs.exists(extensions_dir) or not fs.is_directory(extensions_dir) then
return
end
local count, err = fs.remove_all(extensions_dir)
if count then
logger:info("Deleted legacy extensions folder: " .. count .. " items removed")
else
logger:error("Failed to delete legacy extensions folder: " .. (err or "unknown error"))
end
end
return M