diff --git a/fetch/fetch.go b/fetch/fetch.go deleted file mode 100644 index 655a91e..0000000 --- a/fetch/fetch.go +++ /dev/null @@ -1,40 +0,0 @@ -package fetch - -import ( - "io/ioutil" - "net/http" -) - -type Fetch struct { - process func(string, []byte) error - client *http.Client - port string -} - -func New(port string, process func(string, []byte) error) (*Fetch, error) { - return &Fetch{ - process: process, - client: &http.Client{}, - port: port, - }, nil -} - -func (fetcher *Fetch) FetchProcess(url string) error { - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return err - } - resp, err := fetcher.client.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - b, err := ioutil.ReadAll(resp.Body) - if err != nil { - return err - } - if err := fetcher.process(url, b); err != nil { - return err - } - return nil -} diff --git a/fetch/fetch_test.go b/fetch/fetch_test.go deleted file mode 100644 index 553fad1..0000000 --- a/fetch/fetch_test.go +++ /dev/null @@ -1,47 +0,0 @@ -package fetch - -import ( - "errors" - "net/http" - "net/http/httptest" - "testing" -) - -const testfport = ":13153" - -func Test_Fetch(t *testing.T) { - s := mockRemote() - defer s.Close() - cases := []struct { - process func(string, []byte) error - err error - }{ - { - process: func(string, []byte) error { - return nil - }, - err: nil, - }, - { - process: func(string, []byte) error { - return errors.New("that one") - }, - err: errors.New("that one"), - }, - } - for _, c := range cases { - f, err := New(testfport, c.process) - if err != nil && err != c.err { - t.Errorf("cannot create new fetcher: %v", err) - } else if err == nil { - if err := f.FetchProcess(s.URL); err != nil && err.Error() != c.err.Error() { - t.Errorf("unexpected error: %v, expected %v", err, c.err) - } - } - } -} - -func mockRemote() *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - })) -} diff --git a/main.go b/main.go index 3d661f8..98d5677 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,6 @@ package main import ( "local1/logger" "local3/rssmon2/config" - "local3/rssmon2/fetch" "local3/rssmon2/monitor" "local3/rssmon2/rss" "local3/rssmon2/server" @@ -24,51 +23,38 @@ func main() { // need to load old from file allFeeds := make(map[string]*rss.Feed) - fetcher, err := fetch.New( - config.FetchPort, - func(url string, raw []byte) error { - var err error - var items []*rss.Item - feed, ok := allFeeds[url] - if !ok { - feed, items, err = rss.New(url, "Blue", "") - if err != nil { - return err - } - } else { - items, err = allFeeds[url].Update() - if err != nil { - return err - } - } - b, err := feed.Serialize() - if err != nil { - return err - } - if err := sclient.Set(nsForFeeds, feed.ID(), b); err != nil { - return err - } - logger.Log("Saved feed", feed) - for i := range items { - b, err := items[i].Serialize() - if err != nil { - return err - } - if err := sclient.Set(feed.ID(), items[i].ID(), b); err != nil { - return err - } - logger.Log("Saved feed item", feed.ID(), items[i].ID(), items[i]) - } - return nil - }, - ) - if err != nil { - panic(err) - } - mon, err := monitor.New(config.MonitorPort, func(url string) { - if err := fetcher.FetchProcess(url); err != nil { - logger.Logf("error fetching %q: %v", url, err) + var err error + var items []*rss.Item + feed, ok := allFeeds[url] + if !ok { + feed, items, err = rss.New(url, "Blue", "") + if err != nil { + return + } + } else { + items, err = allFeeds[url].Update() + if err != nil { + return + } + } + b, err := feed.Serialize() + if err != nil { + return + } + if err := sclient.Set(nsForFeeds, feed.ID(), b); err != nil { + return + } + logger.Log("Saved feed", feed) + for i := range items { + b, err := items[i].Serialize() + if err != nil { + return + } + if err := sclient.Set(feed.ID(), items[i].ID(), b); err != nil { + return + } + logger.Log("Saved feed item", feed.ID(), items[i].ID(), items[i]) } }) if err != nil {