From 11c4e92cc7fe12276d49d91e8af9ef7f95b1b266 Mon Sep 17 00:00:00 2001 From: Dhananjay Balan Date: Thu, 13 Apr 2023 23:04:39 +0200 Subject: [PATCH] CSV export --- README.md | 3 ++- lib/Parsers/Readwise.hs | 14 ++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 2e1305f..3aaacec 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,8 @@ Personal, bare bones [readwise] alternative. Have - Parsers - - [ ] Read from kindle + - [-] Read from kindle + - [ ] Read from readwise - [x] Read from KOReader - [x] Minimal API - Expose random-quote API diff --git a/lib/Parsers/Readwise.hs b/lib/Parsers/Readwise.hs index 0d743c4..b5ebb75 100644 --- a/lib/Parsers/Readwise.hs +++ b/lib/Parsers/Readwise.hs @@ -34,16 +34,18 @@ instance FromNamedRecord RwHighlight where <*> m .: "Highlighted at" <*> m .: "Document tags" -parseDocument :: ByteString -> [RwHighlight] +parseDocument :: ByteString -> Either String [RwHighlight] parseDocument d = case decodeByName d of - Left _ -> [] - Right (_, va) -> toList va + Left err -> Left err + Right (_, va) -> Right $ toList va -parse :: ByteString -> [Quote] -parse d = fmap (\r -> Quote { qQuote = rhHightlight r +parse :: ByteString -> Either String [Quote] +parse d = case parseDocument d of + Left err -> Left err + Right rw -> Right $ fmap (\r -> Quote { qQuote = rhHightlight r , qAuthor = rhAuthor r , qTitle = rhTitle r , qPage = rhLocation r , qChapter = Nothing , qCreatedOn = Nothing - }) (parseDocument d) + }) rw