aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--internal/feed/mail.go40
1 files changed, 27 insertions, 13 deletions
diff --git a/internal/feed/mail.go b/internal/feed/mail.go
index 2b0cdf7..5e308e2 100644
--- a/internal/feed/mail.go
+++ b/internal/feed/mail.go
@@ -7,6 +7,7 @@ import (
"io"
"io/ioutil"
"mime"
+ "net/url"
"path"
"strings"
"time"
@@ -191,22 +192,16 @@ func (feed *Feed) Messages() (msg.Messages, error) {
return mails, nil
}
-func getImage(src string) ([]byte, string) {
- if strings.HasPrefix(src, "//") {
- src = "https:" + src
- }
-
+func getImage(src string) ([]byte, string, error) {
resp, err := stdHTTPClient.Get(src)
if err != nil {
- log.Errorf("Error fetching from '%s': %s", src, err)
- return nil, ""
+ return nil, "", fmt.Errorf("fetching from '%s': %w", src, err)
}
defer resp.Body.Close()
img, err := ioutil.ReadAll(resp.Body)
if err != nil {
- log.Errorf("Error reading body from '%s': %s", src, err)
- return nil, ""
+ return nil, "", fmt.Errorf("reading from '%s': %w", src, err)
}
var mimeStr string
@@ -216,7 +211,7 @@ func getImage(src string) ([]byte, string) {
} else {
mimeStr = mime.TypeByExtension(ext)
}
- return img, mimeStr
+ return img, mimeStr, nil
}
func cidNr(idx int) string {
@@ -243,6 +238,11 @@ func getBody(content, description string, bodyCfg config.Body) string {
func (item *item) buildBody() {
feed := item.feed
+ feedUrl, err := url.Parse(feed.Url)
+ if err != nil {
+ panic(fmt.Sprintf("URL '%s' of feed '%s' is not a valid URL. How have we ended up here?", feed.Url, feed.Name))
+ }
+
body := getBody(item.Item.Content, item.Item.Description, feed.Body)
if !feed.InclImages {
@@ -252,7 +252,7 @@ func (item *item) buildBody() {
doc, err := goquery.NewDocumentFromReader(strings.NewReader(body))
if err != nil {
- log.Debugf("Feed %s: Error while parsing html content: %s", feed.Name, err)
+ log.Errorf("Feed %s: Item %s: Error while parsing html content: %s", feed.Name, item.Item.Link, err)
if body != "" {
item.Body = "<br />" + body
}
@@ -269,7 +269,20 @@ func (item *item) buildBody() {
return
}
- img, mime := getImage(src)
+ srcUrl,err := url.Parse(src)
+ if err != nil {
+ log.Errorf("Feed %s: Item %s: Error parsing URL '%s' embedded in item: %s",
+ feed.Name, item.Item.Link, src, err)
+ return
+ }
+ imgUrl := feedUrl.ResolveReference(srcUrl)
+
+ img, mime, err := getImage(imgUrl.String())
+ if err != nil {
+ log.Errorf("Feed %s: Item %s: Error fetching image: %s",
+ feed.Name, item.Item.Link, err)
+ return
+ }
if img == nil {
return
}
@@ -289,7 +302,8 @@ func (item *item) buildBody() {
html, err := doc.Find("body").Html()
if err != nil {
item.clearImages()
- log.Errorf("Error during rendering HTML, skipping.")
+ log.Errorf("Feed %s: Item %s: Error during rendering HTML: %s",
+ feed.Name, item.Item.Link, err)
} else {
body = html
}
ass='insertions'>+1 2014-05-27Update for new URL.Jason A. Donenfeld3-3/+3 2014-05-14Bump version1.6.2Jason A. Donenfeld1-1/+1 2014-05-14Don't define tmpdir on git init.Jason A. Donenfeld1-4/+3 2014-05-14Disable secmem warning when discovering keysmilki2-2/+2 2014-05-10edit: Quote editor so tests work in spaced directories.Jason A. Donenfeld1-1/+1 2014-05-10reencryption: Properly escape input to sedJason A. Donenfeld1-1/+1 2014-05-10git: use secure tmp directoryJason A. Donenfeld1-4/+11 2014-05-10configure git to decrypt gpg files automaticallySamuel Le Thiec1-0/+5 2014-05-08completion: add new generate flagsJason A. Donenfeld3-2/+7 2014-05-08inplace: mutually exclusive with forceJason A. Donenfeld2-3/+3 2014-05-08usage: tab to spacesJason A. Donenfeld1-1/+1 2014-05-08generate: use nice ansi colors instead.Jason A. Donenfeld1-3/+2 2014-05-08zsh: posix compatible sed fix for zsh-completionJason A. Donenfeld1-1/+1 2014-05-07Implement interactive init functionSvend Sorensen1-0/+8 2014-05-07Implement interactive rename functionSvend Sorensen1-0/+7 2014-05-07Reorder interactive function to match order of helper functionsSvend Sorensen1-13/+13 2014-05-07Make edit helper function name consistent with other helpersSvend Sorensen1-1/+1 2014-05-07Factor out password completing-read functionSvend Sorensen1-4/+8 2014-05-07Add dash to Package-RequiresSvend Sorensen1-1/+1 2014-05-06Force sane sort order.Jason A. Donenfeld1-2/+2 2014-05-06generate: add --in-place optionJason A. Donenfeld4-9/+33