This repository has been archived on 2023-02-07. You can view files and clone it, but cannot push or open issues or pull requests.
configs/mpv/scripts/blacklist-extensions.lua
Victor Risgaard 463a18b5ec Configs
2023-02-07 16:14:07 +01:00

79 lines
1.8 KiB
Lua

opts = {
blacklist="",
whitelist="",
remove_files_without_extension = false,
oneshot = true,
}
(require 'mp.options').read_options(opts)
local msg = require 'mp.msg'
function split(input)
local ret = {}
for str in string.gmatch(input, "([^,]+)") do
ret[#ret + 1] = str
end
return ret
end
opts.blacklist = split(opts.blacklist)
opts.whitelist = split(opts.whitelist)
local exclude
if #opts.whitelist > 0 then
exclude = function(extension)
for _, ext in pairs(opts.whitelist) do
if extension == ext then
return false
end
end
return true
end
elseif #opts.blacklist > 0 then
exclude = function(extension)
for _, ext in pairs(opts.blacklist) do
if extension == ext then
return true
end
end
return false
end
else
return
end
function should_remove(filename)
if string.find(filename, "://") then
return false
end
local extension = string.match(filename, "%.([^./]+)$")
if not extension and opts.remove_file_without_extension then
return true
end
if extension and exclude(string.lower(extension)) then
return true
end
return false
end
function process(playlist_count)
if playlist_count < 2 then return end
if opts.oneshot then
mp.unobserve_property(observe)
end
local playlist = mp.get_property_native("playlist")
local removed = 0
for i = #playlist, 1, -1 do
if should_remove(playlist[i].filename) then
mp.commandv("playlist-remove", i-1)
removed = removed + 1
end
end
if removed == #playlist then
msg.warn("Removed eveything from the playlist")
end
end
function observe(k,v) process(v) end
mp.observe_property("playlist-count", "number", observe)