diff --git a/src/server/routes.go b/src/server/routes.go index f5f8620..985da91 100644 --- a/src/server/routes.go +++ b/src/server/routes.go @@ -471,7 +471,6 @@ func (s *Server) handleOPMLImport(c *router.Context) { } } - s.worker.FindFavicons() s.worker.RefreshFeeds() c.Out.WriteHeader(http.StatusOK) diff --git a/src/server/server.go b/src/server/server.go index e6a8ed4..d4b0dbb 100644 --- a/src/server/server.go +++ b/src/server/server.go @@ -49,7 +49,6 @@ func (h *Server) GetAddr() string { func (s *Server) Start() { refreshRate := s.db.GetSettings().RefreshRate - s.worker.FindFavicons() s.worker.StartFeedCleaner() s.worker.SetRefreshRate(refreshRate) if refreshRate > 0 { diff --git a/src/storage/feed.go b/src/storage/feed.go index 6d4d6a1..5705ec5 100644 --- a/src/storage/feed.go +++ b/src/storage/feed.go @@ -136,36 +136,6 @@ func (s *Storage) ListFeeds() []Feed { return result } -func (s *Storage) ListFeedsMissingIcons() []Feed { - result := make([]Feed, 0) - rows, err := s.db.Query(` - select id, folder_id, title, description, link, feed_link - from feeds - where icon is null - `) - if err != nil { - log.Print(err) - return result - } - for rows.Next() { - var f Feed - err = rows.Scan( - &f.Id, - &f.FolderId, - &f.Title, - &f.Description, - &f.Link, - &f.FeedLink, - ) - if err != nil { - log.Print(err) - return result - } - result = append(result, f) - } - return result -} - func (s *Storage) GetFeed(id int64) *Feed { var f Feed err := s.db.QueryRow(` diff --git a/src/worker/worker.go b/src/worker/worker.go index 284e456..355a72f 100644 --- a/src/worker/worker.go +++ b/src/worker/worker.go @@ -39,14 +39,6 @@ func (w *Worker) StartFeedCleaner() { }() } -func (w *Worker) FindFavicons() { - go func() { - for _, feed := range w.db.ListFeedsMissingIcons() { - w.FindFeedFavicon(feed) - } - }() -} - func (w *Worker) FindFeedFavicon(feed storage.Feed) { icon, err := findFavicon(feed.Link, feed.FeedLink) if err != nil { @@ -144,6 +136,9 @@ func (w *Worker) worker(srcqueue <-chan storage.Feed, dstqueue chan<- []storage. errMsg := err.Error() w.db.UpdateFeedState(feed.Id, storage.UpdateFeedStateParams{LastError: &errMsg}) } + if len(items) > 0 && !feed.HasIcon { + w.FindFeedFavicon(feed) + } dstqueue <- items } }