summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--feed/feed.go3
-rw-r--r--feed/feed_test.go20
-rw-r--r--schema/schema.go11
3 files changed, 26 insertions, 8 deletions
diff --git a/feed/feed.go b/feed/feed.go
index 7becc17..75143c5 100644
--- a/feed/feed.go
+++ b/feed/feed.go
@@ -342,6 +342,9 @@ func youtubeUnmarshal(bs []byte) ([]schema.Entry, error) {
PubTime: t,
Link: e.Link.Url,
}
+ if strings.Contains(e.Link.Url, "shorts") {
+ entry.ShortMedia = true
+ }
entries = append(entries, entry)
}
return entries, nil
diff --git a/feed/feed_test.go b/feed/feed_test.go
index 545d3bd..1057ffa 100644
--- a/feed/feed_test.go
+++ b/feed/feed_test.go
@@ -56,13 +56,19 @@ func TestUnmarshal(t *testing.T) {
"podcast": "testdata/pc-daringfireball.xml",
"youtube": "testdata/yt-mkbhd.xml",
}
- for schema, feed := range testFeeds {
- bs, err := file.ReadFile(feed)
+ for schema, feedUrl := range testFeeds {
+ var (
+ bs []byte
+ err error
+ feed *Feed
+ hasMedia bool
+ )
+ bs, err = file.ReadFile(feedUrl)
if err != nil {
t.Errorf("read feed: %v", err)
return
}
- feed := new(Feed)
+ feed = new(Feed)
feed.Schema = schema
if err = feed.unmarshal(bs); err != nil {
t.Errorf("feed unmarshal: %v", err)
@@ -82,6 +88,11 @@ func TestUnmarshal(t *testing.T) {
t.Errorf("entry desc: %v", entry.Desc)
return
}
+ if slices.Contains([]string{"youtube"}, feed.Schema) {
+ if entry.ShortMedia {
+ hasMedia = true
+ }
+ }
if entry.PubTime.Unix() < 994702392 {
t.Errorf("entry time: %v", entry.PubTime)
return
@@ -92,5 +103,8 @@ func TestUnmarshal(t *testing.T) {
return
}
}
+ if slices.Contains([]string{"youtube"}, feed.Schema) && !hasMedia {
+ t.Errorf("feed has no media entries")
+ }
}
}
diff --git a/schema/schema.go b/schema/schema.go
index e2efade..969ad70 100644
--- a/schema/schema.go
+++ b/schema/schema.go
@@ -11,11 +11,12 @@ import (
// Generic entry.
type Entry struct {
- Id string
- Title string
- Desc string
- PubTime time.Time
- Link string
+ Id string
+ Title string
+ Desc string
+ PubTime time.Time
+ Link string
+ ShortMedia bool
}
// Represents a NPR media link.