home

My NixOS systems configurations.
Log | Files | Refs | LICENSE

types.go (1599B)


      1 package readwise
      2 
      3 import "time"
      4 
      5 type Export struct {
      6 	Count          int      `json:"count"`
      7 	NextPageCursor *int     `json:"nextPageCursor"`
      8 	Results        []Result `json:"results"`
      9 }
     10 
     11 type Result struct {
     12 	UserBookId    int         `json:"use_book_id"`
     13 	Title         string      `json:"title"`
     14 	ReadableTitle string      `json:"readable_title"`
     15 	CoverImageURL string      `json:"cover_image_url"`
     16 	Author        string      `json:"author"`
     17 	UniqueURL     string      `json:"unique_url"`
     18 	BookTags      []Tag       `json:"book_tags"`
     19 	Category      string      `json:"category"`
     20 	DocumentNote  string      `json:"document_note"`
     21 	Summary       string      `json:"summary"`
     22 	ReadwiseURL   string      `json:"readwise_url"`
     23 	Source        string      `json:"source"`
     24 	SourceURL     string      `json:"source_url"`
     25 	Highlights    []Highlight `json:"highlights"`
     26 }
     27 
     28 func (r Result) FirstHighlightDate() *time.Time {
     29 	if len(r.Highlights) == 0 {
     30 		return nil
     31 	}
     32 	var t time.Time
     33 	for _, h := range r.Highlights {
     34 		if h.HighlightedAt.After(t) {
     35 			t = h.HighlightedAt
     36 		}
     37 	}
     38 	return &t
     39 }
     40 
     41 type Highlight struct {
     42 	Text          string    `json:"text"`
     43 	ID            int       `json:"id"`
     44 	Note          string    `json:"note"`
     45 	ReadwiseURL   string    `json:"readwise_url"`
     46 	HighlightedAt time.Time `json:"highlighted_at"`
     47 	BookID        int       `json:"book_id"`
     48 	URL           string    `json:"url"`
     49 	Color         string    `json:"color"`
     50 	Updated       time.Time `json:"updated"`
     51 	Tags          []Tag     `json:"tags"`
     52 }
     53 
     54 type Tag struct {
     55 	ID   int    `json:"id"`
     56 	Name string `json:"name"`
     57 }