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 {
|
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
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user