mirror of
https://github.com/tcgdex/compiler.git
synced 2025-06-07 16:29:57 +00:00
Updated Expansions
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
This commit is contained in:
parent
6cb861d16e
commit
a30d338103
@ -2,6 +2,9 @@ import Expansion from "../db/interfaces/Expansion"
|
|||||||
import Set from "../db/interfaces/Set"
|
import Set from "../db/interfaces/Set"
|
||||||
import * as glob from 'glob'
|
import * as glob from 'glob'
|
||||||
import { Langs } from "../db/interfaces/LangList"
|
import { Langs } from "../db/interfaces/LangList"
|
||||||
|
import { ExpansionSingle } from "../sdk/dist/types/interfaces/Expansion"
|
||||||
|
import { getAllSets } from "./util"
|
||||||
|
import { setToSetSimple, fetchSet } from "./setUtil"
|
||||||
|
|
||||||
export function getExpansion(set: Set): Expansion {
|
export function getExpansion(set: Set): Expansion {
|
||||||
if ("expansion" in set) return set.expansion
|
if ("expansion" in set) return set.expansion
|
||||||
@ -12,9 +15,21 @@ export function getAllExpansions(): Array<string> {
|
|||||||
return glob.sync("./db/expansions/*.ts").map(el => el.substr(16, el.length-15-1-3)) // -15 = start -1 = 0 index -3 = .ts
|
return glob.sync("./db/expansions/*.ts").map(el => el.substr(16, el.length-15-1-3)) // -15 = start -1 = 0 index -3 = .ts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function fetchExpansion(name: string): Expansion {
|
||||||
|
return require(`../db/expansions/${name}.js`).default
|
||||||
|
}
|
||||||
|
|
||||||
export function expansionToExpansionSimple(expansion: Expansion, lang: Langs) {
|
export function expansionToExpansionSimple(expansion: Expansion, lang: Langs) {
|
||||||
return {
|
return {
|
||||||
code: expansion.code,
|
code: expansion.code,
|
||||||
name: typeof expansion.name === "string" ? expansion.name : expansion.name[lang]
|
name: typeof expansion.name === "string" ? expansion.name : expansion.name[lang]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function expansionToExpansionSingle(expansion: Expansion, lang: Langs): ExpansionSingle {
|
||||||
|
return {
|
||||||
|
code: expansion.code,
|
||||||
|
name: typeof expansion.name === "string" ? expansion.name : expansion.name[lang],
|
||||||
|
sets: getAllSets(expansion.code, true).map(el => setToSetSimple(fetchSet(expansion.code, el), lang))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
46
endpoints/expansions/index.ts
Normal file
46
endpoints/expansions/index.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { getAllExpansions, expansionToExpansionSimple } from "../expansionUtil"
|
||||||
|
import Expansion from "../../db/interfaces/Expansion"
|
||||||
|
import { getAllSets, getBaseFolder } from "../util"
|
||||||
|
import { fetchSet } from "../setUtil"
|
||||||
|
import { promises as fs } from 'fs'
|
||||||
|
import { ExpansionList } from '../../sdk/dist/types/interfaces/Expansion'
|
||||||
|
import { Langs } from "../../db/interfaces/LangList"
|
||||||
|
|
||||||
|
const lang = process.env.CARDLANG as Langs || "en"
|
||||||
|
const endpoint = getBaseFolder(lang, "expansions")
|
||||||
|
|
||||||
|
|
||||||
|
const btsp = async () => {
|
||||||
|
const expansions = getAllExpansions()
|
||||||
|
let list: Array<{
|
||||||
|
release: string,
|
||||||
|
expansion: Expansion
|
||||||
|
}> = []
|
||||||
|
for (const i of expansions) {
|
||||||
|
const expansion: Expansion = require(`../../db/expansions/${i}`).default
|
||||||
|
const sets = getAllSets(expansion.code, true)
|
||||||
|
expansion.sets = sets
|
||||||
|
let oldestRelease = "9999-99-99"
|
||||||
|
for (const j of sets) {
|
||||||
|
console.log(j)
|
||||||
|
const set = fetchSet(expansion.code, j)
|
||||||
|
oldestRelease = set.releaseDate < oldestRelease ? set.releaseDate : oldestRelease
|
||||||
|
}
|
||||||
|
list.push({
|
||||||
|
release: oldestRelease,
|
||||||
|
expansion
|
||||||
|
})
|
||||||
|
}
|
||||||
|
list = list.sort((a, b) => a.release > b.release ? 1 : -1)
|
||||||
|
const finalList = list.map(el => el.expansion)
|
||||||
|
|
||||||
|
const res: ExpansionList = {
|
||||||
|
count: finalList.length,
|
||||||
|
list: finalList.map(el => expansionToExpansionSimple(el, lang))
|
||||||
|
}
|
||||||
|
|
||||||
|
await fs.mkdir(endpoint, {recursive: true})
|
||||||
|
await fs.writeFile(`${endpoint}/index.json`, JSON.stringify(res))
|
||||||
|
}
|
||||||
|
|
||||||
|
btsp()
|
22
endpoints/expansions/item.ts
Normal file
22
endpoints/expansions/item.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { getAllExpansions, fetchExpansion, expansionToExpansionSingle } from "../expansionUtil"
|
||||||
|
import { Langs } from "../../db/interfaces/LangList"
|
||||||
|
import { getBaseFolder } from "../util"
|
||||||
|
import { promises as fs } from 'fs'
|
||||||
|
|
||||||
|
const lang = process.env.CARDLANG as Langs || "en"
|
||||||
|
|
||||||
|
const endpoint = getBaseFolder(lang, "expansions")
|
||||||
|
|
||||||
|
|
||||||
|
const btsp = async () => {
|
||||||
|
const list = getAllExpansions()
|
||||||
|
for (const i of list) {
|
||||||
|
const expansion = fetchExpansion(i)
|
||||||
|
|
||||||
|
|
||||||
|
await fs.mkdir(`${endpoint}/${expansion.code}/`, {recursive: true})
|
||||||
|
await fs.writeFile(`${endpoint}/${expansion.code}/index.json`, JSON.stringify(expansionToExpansionSingle(expansion, lang)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
btsp()
|
@ -40,7 +40,7 @@ export function isSetAvailable(set: Set, lang: Langs) {
|
|||||||
export function setToSetSimple(set: Set, lang: Langs): SetSimple {
|
export function setToSetSimple(set: Set, lang: Langs): SetSimple {
|
||||||
return {
|
return {
|
||||||
code: set.code,
|
code: set.code,
|
||||||
name: set.name[lang],
|
name: typeof set.name === "string" ? set.name : set.name[lang],
|
||||||
total: set.cardCount.total
|
total: set.cardCount.total
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user