aboutsummaryrefslogtreecommitdiff
path: root/src/lib/User/BadgeWall/AWC.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/User/BadgeWall/AWC.svelte')
-rw-r--r--src/lib/User/BadgeWall/AWC.svelte166
1 files changed, 83 insertions, 83 deletions
diff --git a/src/lib/User/BadgeWall/AWC.svelte b/src/lib/User/BadgeWall/AWC.svelte
index ba8a22ea..1cf82a1b 100644
--- a/src/lib/User/BadgeWall/AWC.svelte
+++ b/src/lib/User/BadgeWall/AWC.svelte
@@ -1,100 +1,100 @@
<script lang="ts">
- import type { AWCBadgesGroup } from '$lib/Data/awc';
- import { cdn, thumbnail } from '$lib/Utility/image';
- import type { Preferences } from '../../../graphql/$types';
- import FallbackBadge from './FallbackBadge.svelte';
- import './badges.css';
+ import type { AWCBadgesGroup } from '$lib/Data/awc';
+ import { cdn, thumbnail } from '$lib/Utility/image';
+ import type { Preferences } from '../../../graphql/$types';
+ import FallbackBadge from './FallbackBadge.svelte';
+ import './badges.css';
- export let awcPromise: Promise<Response>;
- export let categoryFilter: string | null;
- export let isOwner: boolean;
- export let preferences: Preferences;
+ export let awcPromise: Promise<Response>;
+ export let categoryFilter: string | null;
+ export let isOwner: boolean;
+ export let preferences: Preferences;
- const awcBadgesGrouped = (awcResponse: string): AWCBadgesGroup[] => {
- return Array.from(
- new DOMParser().parseFromString(awcResponse, 'text/html').querySelectorAll('.container')
- )
- .map((c) => {
- const container = c as HTMLDivElement;
- const header = container.querySelector('.container-header') as HTMLDivElement;
+ const awcBadgesGrouped = (awcResponse: string): AWCBadgesGroup[] => {
+ return Array.from(
+ new DOMParser().parseFromString(awcResponse, 'text/html').querySelectorAll('.container')
+ )
+ .map((c) => {
+ const container = c as HTMLDivElement;
+ const header = container.querySelector('.container-header') as HTMLDivElement;
- if (!header) return;
+ if (!header) return;
- if (!['Anime', 'Manga', 'Special'].includes(header.innerText)) return;
+ if (!['Anime', 'Manga', 'Special'].includes(header.innerText)) return;
- if (header.innerText === 'Special') {
- return {
- group: header.innerText,
- badges: Array.from(container.querySelectorAll('.badge-display img')).map((b) => {
- const badge = b as HTMLImageElement;
+ if (header.innerText === 'Special') {
+ return {
+ group: header.innerText,
+ badges: Array.from(container.querySelectorAll('.badge-display img')).map((b) => {
+ const badge = b as HTMLImageElement;
- return {
- link: '#',
- description: badge.alt,
- image: badge.src.includes('placeholder')
- ? cdn('https://awc.moe/static/images/badge-placeholder.png')
- : badge.src
- };
- })
- };
- }
+ return {
+ link: '#',
+ description: badge.alt,
+ image: badge.src.includes('placeholder')
+ ? cdn('https://awc.moe/static/images/badge-placeholder.png')
+ : badge.src
+ };
+ })
+ };
+ }
- return {
- group: header.innerText,
- badges: Array.from(container.querySelectorAll('.badge-display a')).map((b) => {
- const badge = b as HTMLAnchorElement;
- const image = badge.querySelector('img') as HTMLImageElement;
+ return {
+ group: header.innerText,
+ badges: Array.from(container.querySelectorAll('.badge-display a')).map((b) => {
+ const badge = b as HTMLAnchorElement;
+ const image = badge.querySelector('img') as HTMLImageElement;
- return {
- link: badge.href,
- description: image.alt,
- image: image.src.includes('placeholder')
- ? cdn('https://awc.moe/static/images/badge-placeholder.png')
- : image.src
- };
- })
- };
- })
- .filter((b) => b !== undefined) as AWCBadgesGroup[];
- };
+ return {
+ link: badge.href,
+ description: image.alt,
+ image: image.src.includes('placeholder')
+ ? cdn('https://awc.moe/static/images/badge-placeholder.png')
+ : image.src
+ };
+ })
+ };
+ })
+ .filter((b) => b !== undefined) as AWCBadgesGroup[];
+ };
</script>
{#await awcPromise then badges}
- {#if badges}
- {#await badges.clone().text() then text}
- {@const parsedBadges = awcBadgesGrouped(text)}
+ {#if badges}
+ {#await badges.clone().text() then text}
+ {@const parsedBadges = awcBadgesGrouped(text)}
- {#if parsedBadges.length > 0}
- {#each parsedBadges as group}
- <details open={categoryFilter || isOwner ? false : true}>
- <summary>
- Anime Watching Club <span class="opaque">|</span>
- {group.group}
- </summary>
+ {#if parsedBadges.length > 0}
+ {#each parsedBadges as group}
+ <details open={categoryFilter || isOwner ? false : true}>
+ <summary>
+ Anime Watching Club <span class="opaque">|</span>
+ {group.group}
+ </summary>
- <p />
+ <p />
- <div class="badges">
- {#each group.badges as badge, index}
- <div id={`badge-${index}`}>
- <FallbackBadge
- {badge}
- source={cdn(thumbnail(badge.image))}
- alternative={badge.description}
- fallback={thumbnail(badge.image)}
- hideOnError={preferences.hide_missing_badges}
- awc
- {index}
- {preferences}
- />
- </div>
- {/each}
- </div>
- </details>
+ <div class="badges">
+ {#each group.badges as badge, index}
+ <div id={`badge-${index}`}>
+ <FallbackBadge
+ {badge}
+ source={cdn(thumbnail(badge.image))}
+ alternative={badge.description}
+ fallback={thumbnail(badge.image)}
+ hideOnError={preferences.hide_missing_badges}
+ awc
+ {index}
+ {preferences}
+ />
+ </div>
+ {/each}
+ </div>
+ </details>
- <p />
- {/each}
- {/if}
- {/await}
- {/if}
+ <p />
+ {/each}
+ {/if}
+ {/await}
+ {/if}
{/await}