mirror of
https://github.com/kurbezz/discord-bot.git
synced 2025-12-06 15:15:37 +01:00
Add debug info for event comparator
This commit is contained in:
@@ -1,44 +1,59 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
import logging
|
||||||
|
|
||||||
from services.scheduler_sync.discord_events import DiscordEvent, CreateDiscordEvent, RecurrenceRule
|
from services.scheduler_sync.discord_events import DiscordEvent, CreateDiscordEvent, RecurrenceRule
|
||||||
|
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
||||||
def is_repeated(start: datetime, target: datetime, rule: RecurrenceRule) -> bool:
|
def is_repeated(start: datetime, target: datetime, rule: RecurrenceRule) -> bool:
|
||||||
return start.time() == target.time() and target.weekday() in rule.by_weekday
|
return start.time() == target.time() and target.weekday() in rule.by_weekday
|
||||||
|
|
||||||
|
|
||||||
def compare(create_event: CreateDiscordEvent, event: DiscordEvent) -> bool:
|
def compare(create_event: CreateDiscordEvent, event: DiscordEvent) -> bool:
|
||||||
if create_event.name != event.name:
|
if create_event.name != event.name:
|
||||||
|
logger.debug(f"Name is different: {create_event.name} != {event.name}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if create_event.description != event.description:
|
if create_event.description != event.description:
|
||||||
|
logger.debug(f"Description is different: {create_event.description} != {event.description}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if create_event.recurrence_rule is not None:
|
if create_event.recurrence_rule is not None:
|
||||||
if event.recurrence_rule is None:
|
if event.recurrence_rule is None:
|
||||||
|
logger.debug(f"Recurrence rule is different: {create_event.recurrence_rule} != {event.recurrence_rule}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
ce_rr = create_event.recurrence_rule
|
ce_rr = create_event.recurrence_rule
|
||||||
e_rr = event.recurrence_rule
|
e_rr = event.recurrence_rule
|
||||||
|
|
||||||
if ce_rr.by_weekday != e_rr.by_weekday:
|
if ce_rr.by_weekday != e_rr.by_weekday:
|
||||||
|
logger.debug(f"Recurrence rule is different: {ce_rr.by_weekday} != {e_rr.by_weekday}")
|
||||||
return False
|
return False
|
||||||
if ce_rr.interval != e_rr.interval:
|
if ce_rr.interval != e_rr.interval:
|
||||||
|
logger.debug(f"Recurrence rule is different: {ce_rr.interval} != {e_rr.interval}")
|
||||||
return False
|
return False
|
||||||
if ce_rr.frequency != e_rr.frequency:
|
if ce_rr.frequency != e_rr.frequency:
|
||||||
|
logger.debug(f"Recurrence rule is different: {ce_rr.frequency} != {e_rr.frequency}")
|
||||||
return False
|
return False
|
||||||
if not is_repeated(ce_rr.start, e_rr.start, ce_rr):
|
if not is_repeated(ce_rr.start, e_rr.start, ce_rr):
|
||||||
|
logger.debug(f"Recurrence rule is different: {ce_rr.start} != {e_rr.start}")
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
if event.recurrence_rule is not None:
|
if event.recurrence_rule is not None:
|
||||||
|
logger.debug(f"Recurrence rule is different: {create_event.recurrence_rule} != {event.recurrence_rule}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if create_event.scheduled_start_time != event.scheduled_start_time:
|
if create_event.scheduled_start_time != event.scheduled_start_time:
|
||||||
if create_event.recurrence_rule is None or not is_repeated(create_event.scheduled_start_time, event.scheduled_start_time, create_event.recurrence_rule):
|
if create_event.recurrence_rule is None or not is_repeated(create_event.scheduled_start_time, event.scheduled_start_time, create_event.recurrence_rule):
|
||||||
|
logger.debug(f"Scheduled start time is different: {create_event.scheduled_start_time} != {event.scheduled_start_time}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if create_event.scheduled_end_time != event.scheduled_end_time:
|
if create_event.scheduled_end_time != event.scheduled_end_time:
|
||||||
if create_event.recurrence_rule is None or not is_repeated(create_event.scheduled_end_time, event.scheduled_end_time, create_event.recurrence_rule):
|
if create_event.recurrence_rule is None or not is_repeated(create_event.scheduled_end_time, event.scheduled_end_time, create_event.recurrence_rule):
|
||||||
|
logger.debug(f"Scheduled end time is different: {create_event.scheduled_end_time} != {event.scheduled_end_time}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user