@@ -133,6 +133,9 @@ func (h Handler) check() error {
133133func (h Handler ) sendText (subscriber int64 , text string , sendOptions * telebot.SendOptions ) error {
134134 _ , err := h .Bot .Send (telebot .ChatID (subscriber ), text , sendOptions )
135135
136+ var telebotError * telebot.Error
137+ var floodError * telebot.FloodError
138+
136139 if err != nil {
137140 if errors .Is (err , telebot .ErrChatNotFound ) {
138141 log .Printf ("Chat %d not found, will be deleted" , subscriber )
@@ -143,11 +146,16 @@ func (h Handler) sendText(subscriber int64, text string, sendOptions *telebot.Se
143146 h .DB .Subscribers .Delete (subscriber )
144147 h .DB .Subscribers .Create (migratedTo )
145148 return h .sendText (migratedTo , text , sendOptions )
146- } else if errors .As (err , & telebot. FloodError {} ) {
147- retryAfter := err .(telebot. FloodError ) .RetryAfter
149+ } else if errors .As (err , floodError ) {
150+ retryAfter := floodError .RetryAfter
148151 log .Printf ("%d: Flood error, retrying after: %d seconds" , subscriber , retryAfter )
149152 time .Sleep (time .Duration (retryAfter ) * time .Second )
150153 h .sendText (subscriber , text , sendOptions )
154+ } else if errors .As (err , & telebotError ) {
155+ if telebotError .Code == 403 {
156+ log .Printf ("%d: %s, will be removed" , subscriber , telebotError .Description )
157+ h .DB .Subscribers .Delete (subscriber )
158+ }
151159 } else {
152160 return err
153161 }
0 commit comments