diff options
| author | la-ninpre <leobrekalini@gmail.com> | 2022-10-17 11:58:37 +0300 |
|---|---|---|
| committer | la-ninpre <leobrekalini@gmail.com> | 2022-10-17 13:20:34 +0300 |
| commit | ca7eca93e8e9ff2f8f448b34de61471eae48fc70 (patch) | |
| tree | 9173916cc586a2e8c4adaffe3b00eee180c34056 | |
| parent | d5fb0ba220b26f5bc0e7ff593c4be35a2cf65206 (diff) | |
| download | telebonk-ca7eca93e8e9ff2f8f448b34de61471eae48fc70.tar.gz telebonk-ca7eca93e8e9ff2f8f448b34de61471eae48fc70.zip | |
main: add a retry amount for getHonks
should fix #8.
also add changelog.
| -rw-r--r-- | changelog.txt | 5 | ||||
| -rw-r--r-- | main.go | 28 |
2 files changed, 23 insertions, 10 deletions
diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..d92fc67 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,5 @@ +changelog + +=== next + ++ make gethonks retry 5 times before giving up
\ No newline at end of file @@ -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 } } |
