Remove unused fetcher

master
Bel LaPointe 2018-10-09 08:20:50 -06:00
parent 653a209888
commit 772058abbc
3 changed files with 31 additions and 132 deletions

View File

@ -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
}

View File

@ -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) {
}))
}

76
main.go
View File

@ -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", "<img.*?/(img)?>")
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", "<img.*?/(img)?>")
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 {