aboutsummaryrefslogtreecommitdiff
path: root/internal/feed/mail.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/feed/mail.go')
-rw-r--r--internal/feed/mail.go15
1 files changed, 12 insertions, 3 deletions
diff --git a/internal/feed/mail.go b/internal/feed/mail.go
index 0a8bd10..f77987e 100644
--- a/internal/feed/mail.go
+++ b/internal/feed/mail.go
@@ -16,6 +16,7 @@ import (
"github.com/emersion/go-message"
"github.com/emersion/go-message/mail"
"github.com/gabriel-vasile/mimetype"
+ "golang.org/x/net/html"
"github.com/Necoro/feed2imap-go/internal/feed/template"
"github.com/Necoro/feed2imap-go/internal/http"
@@ -240,6 +241,13 @@ func getBody(content, description string, bodyCfg config.Body) string {
}
}
+func startsWithText(str string) bool {
+ reader := strings.NewReader(str)
+ tokenizer := html.NewTokenizerFragment(reader, "")
+
+ return tokenizer.Next() == html.TextToken
+}
+
func (item *item) buildBody() {
feed := item.feed
feedUrl, err := url.Parse(feed.Url)
@@ -248,6 +256,9 @@ func (item *item) buildBody() {
}
body := getBody(item.Content, item.Description, feed.Body)
+ if body != "" && startsWithText(body) {
+ body = "<br />" + body
+ }
if !feed.InclImages {
item.Body = body
@@ -257,9 +268,7 @@ func (item *item) buildBody() {
doc, err := goquery.NewDocumentFromReader(strings.NewReader(body))
if err != nil {
log.Errorf("Feed %s: Item %s: Error while parsing html content: %s", feed.Name, item.Link, err)
- if body != "" {
- item.Body = "<br />" + body
- }
+ item.Body = body
return
}
tall -d instead of mkdir -pJason A. Donenfeld1-7/+7 2014-04-24Indent using spacesSvend Sorensen1-11/+11 2014-04-24tests: remember to escape $Jason A. Donenfeld1-1/+1 2014-04-24Use die function instead of boring if else everywhere.Jason A. Donenfeld1-69/+23 2014-04-24version: bump1.6.1Jason A. Donenfeld1-1/+1 2014-04-24Makefile: osx/bsd does not support -DJason A. Donenfeld2-25/+25 2014-04-24show: error out if password store is empty.Jason A. Donenfeld1-1/+4 2014-04-24find: proper segmenting of terms1.6Jason A. Donenfeld1-3/+3 2014-04-24dmenu: hide outputJason A. Donenfeld1-1/+1 2014-04-24tests: test for spacesJason A. Donenfeld3-8/+20 2014-04-24Move test instructions to INSTALL.Jason A. Donenfeld2-11/+18 2014-04-24tests: we don't use aggregate-resultsJason A. Donenfeld1-57/+0 2014-04-24Don't prompt for questions when stdin is not a tty.Jason A. Donenfeld3-7/+6 2014-04-24Allow overridable bash.Jason A. Donenfeld16-16/+16 2014-04-24dmenu: check for empty instead of ret codeJason A. Donenfeld1-1/+1 2014-04-24tests: sed doesn't like escaped chars on non-gnuJason A. Donenfeld1-1/+1 2014-04-24tests: run from anywhereJason A. Donenfeld13-4/+16 2014-04-24Turns out aliases were a bad idea.Jason A. Donenfeld14-95/+92 2014-04-24Make gpg_opts an array.Jason A. Donenfeld1-12/+12 2014-04-24Shellcheck errors.Jason A. Donenfeld1-6/+6 2014-04-24tests: todo updateJason A. Donenfeld1-25/+0