Spaces:
Runtime error
Runtime error
| from datetime import datetime, timezone, timedelta | |
| class MeetingUtils: | |
| def __init__(self): | |
| pass | |
| async def __aenter__(self): | |
| return self | |
| async def __aexit__(self, *args): | |
| pass | |
| async def get_millis_utc(self, dt: datetime): | |
| return int(dt.replace(tzinfo=timezone.utc).timestamp() * 1000) | |
| async def millis_to_datetime(self, millis, offset=0): | |
| dt_utc = datetime.fromtimestamp(millis / 1000, tz=timezone.utc) | |
| dt_offset = dt_utc + timedelta(hours=offset) # Apply timezone offset | |
| return dt_offset.strftime("%Y-%m-%d %H:%M:%S") | |
| async def check_availability(self, response, duration_ms, offset=0): | |
| availabilities = ( | |
| response["linkAvailability"]["linkAvailabilityByDuration"] | |
| .get(str(duration_ms), {}) | |
| .get("availabilities", []) | |
| ) | |
| available_slots = [] | |
| for slot in availabilities: | |
| start_time = await self.millis_to_datetime(slot["startMillisUtc"], offset) | |
| end_time = await self.millis_to_datetime(slot["endMillisUtc"], offset) | |
| available_slots.append({"start": start_time, "end": end_time}) | |
| return available_slots | |