{#if mediaList.length > 1}
{/if}
{anilistClient.title(media)}
{#if media.averageScore}
Rating: {media.averageScore + '%'}
{/if}
{#if media.format}
Format: {formatMap[media.format]}
{/if}
{#if media.episodes !== 1 && getMediaMaxEp(media)}
Episodes: {getMediaMaxEp(media)}
{:else if media.duration}
Length: {media.duration + ' min'}
{/if}
{#if media.stats?.scoreDistribution}
Reviews: {anilistClient.reviews(media)}
{/if}
{#each media.tags as tag}
{tag.name}: {tag.rank}%
{/each}
{#each media.genres as genre}
{genre}
{/each}
{#if media.description}
{media.description?.replace(/<[^>]*>/g, '') || ''}
{/if}
node.type === 'ANIME').sort((a, b) => {
const typeComparison = a.relationType.localeCompare(b.relationType)
if (typeComparison !== 0) {
return typeComparison
}
return (a.node.seasonYear || 0) - (b.node.seasonYear || 0)
})} promise={ anilistClient.searchIDS({ page: 1, perPage: 50, id: media.relations?.edges?.filter(({ node }) => node.type === 'ANIME').map(({ node }) => node.id) }) } let:item let:promise title='Relations'>
{#await promise}
{:then res }
{#if res}
{/if}
{/await}
{#await mediaRecommendation then res}
{@const mediaRecommendation = res?.data?.Media}
node.mediaRecommendation).sort((a, b) => b.node.rating - a.node.rating) } promise={ anilistClient.searchIDS({ page: 1, perPage: 50, id: mediaRecommendation.recommendations?.edges?.map(({ node }) => node.mediaRecommendation?.id) }) } let:item let:promise title='Recommendations'>
{#await promise}
{:then res }
{#if res}
{/if}
{/await}
{/await}
Episodes
{ episodeOrder = !episodeOrder }}>Reverse