From 6bd8a6c2cd153bad9ca044b409e55302e10206c1 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Sat, 2 May 2020 20:53:35 +0200 Subject: Restructure --- internal/feed/item.go | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 internal/feed/item.go (limited to 'internal/feed/item.go') diff --git a/internal/feed/item.go b/internal/feed/item.go new file mode 100644 index 0000000..5c67784 --- /dev/null +++ b/internal/feed/item.go @@ -0,0 +1,59 @@ +package feed + +import ( + "fmt" + + "github.com/mmcdole/gofeed" + + "github.com/Necoro/feed2imap-go/pkg/config" + "github.com/Necoro/feed2imap-go/pkg/util" +) + +type feedImage struct { + image []byte + mime string +} + +type item struct { + *gofeed.Feed + *gofeed.Item + feed *Feed + Body string + updateOnly bool + reasons []string + images []feedImage + itemId string +} + +// Creator returns the name of the creating author. +// MUST NOT have `*item` has the receiver, because the template breaks then. +func (item *item) Creator() string { + if item.Item.Author != nil { + return item.Item.Author.Name + } + return "" +} + +func (item *item) addReason(reason string) { + if !util.StrContains(item.reasons, reason) { + item.reasons = append(item.reasons, reason) + } +} + +func (item *item) addImage(img []byte, mime string) int { + i := feedImage{img, mime} + item.images = append(item.images, i) + return len(item.images) +} + +func (item *item) clearImages() { + item.images = []feedImage{} +} + +func (item *item) defaultEmail() string { + return item.feed.Global.DefaultEmail +} + +func (item *item) messageId() string { + return fmt.Sprintf("", item.feed.cached.ID(), item.itemId, config.Hostname()) +} -- cgit v1.2.3-54-g00ecf