Skip to content

Commit

Permalink
Handle RSS feed title with encoded Unicode entities
Browse files Browse the repository at this point in the history
  • Loading branch information
fguillot committed May 1, 2021
1 parent 1c9f000 commit 5b8eb47
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
19 changes: 19 additions & 0 deletions reader/rss/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -998,6 +998,25 @@ func TestParseFeedTitleWithHTMLEntity(t *testing.T) {
}
}

func TestParseFeedTitleWithUnicodeEntityAndCdata(t *testing.T) {
data := `<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
<link>https://example.org/</link>
<title><![CDATA[Jenny&#8217;s Newsletter]]></title>
</channel>
</rss>`

feed, err := Parse("https://example.org/", bytes.NewBufferString(data))
if err != nil {
t.Fatal(err)
}

if feed.Title != `Jenny’s Newsletter` {
t.Errorf(`Incorrect title, got: %q`, feed.Title)
}
}

func TestParseItemTitleWithHTMLEntity(t *testing.T) {
data := `<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
Expand Down
2 changes: 1 addition & 1 deletion reader/rss/rss.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func (r *rssFeed) Transform(baseURL string) *model.Feed {
feed.FeedURL = feedURL
}

feed.Title = strings.TrimSpace(r.Title)
feed.Title = html.UnescapeString(strings.TrimSpace(r.Title))
if feed.Title == "" {
feed.Title = feed.SiteURL
}
Expand Down

0 comments on commit 5b8eb47

Please sign in to comment.