aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xexport-koreader-note46
1 files changed, 46 insertions, 0 deletions
diff --git a/export-koreader-note b/export-koreader-note
new file mode 100755
index 0000000..ae2e0ef
--- /dev/null
+++ b/export-koreader-note
@@ -0,0 +1,46 @@
+#!/usr/bin/env lua
+--
+-- Convert koreader metadata to markdown.
+--
+
+-- Sort by page number
+function compare(a, b)
+ return a.page < b.page
+end
+
+-- Check if a file exists
+-- Thanks https://stackoverflow.com/questions/4990990/check-if-a-file-exists-with-lua#4991602
+function file_exists(name)
+ local f=io.open(name,"r")
+ if f~=nil then io.close(f) return true else return false end
+end
+
+-- Get filename
+file = arg[1]
+
+-- Usage
+if file == nil then
+ print('usage: ' .. arg[0] .. ' <filename>')
+ os.exit(1)
+else
+ if not file_exists(file) then
+ print('file not found: ' .. file)
+ os.exit(1)
+ end
+end
+
+-- Load metadata
+content = assert(loadfile(file))
+data = content()
+bookmarks = data.bookmarks
+
+-- Sort
+table.sort(bookmarks, compare)
+
+-- Iterate over bookmarks
+for key, item in ipairs(bookmarks) do
+ print('Page ' .. item.page .. ':')
+ print('')
+ print('> ' .. item.notes)
+ print('')
+end