aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go15
1 files changed, 12 insertions, 3 deletions
diff --git a/main.go b/main.go
index 749ba1a..1a0be52 100644
--- a/main.go
+++ b/main.go
@@ -54,6 +54,7 @@ var (
outputPath, programNumber string
errBadEpisode = fmt.Errorf("bad episode")
+ errCantParse = fmt.Errorf("could not parse page")
)
func main() {
@@ -194,11 +195,19 @@ func describeEpisodes(feed *feeds.Feed) {
func describeEpisode(item *feeds.Item, wg *sync.WaitGroup) {
defer wg.Done()
page := getPage(item.Link.Href)
- item.Description = processEpisodeDesc(page)
+ desc, err := processEpisodeDesc(page)
+ if err != nil {
+ log.Printf("could not find episode description on page %v: %v", item.Link.Href, err)
+ }
+ item.Description = desc
}
-func processEpisodeDesc(page []byte) string {
- return string(episodeDescRe.FindSubmatch(page)[1])
+func processEpisodeDesc(page []byte) (string, error) {
+ matches := episodeDescRe.FindSubmatch(page)
+ if len(matches) < 2 {
+ return "", errCantParse
+ }
+ return string(matches[1]), nil
}
func getPage(pageUrl string) []byte {