You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koreader/plugins/exporter.koplugin/target/my_clippings.lua

65 lines
2.0 KiB
Lua

local util = require("ffi/util")
local T = util.template
local _ = require("gettext")
-- myClippings exporter
local ClippingsExporter = require("base"):new {
name = "myClippings",
extension = "txt",
mimetype = "text/plain",
all_books_title = "myClippings"
}
local function format(booknotes)
local tbl = {}
for ___, entry in ipairs(booknotes) do
for ____, clipping in ipairs(entry) do
if booknotes.title and clipping.text then
local title_str = booknotes.title .. " (" .. (booknotes.author or "Unknown") .. ")"
table.insert(tbl, title_str)
local header = T(_("- Your highlight on page %1 | Added on %2"), clipping.page,
os.date("%A, %B %d, %Y %I:%M:%S %p", clipping.time))
table.insert(tbl, header)
table.insert(tbl, "")
table.insert(tbl, clipping.text)
table.insert(tbl, "==========")
if clipping.note then
table.insert(tbl, title_str)
header = T(_("- Your note on page %1 | Added on %2"), clipping.page,
os.date("%A, %B %d, %Y %I:%M:%S %p", clipping.time))
table.insert(tbl, header)
table.insert(tbl, "")
table.insert(tbl, clipping.note)
table.insert(tbl, "==========")
end
end
end
end
-- Ensure a newline after the last "=========="
table.insert(tbl, "")
return table.concat(tbl, "\n")
end
function ClippingsExporter:export(t)
local path = self:getFilePath(t)
local file = io.open(path, "a")
if not file then return false end
for __, booknotes in ipairs(t) do
local content = format(booknotes)
file:write(content)
end
file:close()
return true
end
function ClippingsExporter:share(t)
local content = format(t)
self:shareText(content)
end
return ClippingsExporter