from datetime import datetime, timedelta from typing import Optional, Tuple from facefusion import wording def get_current_date_time() -> datetime: return datetime.now().astimezone() def split_time_delta(time_delta : timedelta) -> Tuple[int, int, int, int]: days, hours = divmod(time_delta.total_seconds(), 86400) hours, minutes = divmod(hours, 3600) minutes, seconds = divmod(minutes, 60) return int(days), int(hours), int(minutes), int(seconds) def describe_time_ago(date_time : datetime) -> Optional[str]: time_ago = datetime.now(date_time.tzinfo) - date_time days, hours, minutes, _ = split_time_delta(time_ago) if timedelta(days = 1) < time_ago: return wording.get('time_ago_days').format(days = days, hours = hours, minutes = minutes) if timedelta(hours = 1) < time_ago: return wording.get('time_ago_hours').format(hours = hours, minutes = minutes) if timedelta(minutes = 1) < time_ago: return wording.get('time_ago_minutes').format(minutes = minutes) return wording.get('time_ago_now')