diff options
| author | Adam Mathes <adam@adammathes.com> | 2026-02-14 08:58:38 -0800 |
|---|---|---|
| committer | Adam Mathes <adam@adammathes.com> | 2026-02-14 08:58:38 -0800 |
| commit | e3c379d069ffa9661561d25cdbf2f5894a2f8ee8 (patch) | |
| tree | 24d0e9f5610dd9c8f873c5b78e6bc1c88d32840a /importer/importer.go | |
| parent | 4b06155fbde91a1bef6361ef36efb28789861928 (diff) | |
| download | neko-e3c379d069ffa9661561d25cdbf2f5894a2f8ee8.tar.gz neko-e3c379d069ffa9661561d25cdbf2f5894a2f8ee8.tar.bz2 neko-e3c379d069ffa9661561d25cdbf2f5894a2f8ee8.zip | |
Refactor: project structure, implement dependency injection, and align v2 UI with v1
Diffstat (limited to 'importer/importer.go')
| -rw-r--r-- | importer/importer.go | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/importer/importer.go b/importer/importer.go deleted file mode 100644 index 73a2cd8..0000000 --- a/importer/importer.go +++ /dev/null @@ -1,89 +0,0 @@ -package importer - -import ( - // "bufio" - "encoding/json" - //"fmt" - "io" - "log" - "os" - - "adammathes.com/neko/models/feed" - "adammathes.com/neko/models/item" -) - -type IItem struct { - Title string `json:"title"` - Url string `json:"url"` - Description string `json:"description"` - ReadState bool `json:"read"` - Starred bool `json:"starred"` - Date *IDate `json:"date"` - Feed *IFeed `json:"feed"` -} - -type IFeed struct { - Url string `json:"url"` - Title string `json:"title"` - WebUrl string `json:"web_url"` -} - -type IDate struct { - Date string `json:"$date"` -} - -func ImportJSON(filename string) error { - - f, err := os.Open(filename) - if err != nil { - return err - } - defer f.Close() - - dec := json.NewDecoder(f) - for { - var ii IItem - if err := dec.Decode(&ii); err == io.EOF { - break - } else if err != nil { - return err - } else { - err := InsertIItem(&ii) - if err != nil { - log.Println(err) - } - } - } - return nil -} - -func InsertIItem(ii *IItem) error { - var f feed.Feed - - if ii.Feed == nil { - return nil - } - err := f.ByUrl(ii.Feed.Url) - if err != nil { - f.Url = ii.Feed.Url - f.Title = ii.Feed.Title - err = f.Create() - if err != nil { - return err - } - } - - var i item.Item - i.FeedId = f.Id - i.Title = ii.Title - i.Url = ii.Url - i.Description = ii.Description - - if ii.Date != nil { - i.PublishDate = ii.Date.Date - } - - err = i.Create() - log.Printf("inserted %s\n", i.Url) - return err -} |
