1
0
mirror of https://github.com/tcgdex/cards-database.git synced 2025-04-23 19:32:11 +00:00
Florian Bouillon 0d2a757cae
base DB
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2020-02-03 15:18:40 +01:00

87 lines
1.6 KiB
TypeScript

import { Page } from "puppeteer-core"
enum Rarity {
Common,
Uncommon,
Rare,
// Rare holo
RareHolo,
RareHoloEX,
RareHoloGX,
RareHoloLvX,
// Rare other
RareUltra,
RarePrime,
RareACE,
RareBREAK,
RareRainbow,
// Other
LEGEND,
}
namespace Rarity {
export async function getRarity(tab: Page): Promise<Rarity> {
const rarity = await tab.$eval(".stats-footer span", (el: HTMLElement) => {
const arr = el.innerText.split(" ")
arr.shift()
return arr.join(" ")
})
return getLocalRarity(rarity)
}
export function getLocalRarity(str?: string): Rarity {
switch (str) {
// Handle common Rarity errors
case undefined:
case "":
console.warn(`Rarity is (${str}) returning Common`)
case "Common":
return Rarity.Common
case "Uncommon":
return Rarity.Uncommon
// Rare
case "Rare":
case "Rare Secret":
case "Rare Promo":
case "Shining":
return Rarity.Rare
// Rare Holo
case "Rare Holo":
return Rarity.RareHolo
case "Rare Holo EX":
return Rarity.RareHoloEX
case "Rare Holo GX":
return Rarity.RareHoloGX
case "Rare Holo Lv.X":
return Rarity.RareHoloLvX
// Rare Other
case "Rare Ultra":
return Rarity.RareUltra
case "Rare Prime":
return Rarity.RarePrime
case "Rare ACE":
return Rarity.RareACE
case "Rare BREAK":
return Rarity.RareBREAK
case "Rainbow Rare":
case "Rare Rainbow":
return Rarity.RareRainbow
// LEGEND
case "LEGEND":
return Rarity.LEGEND
default:
throw new Error(`Rarity not known (${str})`)
}
}
}
export default Rarity