diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2020-05-02 20:53:35 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2020-05-02 20:53:35 +0200 |
commit | 6bd8a6c2cd153bad9ca044b409e55302e10206c1 (patch) | |
tree | da1f175a7260a13fdfaa9a8817fc38351a480837 /internal/feed/item.go | |
parent | 477241a2c2356c61b7317246040aee50d2a7a81d (diff) | |
download | feed2imap-go-6bd8a6c2cd153bad9ca044b409e55302e10206c1.tar.gz feed2imap-go-6bd8a6c2cd153bad9ca044b409e55302e10206c1.tar.bz2 feed2imap-go-6bd8a6c2cd153bad9ca044b409e55302e10206c1.zip |
Restructure
Diffstat (limited to '')
-rw-r--r-- | internal/feed/item.go | 59 |
1 files changed, 59 insertions, 0 deletions
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("<feed#%s#%s@%s>", item.feed.cached.ID(), item.itemId, config.Hostname()) +} |