diff --git a/app/app/account/profile/decks/page.tsx b/app/app/account/profile/decks/page.tsx index ce0f6ff..fff5bd9 100644 --- a/app/app/account/profile/decks/page.tsx +++ b/app/app/account/profile/decks/page.tsx @@ -301,7 +301,7 @@ export default function Signin() {
setDeckName(e.target.value)} placeholder="Nom du deck" /> - + setDeckUrl(e.target.value)} placeholder="URL du Deck (Facultatif)" /> + Inscription } { @@ -443,7 +443,6 @@ export function NavigationBar ({ isLoggedIn, username}: NavigationProps) { <> Decks - {username} diff --git a/app/tools/createJson.mjs b/app/tools/createJson.mjs index d8bbfbc..033ddc1 100644 --- a/app/tools/createJson.mjs +++ b/app/tools/createJson.mjs @@ -1,5 +1,6 @@ import { PrismaClient } from '@prisma/client' import { writeFileSync } from 'fs' +import { performance } from 'perf_hooks' const db = new PrismaClient() @@ -48,24 +49,11 @@ function getColorName(colorArray) { return "" } -// I need to create -// -// Commanders -// top all -// top by colors -// -// bsets -// Commanders -// -// -// Lands -// lands.json -// All jsons lands from colors -// Types - async function createJson() { - console.log("Fetching data...") + const start = performance.now() console.log(process.env.NODE_ENV) + + console.log("Fetching data...") const bsets = await db.bset.findMany({ relationLoadStrategy: "join", include: { @@ -92,6 +80,7 @@ async function createJson() { }) + console.log("Creating stats...") let bsets_list_export = [] let all_cards = [] const commanderData = {"top": []} @@ -151,36 +140,32 @@ async function createJson() { bset_cards_data_export[bset.sanitized_name][card.type].push(card_object) if(card.can_be_commander) { - card_object.total_decks = bset.decks.length - card_object.nbr_decks = card.decks_as_commander != undefined ? card.decks_as_commander.length : 0 - card_object.percent_decks = (card_object.total_decks != 0) ? parseInt(10000 * (card_object.nbr_decks / card_object.total_decks)) / 100 : 0 - bset_cards_data_export[bset.sanitized_name]["commander"].push(card_object) + let commander_card_object = structuredClone(card_object) + commander_card_object.total_decks = bset.decks.length + commander_card_object.nbr_decks = card.decks_as_commander != undefined ? card.decks_as_commander.length : 0 + commander_card_object.percent_decks = (commander_card_object.total_decks != 0) ? parseInt(10000 * (commander_card_object.nbr_decks / commander_card_object.total_decks)) / 100 : 0 + bset_cards_data_export[bset.sanitized_name]["commander"].push(commander_card_object) const colorName = getColorName(card.color_identity) if(colorName != "") { - commanderData[colorName].push(card_object) - commanderData["top"].push(card_object) + commanderData[colorName].push(commander_card_object) + commanderData["top"].push(commander_card_object) } } } }) + console.log("Exporting stats...") if(process.env.NODE_ENV == "production") { - console.log('Production detected !') writeFileSync("/app/data/misc/bsets.json",JSON.stringify(bsets_list_export), 'utf8') } else { writeFileSync(import.meta.dirname + "/json/misc/bsets.json",JSON.stringify(bsets_list_export), 'utf8') } - - //for (const card of all_cards) { - //} - for (const index of Object.keys(commanderData)) { - let JSONToWrite = commanderData[index].sort((a,b) => b.percent_decks - a.percent_decks) + let JSONToWrite = commanderData[index].sort((a,b) => b.nbr_decks - a.nbr_decks) if(process.env.NODE_ENV == "production") { - console.log('Production detected !') writeFileSync("/app/data/commander/" + index + ".json",JSON.stringify(JSONToWrite), 'utf8') } else { writeFileSync(import.meta.dirname + "/json/commander/" + index + ".json",JSON.stringify(JSONToWrite), 'utf8') @@ -190,15 +175,16 @@ async function createJson() { for (const index of Object.keys(bset_cards_data_export)) { let JSONToWrite = bset_cards_data_export[index] for (const type of Object.keys(JSONToWrite)) { - JSONToWrite[type] = JSONToWrite[type].sort((a,b) => b.percent_decks - a.percent_decks) + JSONToWrite[type] = JSONToWrite[type].sort((a,b) => b.nbr_decks - a.nbr_decks) } if(process.env.NODE_ENV == "production") { - console.log('Production detected !') writeFileSync("/app/data/bset/" + index + ".json",JSON.stringify(JSONToWrite), 'utf8') } else { writeFileSync(import.meta.dirname + "/json/bset/" + index + ".json",JSON.stringify(JSONToWrite), 'utf8') } } + const end = performance.now() + console.log(`Time taken to generate stats is ${end - start}ms.`); } createJson() diff --git a/app/tools/updateDatabase.mjs b/app/tools/updateDatabase.mjs index 3dc5526..1d62578 100644 --- a/app/tools/updateDatabase.mjs +++ b/app/tools/updateDatabase.mjs @@ -9,7 +9,7 @@ const { Client } = pg console.log("Fetching latest Scryfall Bulk Data URL...") const bulkDataApi = await fetch('https://api.scryfall.com/bulk-data') const bulkDataApiJson = await bulkDataApi.json() -const bulkDataDownloadUrl = bulkDataApiJson.data.filter((obj) => obj.type == "unique_artwork")[0].download_uri +const bulkDataDownloadUrl = bulkDataApiJson.data.filter((obj) => obj.type == "default_cards")[0].download_uri console.log("Downloading latest Scryfall Bulk Data...") const stream = fs.createWriteStream(import.meta.dirname + '/data/scryfall_data.json');