bookie/main.go
2023-01-02 18:13:08 -08:00

73 lines
1.5 KiB
Go

package main
import (
"encoding/xml"
"fmt"
)
// Make up some data structures into which we can put our feed.
// Bookmark defines the fundamental structure of the items to be archived.
type Bookmark struct {
// Required
Title string `xml:"title"`
URL string `xml:"guid"`
// Optional
Domain string
Author string
SaveDate string
PubDate string
Comments string `xml:"comments"`
MercuryContent string
PDFpath string
Tags string
}
// Feed defines the structure of the RSS feed exported from Pocket
type Feed struct {
XMLName xml.Name `xml:"rss"`
Version string `xml:"version,attr"`
// Required
Title string `xml:"channel>title"`
Link string `xml:"channel>link"`
Description string `xml:"channel>description"`
// Optional
PubDate string `xml:"channel>pubDate"`
BookmarkList []Bookmark `xml:"channel>item"`
}
// Mercury is a data structure to manage hte output of the mercury parsing
type Mercury struct {
Title string
Author string
DatePublished string
Dek string
LeadImageURL string
Content string
NextPageURL string
URL string
Domain string
Excerpt string
WordCount int
Direction string
TotalPages int
RenderedPages int
}
func main() {
fmt.Println("Launching Pocket Archive...")
db, err := getDB("./bookmarks.db")
if err != nil {
fmt.Println("Could not open or create db")
panic(err)
}
defer db.Close()
//pullPocket(db)
runIngest(db)
fmt.Println("Pocket Archive exiting.")
}