Files
dotfiles/mpv/scripts/file-browser/addons/url-decode.lua
2025-06-14 20:26:14 +02:00

36 lines
934 B
Lua

--[[
An addon for file-browser which decodes URLs so that they are more readable
]]
local urldecode = {
priority = 5,
api_version = "1.0.0"
}
--decodes a URL address
--this piece of code was taken from: https://stackoverflow.com/questions/20405985/lua-decodeuri-luvit/20406960#20406960
local decodeURI
do
local char, gsub, tonumber = string.char, string.gsub, tonumber
local function _(hex) return char(tonumber(hex, 16)) end
function decodeURI(s)
s = gsub(s, '%%(%x%x)', _)
return s
end
end
function urldecode:can_parse(directory)
return self.get_protocol(directory)
end
function urldecode:parse(directory)
local list, opts = self:defer(directory)
if opts.directory and not self.get_protocol(opts.directory) then return list, opts end
opts.directory_label = decodeURI(opts.directory_label or (opts.directory or directory))
return list, opts
end
return urldecode