Feat: Add card list and top structure

This commit is contained in:
globuzma 2024-12-05 17:08:50 +01:00
parent 8e33dd45fe
commit eec6c6bfe8
19 changed files with 994 additions and 24 deletions

View file

@ -33,7 +33,7 @@ try {
for (const set of sets.data) {
if(!preUpdateSetIds.includes(set.id)){
const addingSetQuery = await client.query('INSERT INTO set(id, name_en, code, set_type, released_at, icon_svg_uri) VALUES($1, $2, $3, $4, $5, $6)', [set.id, set.name, set.code, set.set_type, set.released_at, set.icon_svg_uri])
const addingSetQuery = await client.query('INSERT INTO set(id, name_en, sanitized_name, code, set_type, released_at, icon_svg_uri) VALUES($1, $2, $3, $4, $5, $6, $7)', [set.id, set.name, set.name.replace(/[^a-zA-Z0-9]/gim,"-").toLowerCase(), set.code, set.set_type, set.released_at, set.icon_svg_uri])
}
}
@ -54,6 +54,27 @@ try {
// For each card check if we need to upload it to the database
for (const carte of scryfallData) {
if(!preUpdateCardsIds.includes(carte.id)){
let type = null
const card_type = carte.type_line.toLowerCase()
if(card_type.includes("creature")){
type = "creature"
} else if (card_type.includes("planeswalker")) {
type = "planeswalker"
} else if (card_type.includes("artifact")) {
type = "artifact"
} else if (card_type.includes("instant")) {
type = "instant"
} else if (card_type.includes("enchantment")) {
type = "enchantment"
} else if (card_type.includes("sorcery")) {
type = "sorcery"
} else if (card_type.includes("land")) {
type = "land"
}
if(carte.printed_name == undefined) {
// If the card doesn't have a french name, print it to the console and skip
@ -65,7 +86,7 @@ try {
}
// Add the card to the database
const addingCardsQuery = await client.query('INSERT INTO carte(id, name_en, name_fr, released_at, small_image, normal_image, mana_cost, cmc, type_line_en, type_line_fr, oracle_text_en, oracle_text_fr, power, toughness, colors, keywords, set_id, rarity, cardmarket_uri) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19)', [carte.id, carte.name, carte.printed_name, carte.released_at, carte.image_uris.small, carte.image_uris.normal, carte.mana_cost, carte.cmc, carte.type_line, carte.printed_type_line, carte.oracle_text, carte.printed_text, carte.power, carte.toughness, carte.colors, carte.keywords, carte.set_id, carte.rarity, carte.purchase_uris?.cardmarket])
const addingCardsQuery = await client.query('INSERT INTO carte(id, name_en, name_fr, released_at, small_image, normal_image, mana_cost, cmc, type_line_en, type_line_fr, oracle_text_en, oracle_text_fr, power, toughness, colors, keywords, set_id, rarity, cardmarket_uri, type, sanitized_name) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21)', [carte.id, carte.name, carte.printed_name, carte.released_at, carte.image_uris.small, carte.image_uris.normal, carte.mana_cost, carte.cmc, carte.type_line, carte.printed_type_line, carte.oracle_text, carte.printed_text, carte.power, carte.toughness, carte.color_identity, carte.keywords, carte.set_id, carte.rarity, carte.purchase_uris?.cardmarket, type, carte.name.replace(/[^a-zA-Z0-9]/gim,"-").toLowerCase()])
total_inserted = total_inserted + 1
} else {
total_skipped = total_skipped + 1