}
if err != nil {
- return err
+ return fmt.Errorf("close due WhatsApp batches: %w", err)
}
batches := i.state.Closed()
err = i.state.Remove(batch.Number)
if err != nil {
- return err
+ return fmt.Errorf("remove delivered WhatsApp batch: %w", err)
}
if batch.Turn() {
})
}
+// caughtUpBy ends the catch-up of the connection with the number catchups, when
+// no later connection started a new one.
+func (i *WhatsAppInbox) caughtUpBy(catchups int) {
+ i.mutex.Lock()
+ defer i.mutex.Unlock()
+
+ if i.catchups == catchups {
+ i.finishCatchup()
+ }
+}
+
+// finishCatchup ends a running catch-up and wakes Run, which logs all batches.
+// The caller holds the mutex.
+func (i *WhatsAppInbox) finishCatchup() {
+ if !i.catchingUp {
+ return
+ }
+
+ i.catchingUp = false
+ i.caughtUp = true
+ if i.catchupTimer != nil {
+ i.catchupTimer.Stop()
+ }
+
+ select {
+ case i.wake <- struct{}{}:
+ default:
+ }
+}
+
// receive stores images and transcribed voice notes before their batches and
// wakes Run. link gives the device and the own IDs. It returns false when the
// state file cannot hold the message, so that the library does not acknowledge
return imageText([]string{name}, caption)
}
-// caughtUpBy ends the catch-up of the connection with the number catchups, when
-// no later connection started a new one.
-func (i *WhatsAppInbox) caughtUpBy(catchups int) {
- i.mutex.Lock()
- defer i.mutex.Unlock()
-
- if i.catchups == catchups {
- i.finishCatchup()
- }
-}
-
-// finishCatchup ends a running catch-up and wakes Run, which logs all batches.
-// The caller holds the mutex.
-func (i *WhatsAppInbox) finishCatchup() {
- if !i.catchingUp {
- return
- }
-
- i.catchingUp = false
- i.caughtUp = true
- if i.catchupTimer != nil {
- i.catchupTimer.Stop()
- }
-
- select {
- case i.wake <- struct{}{}:
- default:
- }
-}
-
// endCatchup ends a running catch-up at OfflineSyncCompleted.
func (i *WhatsAppInbox) endCatchup() {
i.mutex.Lock()