Remove unused fetcher
parent
653a209888
commit
772058abbc
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
76
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", "<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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue