aboutsummaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
authorla-ninpre <leobrekalini@gmail.com>2022-10-17 11:58:37 +0300
committerla-ninpre <leobrekalini@gmail.com>2022-10-17 13:20:34 +0300
commitca7eca93e8e9ff2f8f448b34de61471eae48fc70 (patch)
tree9173916cc586a2e8c4adaffe3b00eee180c34056 /main.go
parentd5fb0ba220b26f5bc0e7ff593c4be35a2cf65206 (diff)
downloadtelebonk-ca7eca93e8e9ff2f8f448b34de61471eae48fc70.tar.gz
telebonk-ca7eca93e8e9ff2f8f448b34de61471eae48fc70.zip
main: add a retry amount for getHonks
should fix #8. also add changelog.
Diffstat (limited to 'main.go')
-rw-r--r--main.go28
1 files changed, 18 insertions, 10 deletions
diff --git a/main.go b/main.go
index 1c0bd07..14fbcd4 100644
--- a/main.go
+++ b/main.go
@@ -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
}
}