diff options
Diffstat (limited to 'src/lib/User/BadgeWall/AWC.svelte')
| -rw-r--r-- | src/lib/User/BadgeWall/AWC.svelte | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/lib/User/BadgeWall/AWC.svelte b/src/lib/User/BadgeWall/AWC.svelte index 52eb670a..6d8dcf76 100644 --- a/src/lib/User/BadgeWall/AWC.svelte +++ b/src/lib/User/BadgeWall/AWC.svelte @@ -14,17 +14,17 @@ 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; + ).flatMap((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 { + if (header.innerText === 'Special') { + return [ + { group: header.innerText, badges: Array.from(container.querySelectorAll('.badge-display img')).map((b) => { const badge = b as HTMLImageElement; @@ -37,10 +37,12 @@ const awcBadgesGrouped = (awcResponse: string): AWCBadgesGroup[] => { : badge.src }; }) - }; - } + } + ]; + } - return { + return [ + { group: header.innerText, badges: Array.from(container.querySelectorAll('.badge-display a')).map((b) => { const badge = b as HTMLAnchorElement; @@ -54,9 +56,9 @@ const awcBadgesGrouped = (awcResponse: string): AWCBadgesGroup[] => { : image.src }; }) - }; - }) - .filter((b) => b !== undefined) as AWCBadgesGroup[]; + } + ]; + }) as AWCBadgesGroup[]; }; </script> |