Implement skipping videos that we've already seen

This commit is contained in:
2025-04-13 17:22:44 +02:00
parent 91106bd391
commit 014e99751e

View File

@@ -74,9 +74,22 @@ func (w *RssWatcher) CheckFeed(videoUrls chan string) error {
} }
for _, entry := range feed.Entry { for _, entry := range feed.Entry {
uploaded, err := time.Parse(time.RFC3339, entry.Published)
if err != nil {
return fmt.Errorf("[%s]: failed to parse published date: %w", w.Feed.Id, err)
}
if uploaded.Before(w.Feed.LastSeen) {
log.Printf("[%s]: Skipping video titled %q because it was uploaded before %s", w.Feed.Id, entry.Title, w.Feed.LastSeen.Format(time.RFC3339))
continue
}
log.Printf("[%s]: Found new video titled %q with url %q", w.Feed.Id, entry.Title, entry.Link.Href) log.Printf("[%s]: Found new video titled %q with url %q", w.Feed.Id, entry.Title, entry.Link.Href)
videoUrls <- entry.Link.Href videoUrls <- entry.Link.Href
} }
err = w.Feed.WriteLastSeen(time.Now())
if err != nil {
return fmt.Errorf("[%s]: failed to write last seen: %w", w.Feed.Id, err)
}
w.Feed.LastSeen = time.Now()
return nil return nil
} }