From b8414441bb778241f610f755a743f49b0ce479e4 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 7 Jul 2025 01:22:34 -0700 Subject: feat(schedule): Add episode flag --- src/oguri/cli.py | 5 +++-- src/oguri/schedule.py | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/oguri/cli.py b/src/oguri/cli.py index dc3fbb6..6a624e9 100644 --- a/src/oguri/cli.py +++ b/src/oguri/cli.py @@ -33,7 +33,8 @@ def cli(): default=["JP", "KR", "CN"], help="Filter by country of origin. Can be used multiple times. Not an exhaustive list.", ) -def schedule(day, reverse, exact, first, sort_by, countries): +@click.option("--episode", type=int, help="Filter by episode number.") +def schedule(day, reverse, exact, first, sort_by, countries, episode): """ Shows the airing schedule for a given day. @@ -56,7 +57,7 @@ def schedule(day, reverse, exact, first, sort_by, countries): asyncio.run( schedule_logic.show_schedule( - days_offset, reverse, exact, first, sort_by, countries + days_offset, reverse, exact, first, sort_by, countries, episode ) ) diff --git a/src/oguri/schedule.py b/src/oguri/schedule.py index 07a48e8..139430f 100644 --- a/src/oguri/schedule.py +++ b/src/oguri/schedule.py @@ -18,6 +18,7 @@ async def show_schedule( first_episode_only: bool = False, sort_by: str = "time", countries: list[str] = ["JP", "KR", "CN"], + episode: int | None = None, ): client = Client(url="https://graphql.anilist.co") start_of_day = datetime.now().replace( @@ -27,7 +28,7 @@ async def show_schedule( airing_schedules_query = Query.page().fields( PageFields.airing_schedules( airing_at_greater=int(start_of_day.timestamp()), - episode=1 if first_episode_only else None, + episode=episode if episode else 1 if first_episode_only else None, airing_at_lesser=int(end_of_day.timestamp()), ).fields( AiringScheduleFields.airing_at, -- cgit v1.2.3