Feat: Add creating decks
This commit is contained in:
parent
7145906862
commit
aaa0bee853
26 changed files with 1279 additions and 180 deletions
|
@ -61,20 +61,36 @@ async function createJson() {
|
|||
include: {
|
||||
sets: {
|
||||
include: {
|
||||
cards: true
|
||||
cards: {
|
||||
include: {
|
||||
decks: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
decks: true
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
let bsets_export = []
|
||||
let all_cards = []
|
||||
bsets.forEach((bset) => {
|
||||
let icons = []
|
||||
let set_codes = []
|
||||
bset.sets.forEach((set) => {
|
||||
all_cards = [...all_cards, ...set.cards]
|
||||
icons.push(set.icon_svg_uri)
|
||||
set_codes.push(set.code)
|
||||
let cards_temp = set.cards
|
||||
for(let i = 0; i < cards_temp.length; i++){
|
||||
cards_temp[i].bset_id = bset.id
|
||||
}
|
||||
all_cards = [...all_cards, ...cards_temp]
|
||||
})
|
||||
bsets_export.push({name: bset.name, sanitized_name: bset.sanitized_name, icons, set_codes})
|
||||
})
|
||||
|
||||
|
||||
writeFileSync(import.meta.dirname + "/json/misc/bsets.json",JSON.stringify(bsets_export), 'utf8')
|
||||
|
||||
|
||||
|
||||
|
@ -86,23 +102,43 @@ async function createJson() {
|
|||
const colorsData = {"mono-white": structuredClone(type_dict),"mono-black": structuredClone(type_dict),"mono-blue": structuredClone(type_dict),"mono-green": structuredClone(type_dict),"mono-red": structuredClone(type_dict),"colorless": structuredClone(type_dict),"multicolor": structuredClone(type_dict)}
|
||||
|
||||
for (const card of all_cards) {
|
||||
let card_object = {
|
||||
"name": card.name,
|
||||
"sanitized_name": card.sanitized_name,
|
||||
"normal_image": card.normal_image,
|
||||
"small_image": card.small_image,
|
||||
"type": card.type,
|
||||
"layout": card.layout,
|
||||
"price": card.price,
|
||||
"cardmarket_uri": card.cardmarket_uri,
|
||||
"nbr_decks": card.decks.length,
|
||||
"total_decks": bsets.find((bset) => bset.id == card.bset_id).decks.length,
|
||||
"colors": card.colors,
|
||||
}
|
||||
|
||||
card_object.percent_decks = (card_object.total_decks != 0) ? parseInt(10000 * (card_object.nbr_decks / card_object.total_decks)) / 100 : 0
|
||||
|
||||
const colorName = getColorName(card.colors)
|
||||
if (card.type == "land") {
|
||||
if (colorName != "") {
|
||||
landsData[colorName].push(card)
|
||||
landsData[colorName].push(card_object)
|
||||
}
|
||||
}
|
||||
|
||||
if (card.colors.length <= 1) {
|
||||
colorsData[colorName][card.type].push(card)
|
||||
colorsData[colorName][card.type].push(card_object)
|
||||
} else {
|
||||
colorsData["multicolor"][card.type].push(card)
|
||||
colorsData["multicolor"][card.type].push(card_object)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (const index of Object.keys(colorsData)) {
|
||||
writeFileSync(import.meta.dirname + "/json/top/" + index + ".json",JSON.stringify(colorsData[index]), 'utf8')
|
||||
let JSONToWrite = colorsData[index]
|
||||
for (const key of Object.keys(JSONToWrite)){
|
||||
JSONToWrite[key].sort((a,b) => b.percent_decks - a.percent_decks)
|
||||
}
|
||||
writeFileSync(import.meta.dirname + "/json/top/" + index + ".json",JSON.stringify(JSONToWrite), 'utf8')
|
||||
}
|
||||
|
||||
const landsJsonRoot = [[],[],[],[]]
|
||||
|
@ -114,7 +150,9 @@ async function createJson() {
|
|||
} else {
|
||||
landsJsonRoot[3].push({ "name": colorName, "count": landsData[colorName].length})
|
||||
}
|
||||
writeFileSync(import.meta.dirname + "/json/lands/" + colorName + ".json",JSON.stringify(landsData[colorName]), 'utf8')
|
||||
let JSONToWrite = landsData[colorName]
|
||||
JSONToWrite.sort((a,b) => b.percent_decks - a.percent_decks)
|
||||
writeFileSync(import.meta.dirname + "/json/lands/" + colorName + ".json",JSON.stringify(JSONToWrite), 'utf8')
|
||||
}
|
||||
writeFileSync(import.meta.dirname + "/json/lands/lands.json",JSON.stringify(landsJsonRoot), 'utf8')
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue