Merge pull request #1 from ayes-web/catbox-linux-mac
Add linux and macos support
This commit is contained in:
commit
d49c404816
|
@ -451,49 +451,58 @@ end
|
||||||
function main_menu:upload_litterbox()
|
function main_menu:upload_litterbox()
|
||||||
local endpoint = config.litterbox and 'https://litterbox.catbox.moe/resources/internals/api.php' or 'https://catbox.moe/user/api.php'
|
local endpoint = config.litterbox and 'https://litterbox.catbox.moe/resources/internals/api.php' or 'https://catbox.moe/user/api.php'
|
||||||
|
|
||||||
encoder.create_clip('video',
|
encoder.create_clip('video',
|
||||||
function(outfile)
|
function(outfile)
|
||||||
notify("Uploading to " .. (config.litterbox and "litterbox.catbox.moe..." or "catbox.moe..."), "info", 9999)
|
notify("Uploading to " .. (config.litterbox and "litterbox.catbox.moe..." or "catbox.moe..."), "info", 9999)
|
||||||
|
|
||||||
|
-- This uses cURL to send a request to the cat-/litterbox API.
|
||||||
|
-- (cURL is included with Windows 10 and up)
|
||||||
|
|
||||||
|
local r = mp.command_native({ -- This is technically blocking, but I don't think it has any real consequences ..?
|
||||||
|
name = 'subprocess',
|
||||||
|
playback_only = false,
|
||||||
|
capture_stdout = true,
|
||||||
|
capture_stderr = true,
|
||||||
|
args = {
|
||||||
|
os_type == 'window' and 'curl.exe' or 'curl', '-s',
|
||||||
|
'-F', 'reqtype=fileupload',
|
||||||
|
'-F', 'time=' .. config['litterbox_expire'],
|
||||||
|
'-F', 'fileToUpload=@"' .. outfile .. '"',
|
||||||
|
endpoint
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- This really only happens for people that should have upgraded their system years ago.
|
||||||
|
-- Or people running a minimal installation i guess.
|
||||||
|
if r.status == -3 then
|
||||||
|
notify("Error: Failed to upload. Make sure cURL is installed and in your PATH.", "error", 3)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if r.status ~= 0 then
|
||||||
|
notify("Error: Failed to upload to " .. config.litterbox and "litterbox.catbox.moe" or "catbox.moe", "error", 2)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Copy to clipboard
|
||||||
if os_type == 'windows' then
|
if os_type == 'windows' then
|
||||||
-- This uses cURL to send a request to the cat-/litterbox API.
|
|
||||||
-- (cURL is included with Windows 10 and up)
|
|
||||||
|
|
||||||
local r = mp.command_native({ -- This is technically blocking, but I don't think it has any real consequences ..?
|
|
||||||
name = 'subprocess',
|
|
||||||
playback_only = false,
|
|
||||||
capture_stdout = true,
|
|
||||||
capture_stderr = true,
|
|
||||||
args = {
|
|
||||||
'curl.exe', '-s',
|
|
||||||
'-F', 'reqtype=fileupload',
|
|
||||||
'-F', 'time=' .. config['litterbox_expire'],
|
|
||||||
'-F', 'fileToUpload=@"' .. outfile .. '"',
|
|
||||||
endpoint
|
|
||||||
}
|
|
||||||
})
|
|
||||||
-- This really only happens for people that should have upgraded their system years ago.
|
|
||||||
-- Or people running a minimal installation i guess.
|
|
||||||
if r.status == -3 then
|
|
||||||
notify("Error: Failed to upload. Make sure cURL is installed and in your PATH.", "error", 3)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if r.status ~= 0 then
|
|
||||||
notify("Error: Failed to upload to " .. config.litterbox and "litterbox.catbox.moe" or "catbox.moe", "error", 2)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Copy to clipboard
|
|
||||||
print(r.stdout)
|
|
||||||
local clipboard_command = 'powershell -command "Set-Clipboard -Value ' .. r.stdout .. '"'
|
local clipboard_command = 'powershell -command "Set-Clipboard -Value ' .. r.stdout .. '"'
|
||||||
mp.command('run ' .. clipboard_command)
|
mp.command('run ' .. clipboard_command)
|
||||||
end
|
end
|
||||||
|
|
||||||
if os_type == 'macos' then
|
if os_type == 'macos' then
|
||||||
notify("Not yet implemented for macOS.", "error", 2)
|
local clipboard_command = 'echo ' .. r.stdout .. ' | pbcopy'
|
||||||
|
mp.command("run /bin/sh -c \"" .. clipboard_command .. "\"")
|
||||||
end
|
end
|
||||||
if os_type == 'linux' then
|
|
||||||
notify("Not yet implemented for Linux.", "error", 2)
|
if os_type == "linux" then
|
||||||
|
local session_type = io.popen('/bin/sh -c "echo $XDG_SESSION_TYPE"'):read("*a")
|
||||||
|
|
||||||
|
-- wl-copy is from wl-clipboard
|
||||||
|
local clipboard_command = session_type == "x11\n" and
|
||||||
|
"/bin/sh -c \"echo " .. r.stdout .. "| xclip -sel clip\"" or
|
||||||
|
"wl-copy " .. r.stdout
|
||||||
|
|
||||||
|
mp.command('run ' .. clipboard_command)
|
||||||
end
|
end
|
||||||
|
|
||||||
notify("Done! Copied URL to clipboard.", "info", 2)
|
notify("Done! Copied URL to clipboard.", "info", 2)
|
||||||
|
|
Loading…
Reference in a new issue