zulip-bots: Use context manager for incrementor.
This commit is contained in:
parent
86fa9f5e35
commit
b8389b78c1
|
@ -1,7 +1,7 @@
|
||||||
# See readme.md for instructions on running this code.
|
# See readme.md for instructions on running this code.
|
||||||
|
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from zulip_bots.lib import BotHandler
|
from zulip_bots.lib import BotHandler, use_storage
|
||||||
|
|
||||||
class IncrementorHandler:
|
class IncrementorHandler:
|
||||||
META = {
|
META = {
|
||||||
|
@ -24,28 +24,28 @@ class IncrementorHandler:
|
||||||
storage.put('message_id', None)
|
storage.put('message_id', None)
|
||||||
|
|
||||||
def handle_message(self, message: Dict[str, str], bot_handler: BotHandler) -> None:
|
def handle_message(self, message: Dict[str, str], bot_handler: BotHandler) -> None:
|
||||||
storage = bot_handler.storage
|
with use_storage(bot_handler.storage, ['number']) as storage:
|
||||||
num = storage.get('number')
|
num = storage.get("number")
|
||||||
|
|
||||||
# num should already be an int, but we do `int()` to force an
|
# num should already be an int, but we do `int()` to force an
|
||||||
# explicit type check
|
# explicit type check
|
||||||
num = int(num) + 1
|
num = int(num) + 1
|
||||||
|
|
||||||
storage.put('number', num)
|
storage.put('number', num)
|
||||||
if storage.get('message_id') is not None:
|
if storage.get('message_id') is not None:
|
||||||
result = bot_handler.update_message(dict(
|
result = bot_handler.update_message(dict(
|
||||||
message_id=storage.get('message_id'),
|
message_id=storage.get('message_id'),
|
||||||
content=str(num)
|
content=str(num)
|
||||||
))
|
))
|
||||||
|
|
||||||
# When there isn't an error while updating the message, we won't
|
# When there isn't an error while updating the message, we won't
|
||||||
# attempt to send the it again.
|
# attempt to send the it again.
|
||||||
if result is None or result.get('result') != 'error':
|
if result is None or result.get('result') != 'error':
|
||||||
return
|
return
|
||||||
|
|
||||||
message_info = bot_handler.send_reply(message, str(num))
|
message_info = bot_handler.send_reply(message, str(num))
|
||||||
if message_info is not None:
|
if message_info is not None:
|
||||||
storage.put('message_id', message_info['id'])
|
storage.put('message_id', message_info['id'])
|
||||||
|
|
||||||
|
|
||||||
handler_class = IncrementorHandler
|
handler_class = IncrementorHandler
|
||||||
|
|
Loading…
Reference in a new issue