diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 28 |
1 files changed, 18 insertions, 10 deletions
@@ -86,7 +86,7 @@ type Donk struct { // - it contains a `#notg` tag. // - it is empty func (h *Honk) Check() error { - log.Print("checking honk #", h.ID) + log.Print("checking honk #", h.ID) // info if h.Date.Before(now) { return fmt.Errorf("honk #%d is old", h.ID) } @@ -146,8 +146,6 @@ const ( honkEdit ) -const emptyNoise = "<p></p>\n" - // A Mess holds data for a message to be sent to Telegram. type Mess struct { Text string `json:"text"` @@ -362,6 +360,8 @@ var ( reBqTags = regexp.MustCompile(`<blockquote>(.*)<\/blockquote>`) ) +const emptyNoise = "<p></p>\n" + // calmNoise erases htm tags that are not supported by Telegram. func calmNoise(noise string) string { // TODO: check length of a honk @@ -394,11 +394,11 @@ func init() { err := config.Check() if err != nil { - log.Fatal("config:", err) + log.Fatal("config:", err) // fail } err = checkTgAPI() if err != nil { - log.Fatal(err) + log.Fatal(err) // fail } } @@ -407,12 +407,20 @@ var honkMap = make(map[string]honkInfo) // FIXME: not safe for use by multiple g var now = time.Now() func main() { + var retry = 5 for { honks, err := getHonks(0) if err != nil { - log.Fatal("gethonks:", err) + log.Print("gethonks:", err) // error + retry-- + if retry == 0 { + log.Fatal("gethonks: giving up") // fail + } + time.Sleep(5 * time.Second) + continue } + HonkLoop: for _, honk := range honks { action := honk.Decide() @@ -422,7 +430,7 @@ func main() { case honkSend, honkEdit: err := honk.Check() if err != nil { - log.Print(err) + log.Print(err) // error continue } } @@ -430,8 +438,8 @@ func main() { // messes[0] is a honk or a donk to be sent resp, err := messes[0].Send() if err != nil { - log.Print(err) - honk.forget() // retry + log.Print(err) // error + honk.forget() // retry continue } // remember only the first mess' response @@ -439,7 +447,7 @@ func main() { for _, mess := range messes[1:] { _, err := mess.Send() if err != nil { - log.Print(err) + log.Print(err) // error continue HonkLoop } } |
