Implement skipping videos that we've already seen
This commit is contained in:
@@ -74,9 +74,22 @@ func (w *RssWatcher) CheckFeed(videoUrls chan string) error {
|
||||
}
|
||||
|
||||
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)
|
||||
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
|
||||
}
|
||||
|
Reference in New Issue
Block a user