57 lines
1.4 KiB
Lua
57 lines
1.4 KiB
Lua
--[[
|
|
An addon for mpv-file-browser which stores the last opened directory and
|
|
sets it as the opened directory the next time mpv is opened.
|
|
|
|
Available at: https://github.com/CogentRedTester/mpv-file-browser/tree/master/addons
|
|
]]--
|
|
|
|
local mp = require 'mp'
|
|
local msg = require 'mp.msg'
|
|
|
|
local fb = require 'file-browser'
|
|
|
|
local state_file = mp.command_native({'expand-path', '~~state/last_opened_directory'})
|
|
msg.verbose('using', state_file)
|
|
|
|
local function write_directory(directory)
|
|
local file = io.open(state_file, 'w+')
|
|
|
|
if not file then return msg.error('could not open', state_file, 'for writing') end
|
|
|
|
directory = directory or fb.get_directory()
|
|
msg.verbose('writing', directory, 'to', state_file)
|
|
file:write(directory)
|
|
file:close()
|
|
end
|
|
|
|
|
|
local addon = {
|
|
api_version = '1.7.0',
|
|
priority = 0,
|
|
}
|
|
|
|
function addon:setup()
|
|
local file = io.open(state_file, "r")
|
|
if not file then
|
|
return msg.error('failed to open', state_file, 'for reading')
|
|
end
|
|
|
|
local dir = file:read("*a")
|
|
msg.verbose('setting default directory to', dir)
|
|
fb.browse_directory(dir, false)
|
|
file:close()
|
|
end
|
|
|
|
function addon:can_parse(dir, parse_state)
|
|
if parse_state.source == 'browser' then write_directory(dir) end
|
|
return false
|
|
end
|
|
|
|
function addon:parse()
|
|
return nil
|
|
end
|
|
|
|
mp.register_event('shutdown', function() write_directory() end)
|
|
|
|
return addon
|