
- {#if data.failed}
-
- sync_problem
-
- {/if}
-
play_arrow
+
{#if media?.duration}
{media.duration}m
@@ -86,9 +82,6 @@
z-index: 30;
/* fixes transform scaling on click causing z-index issues */
}
- .material-symbols-outlined {
- font-size: 3rem;
- }
.title {
display: -webkit-box;
-webkit-line-clamp: 1;
diff --git a/common/components/cards/EpisodePreviewCard.svelte b/common/components/cards/EpisodePreviewCard.svelte
index 0d6642c..c5c23c6 100644
--- a/common/components/cards/EpisodePreviewCard.svelte
+++ b/common/components/cards/EpisodePreviewCard.svelte
@@ -2,6 +2,7 @@
import { statusColorMap, formatMap } from '@/modules/anime.js'
import { since } from '@/modules/util'
import { liveAnimeEpisodeProgress } from '@/modules/animeprogress.js'
+ import { CalendarDays, Play, Tv } from 'lucide-svelte'
export let data
/** @type {import('@/modules/al.d.ts').Media | null} */
const media = data.media
@@ -26,12 +27,7 @@
on:loadeddata={() => { hide = false }}
autoplay />
{/if}
- {#if data.failed}
-
- sync_problem
-
- {/if}
-
play_arrow
+
{#if media?.duration}
{media.duration}m
@@ -78,13 +74,13 @@
{#if media}
-
-
calendar_month
- {media.seasonYear || 'N/A'}
+
+
+ {media.seasonYear || 'N/A'}
- {formatMap[media.format]}
- monitor
+ {formatMap[media.format]}
+
{/if}
@@ -92,9 +88,6 @@
diff --git a/common/views/ViewAnime/Details.svelte b/common/views/ViewAnime/Details.svelte
index c5bbcf2..135d21a 100644
--- a/common/views/ViewAnime/Details.svelte
+++ b/common/views/ViewAnime/Details.svelte
@@ -1,13 +1,15 @@
+
-{#each episodeOrder ? episodeList : [...episodeList].reverse() as { episode, image, summary, rating, title, length, airdate }}
+{#each episodeOrder ? episodeList : [...episodeList].reverse() as { episode, image, summary, rating, title, length, airdate, filler }}
{@const completed = !watched && userProgress >= episode}
{@const target = userProgress + 1 === episode}
{@const progress = !watched && ($animeProgress?.[episode] ?? 0)}
-
play(episode)}>
+
play(episode)}>
{#if image}
{/if}
+ {#if filler}
+
+ Filler
+
+ {/if}
diff --git a/common/views/ViewAnime/Following.svelte b/common/views/ViewAnime/Following.svelte
index 71ea349..248818a 100644
--- a/common/views/ViewAnime/Following.svelte
+++ b/common/views/ViewAnime/Following.svelte
@@ -2,6 +2,7 @@
import { anilistClient } from '@/modules/anilist.js'
import { click } from '@/modules/click.js'
import IPC from '@/modules/ipc.js'
+ import { ExternalLink } from 'lucide-svelte'
/** @type {import('@/modules/al.d.ts').Media} */
export let media
@@ -22,7 +23,9 @@
{friend.user.name}
{friend.status.toLowerCase()}
-
IPC.emit('open', 'https://anilist.co/user/' + friend.user.name)}> open_in_new
+
IPC.emit('open', 'https://anilist.co/user/' + friend.user.name)}>
+
+
{/each}
diff --git a/common/views/ViewAnime/ViewAnime copy.svelte b/common/views/ViewAnime/ViewAnime copy.svelte
deleted file mode 100644
index 2b22161..0000000
--- a/common/views/ViewAnime/ViewAnime copy.svelte
+++ /dev/null
@@ -1,199 +0,0 @@
-
-
-
- {#if media}
-
-
-
-
-
-
-
-
-

-
-
-
-
-
- {media.title.userPreferred}
-
-
- {#if media.averageScore}
- trending_up
-
- Rating: {media.averageScore + '%'}
-
- {/if}
- {#if media.format}
- monitor
-
- Format: {media.format === 'TV' ? media.format : media.format?.replace(/_/g, ' ').toLowerCase()}
-
- {/if}
- {#if media.episodes !== 1 && getMediaMaxEp(media)}
- theaters
-
- Episodes: {getMediaMaxEp(media)}
-
- {:else if media.duration}
- timer
-
- Length: {media.duration + ' min'}
-
- {/if}
-
-
- {#each media.genres as genre}
-
- {genre}
-
- {/each}
-
-
-
-
-
-
-
-
-
-
-
-
-
Synopsis
-
- {media.description?.replace(/<[^>]*>/g, '') || ''}
-
-
node.type === 'ANIME')} let:item title='Relations'>
- { $view = null; $view = (await anilistClient.searchIDSingle({ id: item.node.id })).data.Media }}>
-

-
{item.relationType.replace(/_/g, ' ').toLowerCase()}
-
{item.node.title.userPreferred}
-
-
- {#if maxPlayEp}
-
Episodes
-
-
-
- {#each Array(maxPlayEp) as _, i}
- {@const ep = maxPlayEp - i}
- {
- playAnime(media, ep)
- close()
- }}>
- | Episode {ep} |
- play_arrow |
-
- {/each}
-
-
-
- {/if}
-
edge.node.mediaRecommendation)} let:item title='Recommendations'>
- { $view = null; $view = (await anilistClient.searchIDSingle({ id: item.node.mediaRecommendation.id })).data.Media }}>
-

-
{item.node.mediaRecommendation.title.userPreferred}
-
-
-
-
- {#if media.mediaListEntry?.progress}
-
Progress
-
-
-
- {media.mediaListEntry?.progress} / {getMediaMaxEp(media)} Available Episodes
-
-
- {/if}
-
-
-
-
-
-
- {/if}
-
-
-
diff --git a/common/views/ViewAnime/ViewAnime.svelte b/common/views/ViewAnime/ViewAnime.svelte
index 4d9f7ab..a82106e 100644
--- a/common/views/ViewAnime/ViewAnime.svelte
+++ b/common/views/ViewAnime/ViewAnime.svelte
@@ -12,6 +12,7 @@
import smoothScroll from '@/modules/scroll.js'
import IPC from '@/modules/ipc.js'
import { alToken } from '@/modules/settings.js'
+ import { Bookmark, Clapperboard, ExternalLink, Heart, Play, Share2, Timer, TrendingUp, Tv } from 'lucide-svelte'
const view = getContext('view')
function close () {
@@ -68,6 +69,15 @@
IPC.emit('open', url)
}
let episodeOrder = true
+
+// async function score (media, score) {
+ // const variables = {
+ // id: media.id,
+ // score: score * 10
+ // }
+ // await anilistClient.entry(variables)
+ // media = (await anilistClient.searchIDSingle({ id: media.id })).data.Media
+ // }
@@ -86,7 +96,7 @@
{#if media.averageScore}
-
trending_up
+
Rating: {media.averageScore + '%'}
@@ -94,7 +104,7 @@
{/if}
{#if media.format}
-
monitor
+
Format: {formatMap[media.format]}
@@ -102,14 +112,14 @@
{/if}
{#if media.episodes !== 1 && getMediaMaxEp(media)}
- theaters
+
Episodes: {getMediaMaxEp(media)}
{:else if media.duration}
-
timer
+
Length: {media.duration + ' min'}
@@ -120,24 +130,40 @@
-
-
diff --git a/common/views/WatchTogether/Lobby.svelte b/common/views/WatchTogether/Lobby.svelte
index 1ac9bf5..df0a297 100644
--- a/common/views/WatchTogether/Lobby.svelte
+++ b/common/views/WatchTogether/Lobby.svelte
@@ -1,6 +1,7 @@