diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2021-02-27 14:10:09 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2021-02-27 14:28:36 +0100 |
commit | 6ad93417790d0d63cd889ac65566fc4e4c3e34d1 (patch) | |
tree | 799043425accff66f43ec41b38f08d9eff2ea499 /internal | |
parent | 050ce6e8f89d8d4e126481644023875eb3c6fb2e (diff) | |
download | feed2imap-go-6ad93417790d0d63cd889ac65566fc4e4c3e34d1.tar.gz feed2imap-go-6ad93417790d0d63cd889ac65566fc4e4c3e34d1.tar.bz2 feed2imap-go-6ad93417790d0d63cd889ac65566fc4e4c3e34d1.zip |
Do not use deprecated gofeed.Item.Author, but Authors instead
Diffstat (limited to '')
-rw-r--r-- | internal/feed/item.go | 10 | ||||
-rw-r--r-- | internal/feed/mail.go | 26 |
2 files changed, 24 insertions, 12 deletions
diff --git a/internal/feed/item.go b/internal/feed/item.go index 39f41ba..f7dd506 100644 --- a/internal/feed/item.go +++ b/internal/feed/item.go @@ -4,6 +4,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "strings" "time" "github.com/google/uuid" @@ -44,12 +45,13 @@ func (item *Item) Date() string { return item.Updated } -// Creator returns the name of the creating author. +// Creator returns the name of the creating authors (comma separated). func (item *Item) Creator() string { - if item.Author != nil { - return item.Author.Name + names := make([]string, len(item.Authors)) + for i, p := range item.Authors { + names[i] = p.Name } - return "" + return strings.Join(names, ", ") } func (item *Item) FeedLink() string { diff --git a/internal/feed/mail.go b/internal/feed/mail.go index 636f6a0..6ca7192 100644 --- a/internal/feed/mail.go +++ b/internal/feed/mail.go @@ -16,6 +16,7 @@ import ( "github.com/emersion/go-message/mail" "github.com/gabriel-vasile/mimetype" "github.com/jaytaylor/html2text" + "github.com/mmcdole/gofeed" "golang.org/x/net/html" "github.com/Necoro/feed2imap-go/internal/feed/template" @@ -31,16 +32,25 @@ func address(name, address string) []*mail.Address { return []*mail.Address{{Name: name, Address: address}} } +func author(authors []*gofeed.Person) *gofeed.Person { + if len(authors) > 0 { + return authors[0] + } + return nil +} + func (item *Item) fromAddress() []*mail.Address { + itemAuthor := author(item.Authors) + feedAuthor := author(item.Feed.Authors) switch { - case item.Author != nil && item.Author.Email != "": - return address(item.Author.Name, item.Author.Email) - case item.Author != nil && item.Author.Name != "": - return address(item.Author.Name, item.defaultEmail()) - case item.Feed.Author != nil && item.Feed.Author.Email != "": - return address(item.Feed.Author.Name, item.Feed.Author.Email) - case item.Feed.Author != nil && item.Feed.Author.Name != "": - return address(item.Feed.Author.Name, item.defaultEmail()) + case itemAuthor != nil && itemAuthor.Email != "": + return address(itemAuthor.Name, itemAuthor.Email) + case itemAuthor != nil && itemAuthor.Name != "": + return address(itemAuthor.Name, item.defaultEmail()) + case feedAuthor != nil && feedAuthor.Email != "": + return address(feedAuthor.Name, feedAuthor.Email) + case feedAuthor != nil && feedAuthor.Name != "": + return address(feedAuthor.Name, item.defaultEmail()) default: return address(item.feed.Name, item.defaultEmail()) } |