func StartCatcher(configSaveLocation string) Catcher {
	if !pogoutils.FileExists("downloads/") {
		pogoutils.CreateFolder("downloads")
	}
	catcher := Catcher{}
	_, er := os.Stat(configSaveLocation)
	if er == nil {
		contents, err := ioutil.ReadFile(configSaveLocation)
		if err == nil {
			json.Unmarshal(contents, &catcher)
			fmt.Println("Loaded from file")
		}
	} else {
		catcher.ConfigLocation = configSaveLocation
		catcher.RefreshInterval = time.Minute * 30
		catcher.SaveData()
	}
	catcher.RefreshInterval = time.Minute * 2
	catcher.addFeed = make(chan PodFeed)
	catcher.updatedPodcasts = make(chan []PodFeed)
	catcher.ticker = time.NewTicker(catcher.RefreshInterval)
	go catcher.Refresher()
	return catcher
}
Open a catcher from the given file (creating it if it doesn't exist) and start catching
podcasts
package catcher
import (
	"bytes"
	"encoding/json"
	"encoding/xml"
	"fmt"
	"github.com/programmingthomas/Pogo/pogoutils"
	"html/template"
	"io/ioutil"
	"net/http"
	"os"
	"path"
	"regexp"
	"strconv"
	"strings"
	"time"
)
type PodEpisode struct {
	URL                           string
	Description                   template.HTML
	ShouldDownloadIfNotDownloaded bool
	Title                         string
	Author                        string
	Summary                       string
	PubDate                       string
	Type                          string
	Length                        time.Duration
	Image                         string
}
type PodFeed struct {
	Name            string
	FeedURL         string
	Site            string
	LastRefreshed   time.Time
	Language        string
	PodcastEpisodes []PodEpisode
	Copyright       string
	Subtitle        string
	Description     string
	Summary         string
	Image           string
	Categories      []string
	ID              string
	Acronym         string
}
type Catcher struct {
	Podcasts        []PodFeed
	RefreshInterval time.Duration
	ConfigLocation  string
	addFeed         chan PodFeed
	ticker          *time.Ticker
	updatedPodcasts chan []PodFeed
}