update + fixes

This commit is contained in:
JMARyA 2024-03-07 01:09:25 +01:00
parent 04e857d96e
commit 96d794798f
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
4 changed files with 72 additions and 3 deletions

View file

@ -4,6 +4,7 @@ function M:peek()
local child = Command("7z") local child = Command("7z")
:args({ :args({
"l", "l",
"-ba",
tostring(self.file.url), tostring(self.file.url),
}) })
:stdout(Command.PIPED) :stdout(Command.PIPED)

View file

@ -3,6 +3,7 @@ local M = {}
function M:peek() function M:peek()
local child = Command("imdl") local child = Command("imdl")
:args({ :args({
"-t",
"torrent", "torrent",
"show", "show",
tostring(self.file.url), tostring(self.file.url),

View file

@ -0,0 +1,63 @@
local M = {}
function M:peek()
local child = Command("pdftotext")
:args({
tostring(self.file.url),
"-"
})
:stdout(Command.PIPED)
:stderr(Command.PIPED)
:spawn()
if not child then
return self:fallback_to_builtin()
end
local limit = self.area.h
local i, lines = 0, ""
repeat
local next, event = child:read_line()
if event == 1 then
return self:fallback_to_builtin()
elseif event ~= 0 then
break
end
i = i + 1
if i > self.skip then
lines = lines .. next
end
until i >= self.skip + limit
child:start_kill()
if self.skip > 0 and i < self.skip + limit then
ya.manager_emit(
"peek",
{ tostring(math.max(0, i - limit)), only_if = tostring(self.file.url), upper_bound = "" }
)
else
lines = lines:gsub("\t", string.rep(" ", PREVIEW.tab_size))
ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) })
end
end
function M:seek(units)
local h = cx.active.current.hovered
if h and h.url == self.file.url then
local step = math.floor(units * self.area.h / 10)
ya.manager_emit("peek", {
tostring(math.max(0, cx.active.preview.skip + step)),
only_if = tostring(self.file.url),
})
end
end
function M:fallback_to_builtin()
local _, bound = ya.preview_code(self)
if bound then
ya.manager_emit("peek", { tostring(bound), only_if = tostring(self.file.url), upper_bound = "" })
end
end
return M

View file

@ -30,7 +30,7 @@ play = [
] ]
info = [ info = [
{ exec = '''ffprobe -hide_banner "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show ffprobe info", for = "unix" }, { exec = '''ffprobe -hide_banner "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show ffprobe info", for = "unix" },
{ exec = '''ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show duration", for = "unix"} { exec = '''printf "'${1##*/}' Duration: ";ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show duration", for = "unix"}
] ]
[open] [open]
@ -96,7 +96,7 @@ previewers = [
# Video # Video
{ mime = "video/*", exec = "video" }, { mime = "video/*", exec = "video" },
# PDF # PDF
{ mime = "application/pdf", exec = "pdf" }, { mime = "application/pdf", exec = "pdf2text" },
# Archive # Archive
{ mime = "application/zip", exec = "7z" }, { mime = "application/zip", exec = "7z" },
{ mime = "application/gzip", exec = "7z" }, { mime = "application/gzip", exec = "7z" },
@ -109,8 +109,12 @@ previewers = [
{ mime = "application/x-bittorrent;", exec = "imdl" }, { mime = "application/x-bittorrent;", exec = "imdl" },
{ name = "*.torrent", exec = "imdl" }, { name = "*.torrent", exec = "imdl" },
{ mime = "application/octet-stream", exec = "hexyl" }, # File Ext
# Switch ROM
{ name = "*.nsp", exec = "file" },
# Fallback # Fallback
{ mime = "application/octet-stream", exec = "hexyl" },
{ name = "*", exec = "file" }, { name = "*", exec = "file" },
] ]