feat(aklive2d): added ability to store latest dynchar info from offical website
This commit is contained in:
47
libs/offical_update.js
Normal file
47
libs/offical_update.js
Normal file
@@ -0,0 +1,47 @@
|
||||
import jsdom from 'jsdom';
|
||||
import fetch from "node-fetch";
|
||||
import path from "path";
|
||||
import { writeSync } from "./file.js";
|
||||
|
||||
export default async function () {
|
||||
const f = await fetch("https://ak.hypergryph.com/archive/dynamicCompile/")
|
||||
const html_text = await f.text()
|
||||
|
||||
const dom = new jsdom.JSDOM(html_text);
|
||||
const rows = dom.window.document.body.querySelector(".dynList").querySelectorAll(".row")
|
||||
|
||||
const dict = {}
|
||||
|
||||
for (const row of rows) {
|
||||
const date = row.querySelector(".date").textContent.trim()
|
||||
const operators = []
|
||||
|
||||
const charCards = row.querySelectorAll(".charCard")
|
||||
|
||||
for (const charCard of charCards) {
|
||||
const color = charCard.style.color
|
||||
const codename = {
|
||||
"zh-CN": charCard.querySelector(".info").querySelector(".name").querySelector(".text").textContent.trim(),
|
||||
"en-US": charCard.querySelector(".info").querySelector(".codename").textContent.trim()
|
||||
}
|
||||
const rawType = charCard.querySelector(".typeIcon").querySelector("svg").querySelector("use").getAttribute("xlink:href")
|
||||
|
||||
let type;
|
||||
switch (rawType) {
|
||||
case "#skin-type-icon-hanger":
|
||||
type = "skin"
|
||||
break;
|
||||
case "#skin-type-icon-promotion2":
|
||||
type = "elite2"
|
||||
break;
|
||||
}
|
||||
operators.push({
|
||||
color,
|
||||
codename,
|
||||
type
|
||||
})
|
||||
}
|
||||
dict[date] = operators
|
||||
}
|
||||
writeSync(JSON.stringify(dict, null, 4), path.join('offical_update.json'))
|
||||
}
|
||||
Reference in New Issue
Block a user