Add ubereats_next_execution
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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__()
|
||||
|
||||
Reference in New Issue
Block a user