{#if media}
banner
cover-art

{anilistClient.title(media)}

{#if media.averageScore}
trending_up Rating: {media.averageScore + '%'}
{/if} {#if media.format}
monitor Format: {formatMap[media.format]}
{/if} {#if media.episodes !== 1 && getMediaMaxEp(media)}
theaters Episodes: {getMediaMaxEp(media)}
{:else if media.duration}
timer Length: {media.duration + ' min'}
{/if} {#if media.stats?.scoreDistribution}
group Reviews: {anilistClient.reviews(media)}
{/if}
{#if Helper.isAniAuth()} {/if}
{#each media.tags as tag}
{tag.name}: {tag.rank}%
{/each}
{#each media.genres as genre}
{genre}
{/each}
{#if media.description}

Synopsis

{media.description?.replace(/<[^>]*>/g, '') || ''}
{/if} node.type === 'ANIME' && relationType !== 'CHARACTER').sort((a, b) => { const relationTypeComparison = a.relationType.localeCompare(b.relationType) if (relationTypeComparison !== 0) { return relationTypeComparison } return (a.node.seasonYear || 0) - (b.node.seasonYear || 0) })} promise={ anilistClient.searchIDS({ page: 1, perPage: 50, id: media.relations?.edges?.filter(({ node, relationType }) => node.type === 'ANIME' && relationType !== 'CHARACTER').map(({ node }) => node.id) }) } let:item let:promise title='Relations'>
{#await promise} {:then res } {#if res} {/if} {/await}
node.mediaRecommendation).sort((a, b) => b.node.rating - a.node.rating) } promise={ anilistClient.searchIDS({ page: 1, perPage: 50, id: media.recommendations?.edges?.map(({ node }) => node.mediaRecommendation?.id) }) } let:item let:promise title='Recommendations'>
{#await promise} {:then res } {#if res} {/if} {/await}

Episodes

{ episodeOrder = !episodeOrder }}>Reverse
{/if}