Add ubereats_next_execution

This commit is contained in:
AlberLC
2023-03-06 07:12:42 +01:00
parent 89207de059
commit f8be4d3e5e
3 changed files with 12 additions and 1 deletions

View File

@@ -274,7 +274,15 @@ class FlanaBot(Connect4Bot, PenaltyBot, PollBot, ScraperBot, UberEatsBot, Weathe
}):
chat = await self.get_chat(chat.id)
chat.pull_from_database(overwrite_fields=('_id', 'config', 'ubereats_cookies', 'ubereats_seconds'))
await self.start_ubereats(chat, send_code_now=False)
if (
not chat.ubereats_next_execution
or
(delta_time := chat.ubereats_next_execution - datetime.datetime.now(datetime.timezone.utc)) <= datetime.timedelta()
):
await self.start_ubereats(chat)
else:
# noinspection PyUnboundLocalVariable
await flanautils.do_later(delta_time, self.start_ubereats, chat)
@inline(False)
async def _on_recover_message(self, message: Message):

View File

@@ -148,6 +148,7 @@ class UberEatsBot(MultiBot, ABC):
await self.send(f'{warning_text} <code>{code}</code>', chat, silent=True)
chat.ubereats_last_codes = new_codes
chat.ubereats_next_execution = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(seconds=chat.ubereats_seconds)
chat.save()
async def start_ubereats(self, chat: Chat, send_code_now=True):

View File

@@ -1,5 +1,6 @@
__all__ = ['Chat']
import datetime
from dataclasses import dataclass, field
from multibot import Chat as MultiBotChat
@@ -21,6 +22,7 @@ class Chat(MultiBotChat):
ubereats_cookies: list[list[dict]] = field(default_factory=list)
ubereats_last_codes: list[str] = field(default_factory=list)
ubereats_seconds: int = 86700
ubereats_next_execution: datetime.datetime = None
def __post_init__(self):
super().__post_init__()