rssd/cmd/debug/main.go
2026-05-03 20:30:37 -04:00

65 lines
1.3 KiB
Go

package main
import (
"fmt"
"io"
"net/http"
"os"
"time"
"github.com/mmcdole/gofeed"
)
func main() {
client := &http.Client{Timeout: 60 * time.Second}
resp, err := client.Get("https://feeds.transistor.fm/oxide-and-friends")
if err != nil {
fmt.Fprintf(os.Stderr, "Error fetching: %v\n", err)
os.Exit(1)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error reading body: %v\n", err)
os.Exit(1)
}
parser := gofeed.NewParser()
feed, err := parser.ParseString(string(body))
if err != nil {
fmt.Fprintf(os.Stderr, "Error parsing feed: %v\n", err)
os.Exit(1)
}
fmt.Printf("Feed title: %s\n", feed.Title)
fmt.Printf("Total items: %d\n\n", len(feed.Items))
for i, item := range feed.Items {
if i >= 5 {
break
}
fmt.Printf("--- Item %d ---\n", i+1)
fmt.Printf(" Title: %s\n", item.Title)
fmt.Printf(" Published (raw): %s\n", item.Published)
if item.PublishedParsed != nil {
fmt.Printf(" PublishedParsed: %v\n", *item.PublishedParsed)
} else {
fmt.Printf(" PublishedParsed: <nil>\n")
}
// Check for itunes:pubDate or other date fields
for _, enc := range item.Enclosures {
fmt.Printf(" Enclosure URL (truncated): %s...\n", enc.URL[:min(len(enc.URL), 80)])
}
fmt.Println()
}
}
func min(a, b int) int {
if a < b {
return a
}
return b
}