2 Commits
v0.0 ... v0.2

Author SHA1 Message Date
bel
21d5bad2a5 fix leveldb problems
Former-commit-id: f17fe73babf8910a2031323ffb2a28979082a4dd
2019-06-22 17:06:50 -06:00
bel
9faa727261 clarify logs and gitignore and skipping vendor from now on
Former-commit-id: c8b61b58379d768f04e1593c2a77cf429407cf62
2019-06-22 16:34:34 -06:00
12 changed files with 33 additions and 20 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
rssmon3
exec-rssmon3
**.sw*
**testdata

View File

@@ -26,7 +26,7 @@ func (h *Handler) Run() error {
case j := <-h.Jobs:
go func(key string) {
if err := h.Job(key); err != nil {
log.Println(err)
log.Println("[h.Run]", err)
}
}(j.Key)
}

View File

@@ -20,7 +20,7 @@ func main() {
if err := config.New(); err != nil {
panic(err)
}
log.Println(config.Values())
log.Println("[main]", config.Values())
m, err := monitor.New()
if err != nil {
@@ -50,7 +50,7 @@ func main() {
func InterruptAfter(foo func() error, c chan os.Signal) {
if err := foo(); err != nil {
log.Println(err)
log.Println("[InterruptAfter]", err)
}
c <- syscall.SIGINT
}

View File

@@ -51,7 +51,7 @@ func (i *Item) Compare(other queue.Item) int {
func (i *Item) Interval() time.Duration {
t, err := i.getInterval()
if err != nil {
log.Println(err)
log.Println("[Interval]", err)
return forever
}
return t
@@ -81,14 +81,14 @@ func (i *Item) setInterval(t time.Duration) error {
func (i *Item) Last() time.Time {
t, err := i.getLast()
if err != nil {
log.Println(err)
log.Println("[Last]", err)
}
return t
}
func (i *Item) Mark() {
if err := i.setLast(time.Now()); err != nil {
log.Println(err)
log.Println("[Mark]", err)
}
}

View File

@@ -53,7 +53,7 @@ func (m *Monitor) triggered() <-chan time.Time {
return nil
}
block := time.Until(top.Last().Add(top.Interval()))
log.Printf("blocking %v until next task", block)
log.Printf("[triggered] blocking %v until next task", block)
return time.After(time.Until(top.Last().Add(top.Interval())))
}

View File

@@ -1,7 +1,9 @@
package monitor
import (
"fmt"
"local/rssmon3/config"
"local/storage"
"log"
"github.com/golang-collections/go-datastructures/queue"
@@ -17,13 +19,15 @@ func newQueue() (*Queue, error) {
q := queue.NewPriorityQueue(1)
db := config.Values().DB
keys, err := db.List([]string{nsQueued})
if err != nil {
if err == storage.ErrNotFound {
keys = []string{}
} else if err != nil {
return nil, err
}
for _, key := range keys {
b, err := db.Get(key, nsQueued)
if err != nil {
return nil, err
return nil, fmt.Errorf("failed to get %s:%s: %v", nsQueued, key, err)
}
i := &Item{}
if err := i.Decode(b); err != nil {
@@ -43,11 +47,11 @@ func (q *Queue) Push(i *Item) {
q.queue.Put(i)
b, err := i.Encode()
if err != nil {
log.Println(err)
log.Println("[Push]", err)
return
}
if err := config.Values().DB.Set(i.Key, b, nsQueued); err != nil {
log.Println(err)
log.Println("[Push]", err)
return
}
}

View File

@@ -74,20 +74,20 @@ func (f *Feed) Pull() error {
for _, i := range gofeed.Items {
item, err := newItem(i, f.ContentFilter)
if err != nil {
log.Println(err)
log.Println("[Pull]", err)
continue
}
itemTSs = append(itemTSs, &item.TS)
if item.TS.Before(f.Updated) {
log.Println("Skipping old item")
log.Println("[Pull]", "Skipping old item")
continue
}
if ok := regexp.MustCompile(f.TitleFilter).MatchString(item.Title); !ok {
log.Println("Skipping bad titled item")
log.Println("[Pull]", "Skipping bad titled item")
continue
}
if err := item.save(f.Key); err != nil {
log.Println(err)
log.Println("[Pull]", err)
continue
}
}

View File

@@ -24,7 +24,7 @@ func (rss *RSS) Run() error {
return nil
case i := <-rss.items:
if err := rss.update(i); err != nil {
log.Println(err)
log.Println("[rss.Run]", err)
}
}
}

View File

@@ -1 +0,0 @@
49c1645f536cea7463202894e751295a3ec589f1

View File

@@ -35,13 +35,13 @@ func (s *Server) notFound(w http.ResponseWriter, r *http.Request) {
func (s *Server) userError(w http.ResponseWriter, r *http.Request, err error) {
status := http.StatusBadRequest
log.Printf("%d: %v", status, err)
log.Printf("[userError] %d: %v", status, err)
w.WriteHeader(status)
}
func (s *Server) error(w http.ResponseWriter, r *http.Request, err error) {
status := http.StatusInternalServerError
log.Printf("%d: %v", status, err)
log.Printf("[error] %d: %v", status, err)
w.WriteHeader(status)
}

2
testdata/2add vendored
View File

@@ -38,7 +38,7 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCs-w7E2HZWwXmjt9RTvBB_A
https://roosterteeth.com/show/rt-podcast/feed/mp3 podcast ".*" ".*" "6h"
'
feedsB="$(printf "%s\n" "$feeds" | grep -v '^$' | tail -n 1)"
#feeds="$feedsB"
feeds="$feedsB"
defaultIF='""'
defaultCF='"<img.*?/(img)?>"'

6
vendor/vendor.json vendored Normal file
View File

@@ -0,0 +1,6 @@
{
"comment": "",
"ignore": "test",
"package": [],
"rootPath": "local/rssmon3"
}