Check atom feed for nil returns
This commit is contained in:
parent
3d08cc7612
commit
9199f202be
@ -1,6 +1,7 @@
|
|||||||
package backend
|
package backend
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
@ -12,6 +13,9 @@ func GenerateAtomFeed(c *Config, db *DB) (*string, error) {
|
|||||||
feed := atom.NewFeed(c.Title)
|
feed := atom.NewFeed(c.Title)
|
||||||
feed.ID = atom.NewID("urn:feed:1")
|
feed.ID = atom.NewID("urn:feed:1")
|
||||||
feed.Subtitle = atom.NewText("text", c.Description)
|
feed.Subtitle = atom.NewText("text", c.Description)
|
||||||
|
if feed.Subtitle == nil {
|
||||||
|
return nil, errors.New("feed subtitle was not created")
|
||||||
|
}
|
||||||
|
|
||||||
linkID := feed.AddLink(atom.NewLink(c.Link))
|
linkID := feed.AddLink(atom.NewLink(c.Link))
|
||||||
feed.Links[linkID].Rel = "self"
|
feed.Links[linkID].Rel = "self"
|
||||||
@ -34,15 +38,24 @@ func GenerateAtomFeed(c *Config, db *DB) (*string, error) {
|
|||||||
entry.ID = atom.NewID(fmt.Sprint("urn:entry:", article.ID))
|
entry.ID = atom.NewID(fmt.Sprint("urn:entry:", article.ID))
|
||||||
entry.Published = atom.NewDate(article.Created)
|
entry.Published = atom.NewDate(article.Created)
|
||||||
entry.Content = atom.NewContent(atom.OutOfLine, "text/html", fmt.Sprint(c.Domain, "/article/serve/", article.UUID))
|
entry.Content = atom.NewContent(atom.OutOfLine, "text/html", fmt.Sprint(c.Domain, "/article/serve/", article.UUID))
|
||||||
|
if entry.Content == nil {
|
||||||
|
return nil, errors.New("entry content was not created")
|
||||||
|
}
|
||||||
|
|
||||||
if article.AutoGenerated {
|
if article.AutoGenerated {
|
||||||
entry.Summary = atom.NewText("text", "automatically generated")
|
entry.Summary = atom.NewText("text", "automatically generated")
|
||||||
|
if entry.Summary == nil {
|
||||||
|
return nil, errors.New("entry summary was not created")
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
articleSummary, err := ConvertToPlain(article.Summary)
|
articleSummary, err := ConvertToPlain(article.Summary)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error converting description to plain text for Atom feed: %v", err)
|
return nil, fmt.Errorf("error converting description to plain text for Atom feed: %v", err)
|
||||||
}
|
}
|
||||||
entry.Summary = atom.NewText("text", articleSummary)
|
entry.Summary = atom.NewText("text", articleSummary)
|
||||||
|
if entry.Summary == nil {
|
||||||
|
return nil, errors.New("entry summary was not created")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(article.BannerLink) > 0 {
|
if len(article.BannerLink) > 0 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user