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