Packages

Some help ingesting Keep data obtained via Takeout…

Current section

Files

Jump to
outkeep src outkeep text_note.gleam
Raw

src/outkeep/text_note.gleam

import birl.{type Time}
import gleam/dynamic.{type DecodeError, type Dynamic}
import gleam/result
pub type TextNote {
TextNote(
title: String,
is_archived: Bool,
is_trashed: Bool,
text: String,
created_at: Time,
edited_at: Time,
)
}
pub fn decode(dyn: Dynamic) -> Result(TextNote, List(DecodeError)) {
dyn
|> dynamic.decode6(
TextNote,
dynamic.field("title", of: dynamic.string),
dynamic.field("isArchived", of: dynamic.bool),
dynamic.field("isTrashed", of: dynamic.bool),
dynamic.field("textContent", of: dynamic.string),
dynamic.field("createdTimestampUsec", of: time_from_usec),
dynamic.field("userEditedTimestampUsec", of: time_from_usec),
)
}
fn time_from_usec(dyn: Dynamic) {
dyn
|> dynamic.int
|> result.map(with: birl.from_unix_micro)
}