func NewProxyHTTP(l webfw.Logger, urlTemplate string) (ProxyHTTP, error) { l.Infof("URL Template: %s\n", urlTemplate) t, err := template.New("proxy-http-url-template").Parse(urlTemplate) if err != nil { return ProxyHTTP{}, err } return ProxyHTTP{logger: l, urlTemplate: t}, nil }
func insertThumbnailTarget(d *goquery.Document, thumbnailLink string, logger webfw.Logger) bool { changed := false if d.Find(".top-image").Length() > 0 { return changed } thumbDoc, err := goquery.NewDocumentFromReader(strings.NewReader(fmt.Sprintf(`<img src="%s">`, thumbnailLink))) if err != nil { logger.Infof("Error generating thumbnail image node: %v\n", err) return changed } d.Find("body").PrependSelection(thumbDoc.Find("img")) changed = true return changed }
func updateArticle(a content.Article, tx *sqlx.Tx, db *db.DB, logger webfw.Logger) { if a.HasErr() { return } if err := a.Validate(); err != nil { a.Err(err) return } logger.Infof("Updating article %s\n", a) d := a.Data() s := db.SQL() stmt, err := tx.Preparex(s.Article.Update) if err != nil { a.Err(err) return } defer stmt.Close() res, err := stmt.Exec(d.Title, d.Description, d.Date, d.Guid, d.Link, d.FeedId) if err != nil { a.Err(err) return } if num, err := res.RowsAffected(); err != nil && err == sql.ErrNoRows || num == 0 { logger.Infof("Creating article %s\n", a) aId, err := db.CreateWithId(tx, s.Article.Create, d.FeedId, d.Link, d.Guid, d.Title, d.Description, d.Date) if err != nil { a.Err(fmt.Errorf("Error updating article %s (guid - %v, link - %s): %v", a, d.Guid, d.Link, err)) return } d.Id = data.ArticleId(aId) d.IsNew = true a.Data(d) } }