feat: improvements on media list intergration

This commit is contained in:
Benex254
2024-08-23 17:44:10 +03:00
parent 0d549c5915
commit 4626eca89e
5 changed files with 36 additions and 7 deletions

View File

@@ -523,9 +523,25 @@ for tag_category, tags_in_category in tags_available.items():
),
help="the year the media was released",
)
@click.option(
"--on-list/--not-on-list",
"-L/-no-L",
help="Whether the anime should be in your list or not",
type=bool,
)
@click.pass_obj
def search(
config, title, dump_json, season, status, sort, genres, tags, media_format, year
config,
title,
dump_json,
season,
status,
sort,
genres,
tags,
media_format,
year,
on_list,
):
from ....anilist import AniList
@@ -538,6 +554,7 @@ def search(
tag_in=list(tags),
seasonYear=year,
format_in=list(media_format),
on_list=on_list,
)
if success:
if dump_json:

View File

@@ -104,6 +104,11 @@ def write_search_results(
image_url
)
mediaListName = "Not in any of your lists"
progress = "UNKNOWN"
if anime_list := anime["mediaListEntry"]:
mediaListName = anime_list["status"]
progress = anime_list["progress"]
# handle the text data
template = f"""
{get_true_fg("-"*SEPARATOR_WIDTH,*SEPARATOR_COLOR,bold=False)}
@@ -118,6 +123,9 @@ def write_search_results(
{get_true_fg('Start Date:',*HEADER_COLOR)} {anilist_data_helper.format_anilist_date_object(anime['startDate'])}
{get_true_fg('End Date:',*HEADER_COLOR)} {anilist_data_helper.format_anilist_date_object(anime['endDate'])}
{get_true_fg("-"*SEPARATOR_WIDTH,*SEPARATOR_COLOR,bold=False)}
{get_true_fg('Media List:',*HEADER_COLOR)} {mediaListName}
{get_true_fg('Progress:',*HEADER_COLOR)} {progress}
{get_true_fg("-"*SEPARATOR_WIDTH,*SEPARATOR_COLOR,bold=False)}
{get_true_fg('Description:',*HEADER_COLOR)}
"""
template = textwrap.dedent(template)

View File

@@ -316,6 +316,7 @@ class AniListApi:
page: int | None = None,
season: str | None = None,
format_in: list[str] | None = None,
on_list: bool | None = None,
type="ANIME",
**kwargs,
):
@@ -324,7 +325,7 @@ class AniListApi:
"""
variables = {}
for key, val in list(locals().items())[1:]:
if val and key not in ["variables"]:
if (val or val is False) and key not in ["variables"]:
variables[key] = val
search_results = self.get_data(search_query, variables=variables)
return search_results

View File

@@ -239,6 +239,7 @@ $endDate_lesser:FuzzyDateInt,\
$format_in:[MediaFormat],\
$type:MediaType\
$season:MediaSeason\
$on_list:Boolean\
"
search_query = (
@@ -274,6 +275,7 @@ query($query:String,%s){
season: $season
seasonYear: $seasonYear
type: $type
onList:$on_list
) {
id
idMal

View File

@@ -114,16 +114,17 @@ class AnilistCharactersEdges(TypedDict):
edges: list[AnilistCharactersEdge]
class AnilistMediaList_(TypedDict):
id: int
progress: int
AnilistMediaListStatus = Literal[
"CURRENT", "PLANNING", "COMPLETED", "DROPPED", "PAUSED", "REPEATING"
]
class AnilistMediaList_(TypedDict):
id: int
progress: int
status: AnilistMediaListStatus
class AnilistMediaListProperties(TypedDict):
status: AnilistMediaListStatus
score: float