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) {
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
28
main.go
28
main.go
|
|
@ -3,7 +3,6 @@ package main
|
||||||
import (
|
import (
|
||||||
"local1/logger"
|
"local1/logger"
|
||||||
"local3/rssmon2/config"
|
"local3/rssmon2/config"
|
||||||
"local3/rssmon2/fetch"
|
|
||||||
"local3/rssmon2/monitor"
|
"local3/rssmon2/monitor"
|
||||||
"local3/rssmon2/rss"
|
"local3/rssmon2/rss"
|
||||||
"local3/rssmon2/server"
|
"local3/rssmon2/server"
|
||||||
|
|
@ -24,52 +23,39 @@ func main() {
|
||||||
|
|
||||||
// need to load old from file
|
// need to load old from file
|
||||||
allFeeds := make(map[string]*rss.Feed)
|
allFeeds := make(map[string]*rss.Feed)
|
||||||
fetcher, err := fetch.New(
|
mon, err := monitor.New(config.MonitorPort, func(url string) {
|
||||||
config.FetchPort,
|
|
||||||
func(url string, raw []byte) error {
|
|
||||||
var err error
|
var err error
|
||||||
var items []*rss.Item
|
var items []*rss.Item
|
||||||
feed, ok := allFeeds[url]
|
feed, ok := allFeeds[url]
|
||||||
if !ok {
|
if !ok {
|
||||||
feed, items, err = rss.New(url, "Blue", "<img.*?/(img)?>")
|
feed, items, err = rss.New(url, "Blue", "<img.*?/(img)?>")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
items, err = allFeeds[url].Update()
|
items, err = allFeeds[url].Update()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b, err := feed.Serialize()
|
b, err := feed.Serialize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return
|
||||||
}
|
}
|
||||||
if err := sclient.Set(nsForFeeds, feed.ID(), b); err != nil {
|
if err := sclient.Set(nsForFeeds, feed.ID(), b); err != nil {
|
||||||
return err
|
return
|
||||||
}
|
}
|
||||||
logger.Log("Saved feed", feed)
|
logger.Log("Saved feed", feed)
|
||||||
for i := range items {
|
for i := range items {
|
||||||
b, err := items[i].Serialize()
|
b, err := items[i].Serialize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return
|
||||||
}
|
}
|
||||||
if err := sclient.Set(feed.ID(), items[i].ID(), b); err != nil {
|
if err := sclient.Set(feed.ID(), items[i].ID(), b); err != nil {
|
||||||
return err
|
return
|
||||||
}
|
}
|
||||||
logger.Log("Saved feed item", feed.ID(), items[i].ID(), items[i])
|
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)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue