star-39 / moe-sticker-bot

A Telegram bot that imports LINE/kakao stickers or creates/manages new sticker set.
GNU General Public License v3.0
272 stars 31 forks source link

Avoid triggering flood control #1

Closed star-39 closed 2 years ago

star-39 commented 3 years ago
No error handlers are registered, logging exception.
Traceback (most recent call last):
  File "main.py", line 143, in do_auto_import_line_sticker
    _.bot.add_sticker_to_set(user_id=update.message.from_user.id,
  File "/usr/local/lib/python3.8/site-packages/telegram/bot.py", line 127, in decorator
    result = func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/telegram/bot.py", line 4464, in add_sticker_to_set
    result = self._post('addStickerToSet', data, timeout=timeout, api_kwargs=api_kwargs)
  File "/usr/local/lib/python3.8/site-packages/telegram/bot.py", line 259, in _post
    return self.request.post(
  File "/usr/local/lib/python3.8/site-packages/telegram/utils/request.py", line 347, in post
    result = self._request_wrapper('POST', url, fields=data, **urlopen_kwargs)
  File "/usr/local/lib/python3.8/site-packages/telegram/utils/request.py", line 265, in _request_wrapper
    message = str(self._parse(resp.data))
  File "/usr/local/lib/python3.8/site-packages/telegram/utils/request.py", line 223, in _parse
    raise RetryAfter(retry_after)
telegram.error.RetryAfter: Flood control exceeded. Retry in 10.0 seconds
star-39 commented 3 years ago

WIP, https://github.com/star-39/moe-sticker-bot/commit/621787ff701eeff4f5a4c070b4d15fbb55b4c5c4 https://github.com/star-39/moe-sticker-bot/commit/f1b7dcd78b55e7d41feaa2af5b6ef6d3233609f0 https://github.com/star-39/moe-sticker-bot/commit/020a2ab8a97f567129ee963dfe2892fc3a00828c https://github.com/star-39/moe-sticker-bot/commit/b95488ed2dce36ed942942c9d9dc0a58df93aeef

star-39 commented 3 years ago

Fixed https://github.com/star-39/moe-sticker-bot/commit/1496cada776a31c3907dc4a2c56a38dc63b04235

retry_after is a scam, addStickerToSet actually succeed even error returned. Add a step to check the set's actual status.