mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-12 15:50:01 -08:00
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
import re
|
|
from datetime import datetime
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from ..libs.anilist.types import AnilistDateObject, AnilistMediaNextAiringEpisode
|
|
|
|
COMMA_REGEX = re.compile(r"([0-9]{3})(?=\d)")
|
|
|
|
|
|
# TODO: Add formating options for the final date
|
|
def format_anilist_date_object(anilist_date_object: "AnilistDateObject"):
|
|
if anilist_date_object and anilist_date_object["day"]:
|
|
return f"{anilist_date_object['day']}/{anilist_date_object['month']}/{anilist_date_object['year']}"
|
|
else:
|
|
return "Unknown"
|
|
|
|
|
|
def format_anilist_timestamp(anilist_timestamp: int | None):
|
|
if anilist_timestamp:
|
|
return datetime.fromtimestamp(anilist_timestamp).strftime("%d/%m/%Y %H:%M:%S")
|
|
else:
|
|
return "Unknown"
|
|
|
|
|
|
def format_list_data_with_comma(data: list | None):
|
|
if data:
|
|
return ", ".join(data)
|
|
else:
|
|
return "None"
|
|
|
|
|
|
def format_number_with_commas(number: int | None):
|
|
if not number:
|
|
return "0"
|
|
return COMMA_REGEX.sub(lambda match: f"{match.group(1)},", str(number)[::-1])[::-1]
|
|
|
|
|
|
def extract_next_airing_episode(airing_episode: "AnilistMediaNextAiringEpisode"):
|
|
if airing_episode:
|
|
return f"{airing_episode['episode']} on {format_anilist_timestamp(airing_episode['airingAt'])}"
|
|
else:
|
|
return "Completed"
|