diff --git a/.forgejo/workflows/unlighthouse.yml b/.forgejo/workflows/unlighthouse.yml index d4f1d58..45bc4ed 100644 --- a/.forgejo/workflows/unlighthouse.yml +++ b/.forgejo/workflows/unlighthouse.yml @@ -91,5 +91,6 @@ jobs: key: ${{ secrets.SSH_PRIVATE_KEY }} script: | PATH="$HOME/.local/bin:$PATH" + screen -ls | grep 'fgo_ta_com-unlighthouse' | awk '{print $1}' | xargs -I % -t screen -X -S % quit cd fgo_ta_com screen -S fgo_ta_com-unlighthouse -dm serve unlighthouse/ -p ${{ secrets.UNLIGHTHOUSE_DEPLOY_PORT }} diff --git a/src/assets/ta_servants/arjunaalter.png b/src/assets/ta_servants/arjunaalter.png new file mode 100644 index 0000000..89d41e7 Binary files /dev/null and b/src/assets/ta_servants/arjunaalter.png differ diff --git a/src/assets/ta_servants/galatea.png b/src/assets/ta_servants/galatea.png new file mode 100644 index 0000000..7cd98eb Binary files /dev/null and b/src/assets/ta_servants/galatea.png differ diff --git a/src/assets/ta_servants/ibuki.png b/src/assets/ta_servants/ibuki.png new file mode 100644 index 0000000..93c1e5e Binary files /dev/null and b/src/assets/ta_servants/ibuki.png differ diff --git a/src/assets/ta_servants/kiarasummer.png b/src/assets/ta_servants/kiarasummer.png new file mode 100644 index 0000000..30e11f4 Binary files /dev/null and b/src/assets/ta_servants/kiarasummer.png differ diff --git a/src/assets/ta_servants/ozymandias.png b/src/assets/ta_servants/ozymandias.png new file mode 100644 index 0000000..457fca3 Binary files /dev/null and b/src/assets/ta_servants/ozymandias.png differ diff --git a/src/assets/ta_servants/taigongwang.png b/src/assets/ta_servants/taigongwang.png new file mode 100644 index 0000000..6aa244e Binary files /dev/null and b/src/assets/ta_servants/taigongwang.png differ diff --git a/src/assets/ta_servants/tamamo.png b/src/assets/ta_servants/tamamo.png new file mode 100644 index 0000000..9f3b112 Binary files /dev/null and b/src/assets/ta_servants/tamamo.png differ diff --git a/src/components/hero.astro b/src/components/hero.astro index 4198bdc..9244627 100644 --- a/src/components/hero.astro +++ b/src/components/hero.astro @@ -38,7 +38,6 @@ const release = `https://forgejo.neshweb.net/Firq/fgo-ta-com-website/releases/ta color: white; font-size: 1.5em; padding: 2rem 0rem; - margin-top: 7.5rem; } a { text-align: center; diff --git a/src/components/taCard.astro b/src/components/taCard.astro index 3a5783f..0d2fdc4 100644 --- a/src/components/taCard.astro +++ b/src/components/taCard.astro @@ -1,6 +1,8 @@ --- import type { ImageMetadata } from 'astro' import { Image } from 'astro:assets' +import { plsLoadImage } from '../utils/tools' +import type { GlobImage } from '../types/generic' export interface Props { title: string link: string @@ -19,22 +21,25 @@ const options_date: Intl.DateTimeFormatOptions = { } const servantImagePath = `/src/assets/ta_servants/${servant}.png` - -const formatted_date = new Date(date).toLocaleDateString('de-DE', options_date) -const servant_images = import.meta.glob<{ default: ImageMetadata }>( +const servant_images = import.meta.glob( '/src/assets/ta_servants/*.png' ) +const loaded_image = plsLoadImage(servant_images, servantImagePath) + +const formatted_date = new Date(date).toLocaleDateString('de-DE', options_date) +const arialabel = `By ${runner} • ${formatted_date} ${turns}` --- - +
- +

{title}

- By {runner}

{formatted_date} + By {runner}

+ {formatted_date}

diff --git a/src/content/data/beast4l.json b/src/content/data/beast4l.json index d9f0d13..d30759e 100644 --- a/src/content/data/beast4l.json +++ b/src/content/data/beast4l.json @@ -93,6 +93,62 @@ "servant": "koyo", "turns": "4T", "runner": "MCR" + }, + { + "title": "Tamamo Solo 30T", + "link": "https://www.youtube.com/watch?v=2wUcojRXTlw", + "date": "2023-12-27", + "servant": "tamamo", + "turns": "30T", + "runner": "Mitsunee" + }, + { + "title": "Dual Taigong Wang 4T", + "link": "https://www.youtube.com/watch?v=3jU3Az7iM7E", + "date": "2023-12-27", + "servant": "taigongwang", + "turns": "4T", + "runner": "Ryougi Bobby" + }, + { + "title": "Ibuki 4T", + "link": "https://www.youtube.com/watch?v=dgJfgMHAOpI", + "date": "2023-12-29", + "servant": "ibuki", + "turns": "4T", + "runner": "Martyr Kuga" + }, + { + "title": "Ozymandias 4T", + "link": "https://www.youtube.com/watch?v=Y8qYY875M_I", + "date": "2023-12-28", + "servant": "ozymandias", + "turns": "4T", + "runner": "Kusanagi" + }, + { + "title": "Arjuna Alter 4T", + "link": "https://www.youtube.com/watch?v=OTfM7WQl5uI", + "date": "2023-12-28", + "servant": "arjunaalter", + "turns": "4T", + "runner": "Akise" + }, + { + "title": "Galatea 4T", + "link": "https://www.youtube.com/watch?v=GKCZtn815wA", + "date": "2023-12-30", + "servant": "galatea", + "turns": "4T", + "runner": "Hentai Daddi" + }, + { + "title": "Summer Kiara 4T", + "link": "https://www.youtube.com/watch?v=b46JRNUIdrM", + "date": "2023-12-28", + "servant": "kiarasummer", + "turns": "4T", + "runner": "Felt" } ] } diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 6ea5a45..4e871ff 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -5,7 +5,7 @@ import navdata from '../../static/data/_navdata.json' import embed from '../assets/embed.png' import home from 'iconoir/icons/home.svg' import database from 'iconoir/icons/database.svg' -import type { IconsLookup } from '../types/icons' +import type { IconsLookup } from '../types/generic' export interface Props { title: string diff --git a/src/layouts/taShowcaseLayout.astro b/src/layouts/taShowcaseLayout.astro index e028ea3..2a67ed7 100644 --- a/src/layouts/taShowcaseLayout.astro +++ b/src/layouts/taShowcaseLayout.astro @@ -2,29 +2,30 @@ import Layout from '../layouts/Layout.astro' import BaseSection from '../layouts/baseSection.astro' import TACard from '../components/taCard.astro' -import type { filedata } from '../types/ta' +import type { FileData } from '../types/ta' +import type { GlobAny } from '../types/generic' export interface Props { datafile: string } const { datafile } = Astro.props -const fulldata = import.meta.glob<{ default: any }>(`../content/data/*.json`) -const filecontent: filedata = ( +const fulldata = import.meta.glob(`../content/data/*.json`) +const filecontent: FileData = ( await fulldata[`../content/data/${datafile}.json`]() )['default'] -const title = filecontent.info.title +const pagetitle = `${filecontent.info.title} - FGO TA` filecontent.data.sort((a, b) => Date.parse(b.date) - Date.parse(a.date)) --- << Back to database - + {filecontent.data.map((item) => )}
diff --git a/src/pages/404.astro b/src/pages/404.astro index bed7988..6feeda7 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -8,11 +8,11 @@ const description = "Error. This shouldn't happen :/" --- - +
Sad Shishou

Well ... you were not supposed to end up here.

diff --git a/src/pages/database/[slug].astro b/src/pages/database/[slug].astro index 7804300..c6805e5 100644 --- a/src/pages/database/[slug].astro +++ b/src/pages/database/[slug].astro @@ -1,9 +1,10 @@ --- import TaShowcaseLayout from '../../layouts/taShowcaseLayout.astro' -import { findSlug } from '../../utils/slugTools' +import type { GlobAny } from '../../types/generic' +import { findSlug } from '../../utils/tools' export function getStaticPaths() { - const fulldata = import.meta.glob<{ default: any }>( + const fulldata = import.meta.glob( `../../content/data/*.json` ) const keylist = Object.keys(fulldata).map((item) => findSlug(item)!) diff --git a/src/pages/database/index.astro b/src/pages/database/index.astro index 1aeca1d..d74cfbe 100644 --- a/src/pages/database/index.astro +++ b/src/pages/database/index.astro @@ -2,13 +2,13 @@ import Layout from '../../layouts/Layout.astro' import QuestListing from '../../components/questListing.astro' import DatabaseSection from '../../layouts/databaseSection.astro' -import { findSlug } from '../../utils/slugTools' -import type { filedata } from '../../types/ta' +import { findSlug } from '../../utils/tools' +import type { GlobFiledata } from '../../types/generic' const description = 'FGO NA TA Database' const questInfo = [] -const fulldata = import.meta.glob<{ default: filedata }>( +const fulldata = import.meta.glob( `../../content/data/*.json` ) @@ -26,7 +26,7 @@ questInfo.sort( --- diff --git a/src/types/generic.ts b/src/types/generic.ts new file mode 100644 index 0000000..038edd8 --- /dev/null +++ b/src/types/generic.ts @@ -0,0 +1,13 @@ +import type { FileData } from "./ta" + +export interface IconsLookup { + [key: string]: ImageMetadata +} + +interface GlobGeneric { + default: T +} + +export type GlobAny = GlobGeneric +export type GlobFiledata = GlobGeneric +export type GlobImage = GlobGeneric diff --git a/src/types/icons.ts b/src/types/icons.ts deleted file mode 100644 index edd8d2a..0000000 --- a/src/types/icons.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface IconsLookup { - [key: string]: ImageMetadata -} diff --git a/src/types/ta.ts b/src/types/ta.ts index 75dfb29..bc55c3f 100644 --- a/src/types/ta.ts +++ b/src/types/ta.ts @@ -1,4 +1,4 @@ -interface tadata { +interface TAData { title: string link: string servant: string @@ -7,14 +7,14 @@ interface tadata { date: string } -interface info { +interface Info { title: string questReleaseDate: string description: string shortdescription: string } -export interface filedata { - info: info - data: tadata[] +export interface FileData { + info: Info + data: TAData[] } diff --git a/src/utils/slugTools.ts b/src/utils/slugTools.ts deleted file mode 100644 index d81acd4..0000000 --- a/src/utils/slugTools.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function findSlug(filepath: string) { - return filepath.match(/(?:.*[\\/])(.+)(?:\.json)/)?.[1] -} diff --git a/src/utils/tools.ts b/src/utils/tools.ts new file mode 100644 index 0000000..5a77d01 --- /dev/null +++ b/src/utils/tools.ts @@ -0,0 +1,9 @@ +export function findSlug(filepath: string) { + return filepath.match(/(?:.*[\\/])(.+)(?:\.json)/)?.[1] +} + +export function plsLoadImage(record: Record Promise<{default: ImageMetadata}>>, path: string) { + const loadedImage = record[path]?.(); + if (!loadedImage) throw new Error("Asset was not found:" + path); + return loadedImage; +}