feat: enhance cache system for music and Wakatime integration with new options
This commit is contained in:
@@ -32,6 +32,18 @@ vim.g.usewakatime = true --- @type boolean Options: <true|false>
|
||||
vim.g.usehardtime = false --- @type boolean Options: <true|false>
|
||||
vim.g.useimage = true --- @type boolean Options: <true|false>
|
||||
|
||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Lualine Stats ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
vim.g.stats_wakatime = true --- @type boolean Options: <true|false>
|
||||
vim.g.stats_music = true --- @type boolean Options: <true|false>
|
||||
vim.g.stats_ignored_players = { --- @type string[] Options: [ignored players]
|
||||
"chromium",
|
||||
"firefox",
|
||||
"kdeconnect",
|
||||
"haruna",
|
||||
"plasma-browser-integration",
|
||||
"plasma-browser-integration-76042",
|
||||
}
|
||||
|
||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ COLOR ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
-- Background color
|
||||
vim.o.background = "dark" --- @type string Options: <dark|light>
|
||||
|
||||
@@ -3,7 +3,13 @@
|
||||
-- ╰─────────────────────────────────────────────────────────╯
|
||||
|
||||
local M = {}
|
||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Options ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
-- Options can be set with:
|
||||
-- vim.g.stats_wakatime = true|false (default: true)
|
||||
-- vim.g.stats_music = true|false (default: true)
|
||||
-- vim.g.stats_ignored_players = { "player1", "player2", ... }
|
||||
|
||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━ Script execution ━━━━━━━━━━━━━━━━━━━━━━━
|
||||
-- Path to the cache script
|
||||
local config_dir = vim.fn.stdpath("config") --[[@as string]]
|
||||
local cache_script = vim.fs.joinpath(config_dir, "scripts", "update_cache.sh")
|
||||
@@ -11,15 +17,64 @@ local cache_script = vim.fs.joinpath(config_dir, "scripts", "update_cache.sh")
|
||||
-- Flag to check if the script has already been run
|
||||
local script_run_once = false
|
||||
|
||||
-- Default list of players/sources to ignore when updating the status
|
||||
local ignored_players = {
|
||||
"chromium",
|
||||
"firefox",
|
||||
"kdeconnect",
|
||||
"haruna",
|
||||
"plasma-browser-integration",
|
||||
"plasma-browser-integration-76042",
|
||||
}
|
||||
|
||||
-- Add any vim.g.stats_ignored_players to the list
|
||||
for _, player in ipairs(vim.g.stats_ignored_players or {}) do
|
||||
table.insert(ignored_players, player)
|
||||
end
|
||||
|
||||
if vim.g.stats_music == nil then
|
||||
vim.g.stats_music = true
|
||||
end
|
||||
|
||||
if vim.g.stats_wakatime == nil then
|
||||
vim.g.stats_wakatime = true
|
||||
end
|
||||
|
||||
--- Function to run the cache script
|
||||
---@return nil
|
||||
---@return boolean|number pid The pid of the script
|
||||
function M.setup_script()
|
||||
if not script_run_once then
|
||||
-- Run the cache script
|
||||
vim.system({ cache_script }, { detach = true }, function() end)
|
||||
-- Build the arguments for the cache script
|
||||
local args = { cache_script }
|
||||
|
||||
-- Add the --ignore option with the ignored players
|
||||
if #ignored_players > 0 then
|
||||
table.insert(args, "--ignore")
|
||||
table.insert(args, table.concat(ignored_players, ","))
|
||||
end
|
||||
|
||||
-- Add the --disable-wakatime option if wakatime is disabled
|
||||
if vim.g.stats_wakatime == false then
|
||||
table.insert(args, "--disable-wakatime")
|
||||
end
|
||||
|
||||
-- Add the --no-music option if music is disabled
|
||||
if vim.g.stats_music == false then
|
||||
table.insert(args, "--no-music")
|
||||
end
|
||||
|
||||
-- Prevent the script from running again
|
||||
script_run_once = true
|
||||
|
||||
-- Run the cache script with the constructed arguments
|
||||
local script = vim.system(args, { detach = true }, function() end)
|
||||
|
||||
-- Return the pid of the script
|
||||
return script.pid
|
||||
end
|
||||
|
||||
-- Return false if the script has already been run
|
||||
return false
|
||||
end
|
||||
|
||||
-- Run the setup script only once
|
||||
|
||||
Reference in New Issue
Block a user