feeds.go: fixes
This commit is contained in:
parent
fa1fe08d7f
commit
3bc16b4c5b
7 changed files with 101 additions and 15 deletions
|
@ -2,6 +2,7 @@ package modules
|
|||
|
||||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
|
@ -19,8 +20,8 @@ func init() {
|
|||
}
|
||||
|
||||
func feedsRun() {
|
||||
time.Sleep(1 * time.Minute)
|
||||
file, err := os.Open(feedsFeeds)
|
||||
time.Sleep(15 * time.Second)
|
||||
file, err := os.Open(*feedsFeeds)
|
||||
if err != nil {
|
||||
xlog.Fatal(err.Error())
|
||||
}
|
||||
|
@ -38,12 +39,26 @@ func feedsHandleMessage(m *Message) {
|
|||
}
|
||||
|
||||
func feedsPoll(url string) {
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
xlog.Error(fmt.Sprintf("%v", err))
|
||||
}
|
||||
}()
|
||||
|
||||
last := time.Now()
|
||||
for {
|
||||
fp := gofeed.NewParser()
|
||||
feed, _ := fp.ParseURL(url)
|
||||
if feed.Items == nil {
|
||||
xlog.Error("Feed %s appears to lack any items", feed.Title)
|
||||
return
|
||||
}
|
||||
for _, item := range feed.Items {
|
||||
if item.UpdatedParsed.Unix() > last.Unix() {
|
||||
if item.PublishedParsed == nil {
|
||||
xlog.Error("Feed %s appears to lack timestamps", feed.Title)
|
||||
break
|
||||
}
|
||||
if item.PublishedParsed.Unix() > last.Unix() {
|
||||
SayCh <- fmt.Sprintf("%s\n[FEEDS] %s : %s - %s\n", *feedsChannel, feed.Title, item.Title, item.Link)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue