add recent wacca charts

This also required fixing the script to respect existing songIDs and
chartIDs.
This commit is contained in:
Christopher Cooper
2022-02-04 11:46:14 +00:00
committed by zkldi
parent 02efe6f95a
commit 0ded6da53f
5 changed files with 704 additions and 15 deletions
@@ -17661,5 +17661,532 @@
"versions": [
"reverse"
]
},
{
"chartID": "77edf990ef8e7e3280459cad2d459df5b7b7c034",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "11",
"levelNum": 11.1,
"playtype": "Single",
"rgcID": null,
"songID": 342,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "e4d13130b92d1e7c8a6f6bed4970d7f8667e19aa",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "8",
"levelNum": 8,
"playtype": "Single",
"rgcID": null,
"songID": 342,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "55c6bb6dbfe3571fbf19adfacce57c3aeaa1c7a4",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "3",
"levelNum": 3,
"playtype": "Single",
"rgcID": null,
"songID": 342,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "1de2f7d2b3b11e9a77c9694a88c6a4b5d7ea68e1",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "13",
"levelNum": 13.5,
"playtype": "Single",
"rgcID": null,
"songID": 343,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "46d05a10c25829abe5af400dfb3581762171b08b",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "10",
"levelNum": 10.5,
"playtype": "Single",
"rgcID": null,
"songID": 343,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "851aa89816d2ef3a7a9ffb9518429970df73299e",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "4",
"levelNum": 4,
"playtype": "Single",
"rgcID": null,
"songID": 343,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "6e9563006e087c39da9148a43733181403e7a59e",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "12+",
"levelNum": 12.7,
"playtype": "Single",
"rgcID": null,
"songID": 344,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "cecc3acc951afd92dd46f3d9c9e6d9d43b1abd33",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "8",
"levelNum": 8.6,
"playtype": "Single",
"rgcID": null,
"songID": 344,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "9b9e955f4ee55e12c30146da526aebd0f890ccfc",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "3",
"levelNum": 3,
"playtype": "Single",
"rgcID": null,
"songID": 344,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "502ab5f1c1a5647aa6539f5e25862f5f6e28eb60",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "12",
"levelNum": 12.6,
"playtype": "Single",
"rgcID": null,
"songID": 345,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "b693625992ae937272984d96ada6966fd55419c0",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "8+",
"levelNum": 8.7,
"playtype": "Single",
"rgcID": null,
"songID": 345,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "ab2837bcf61022204c034b222184e4bede46b5d2",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "3",
"levelNum": 3,
"playtype": "Single",
"rgcID": null,
"songID": 345,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "290ca37ff14eb6d840e24e579cad33ab2476df49",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "12",
"levelNum": 12.4,
"playtype": "Single",
"rgcID": null,
"songID": 346,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "629b18ed41270f44bd8c20d51f378e23f9be836a",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "8",
"levelNum": 8.3,
"playtype": "Single",
"rgcID": null,
"songID": 346,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "385d60dcfde335a831672d5a2768dddf2c687899",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "3",
"levelNum": 3,
"playtype": "Single",
"rgcID": null,
"songID": 346,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "6df01a0b4b12dfd490b6773de9f127bad0b70a8f",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "13+",
"levelNum": 13.7,
"playtype": "Single",
"rgcID": null,
"songID": 347,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "1a3d9c2ef04d645e65411d2482e0790eed94fd18",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "11+",
"levelNum": 11.7,
"playtype": "Single",
"rgcID": null,
"songID": 347,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "60b50db4aac2185da5be2958a2d06d455438b2bf",
"data": {
"isHot": true
},
"difficulty": "INFERNO",
"isPrimary": true,
"level": "14",
"levelNum": 14.2,
"playtype": "Single",
"rgcID": null,
"songID": 347,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "99a9418b2656f664aed6374731aac60a625ec891",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "8",
"levelNum": 8,
"playtype": "Single",
"rgcID": null,
"songID": 347,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "646deb78aced40cae47a8844feead5fc2504532c",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "13",
"levelNum": 13.2,
"playtype": "Single",
"rgcID": null,
"songID": 348,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "356ca41312750ffd7d5572505b339de0119457e4",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "10+",
"levelNum": 10.7,
"playtype": "Single",
"rgcID": null,
"songID": 348,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "7e122f2fce0b362808b8614c48438ff3ab7cd256",
"data": {
"isHot": true
},
"difficulty": "INFERNO",
"isPrimary": true,
"level": "14",
"levelNum": 14.1,
"playtype": "Single",
"rgcID": null,
"songID": 348,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "a3a3d55693f2ceb25296dae8563ed086e7636ab4",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "4",
"levelNum": 4,
"playtype": "Single",
"rgcID": null,
"songID": 348,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "4c7eb4525c496743d038ea74e538871560920cb1",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "13",
"levelNum": 13.4,
"playtype": "Single",
"rgcID": null,
"songID": 349,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "a33cb31903cb4348da34f27675d609c6ce8bb90b",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "10",
"levelNum": 10.6,
"playtype": "Single",
"rgcID": null,
"songID": 349,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "2af6942f94f9f3ebc43e2e2312db0bfe44d2303d",
"data": {
"isHot": true
},
"difficulty": "INFERNO",
"isPrimary": true,
"level": "14",
"levelNum": 14.1,
"playtype": "Single",
"rgcID": null,
"songID": 349,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "d2340de1b9b6e5e3c1ace41dde588ea316811943",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "3",
"levelNum": 3,
"playtype": "Single",
"rgcID": null,
"songID": 349,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "eda02d064b2f67f37648c971eadec3a05f026107",
"data": {
"isHot": true
},
"difficulty": "EXPERT",
"isPrimary": true,
"level": "13",
"levelNum": 13.4,
"playtype": "Single",
"rgcID": null,
"songID": 350,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "bf8da4215fdcbeb68c34ee186c770251dbab1bf3",
"data": {
"isHot": true
},
"difficulty": "HARD",
"isPrimary": true,
"level": "10+",
"levelNum": 10.8,
"playtype": "Single",
"rgcID": null,
"songID": 350,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "7e0cbfbb24bff0b8a61a5d131a6699d9f9b0fb4e",
"data": {
"isHot": true
},
"difficulty": "INFERNO",
"isPrimary": true,
"level": "14",
"levelNum": 14.1,
"playtype": "Single",
"rgcID": null,
"songID": 350,
"tierlistInfo": {},
"versions": [
"reverse"
]
},
{
"chartID": "57d4197ba25853a3fad5841294b78c5253a0cfeb",
"data": {
"isHot": true
},
"difficulty": "NORMAL",
"isPrimary": true,
"level": "4",
"levelNum": 4,
"playtype": "Single",
"rgcID": null,
"songID": 350,
"tierlistInfo": {},
"versions": [
"reverse"
]
}
]
+117
View File
@@ -4431,5 +4431,122 @@
"id": 341,
"searchTerms": [],
"title": "Rainbow Dream"
},
{
"altTitles": [],
"artist": "ギルガメッシュ(CV:大塚剛央)、千極兆司(CV:立花慎之介)、緋野天魔(CV:小野賢章)、神水鶴久遠(CV:広瀬裕也)、皇麗夢(CV:豊永利行)",
"data": {
"artistJP": "ギルガメッシュ(オオツカタケオ)、センゴクチョウジ(タチバナシンノスケ)、ヒノテンマ(オノケンショウ)、カミツルクオン(ヒロセユウヤ)、スメラキレイム(トヨナガトシユキ)",
"displayVersion": "reverse",
"genre": "バラエティ",
"titleJP": "ファムファタール"
},
"id": 342,
"searchTerms": [],
"title": "ファムファタール"
},
{
"altTitles": [],
"artist": "餓鬼レンジャー feat. 梅田サイファー",
"data": {
"artistJP": "ガキレンジャーフィートウメダサイファー",
"displayVersion": "reverse",
"genre": "バラエティ",
"titleJP": "アゲナゲン"
},
"id": 343,
"searchTerms": [],
"title": "アゲナゲン"
},
{
"altTitles": [],
"artist": "ゆうゆ",
"data": {
"artistJP": "ユウユ",
"displayVersion": "reverse",
"genre": "ボカロ",
"titleJP": "テンガク"
},
"id": 344,
"searchTerms": [],
"title": "天樂"
},
{
"altTitles": [],
"artist": "supercell",
"data": {
"artistJP": "スーパーセル",
"displayVersion": "reverse",
"genre": "ボカロ",
"titleJP": "メルト"
},
"id": 345,
"searchTerms": [],
"title": "メルト"
},
{
"altTitles": [],
"artist": "亜沙",
"data": {
"artistJP": "アサ",
"displayVersion": "reverse",
"genre": "ボカロ",
"titleJP": "ヨシワララメント"
},
"id": 346,
"searchTerms": [],
"title": "吉原ラメント"
},
{
"altTitles": [],
"artist": "REDALiCE",
"data": {
"artistJP": "レッドアリス",
"displayVersion": "reverse",
"genre": "TANO*C(オリジナル)",
"titleJP": "クリムゾンテイオウ"
},
"id": 347,
"searchTerms": [],
"title": "クリムゾン帝王"
},
{
"altTitles": [],
"artist": "aran",
"data": {
"artistJP": "アラン",
"displayVersion": "reverse",
"genre": "TANO*C(オリジナル)",
"titleJP": "エフェメラ"
},
"id": 348,
"searchTerms": [],
"title": "EPHMR"
},
{
"altTitles": [],
"artist": "Laur",
"data": {
"artistJP": "ラウル",
"displayVersion": "reverse",
"genre": "TANO*C(オリジナル)",
"titleJP": "デンジャラアアアアス ジャングル"
},
"id": 349,
"searchTerms": [],
"title": "DANGEROOOOUS JUNGLE"
},
{
"altTitles": [],
"artist": "Kobaryo",
"data": {
"artistJP": "コバリョー",
"displayVersion": "reverse",
"genre": "TANO*C(オリジナル)",
"titleJP": "ディメンション ハッカー"
},
"id": 350,
"searchTerms": [],
"title": "Dimension Hacker"
}
]
+2
View File
@@ -30,8 +30,10 @@
"deepmerge": "^4.2.2",
"fast-json-stable-hash": "^1.0.3",
"glob": "^7.2.0",
"html-entities": "^2.3.2",
"mei-logger": "^1.0.1",
"monk": "^7.3.4",
"node-fetch": "2.6.7",
"prudence": "^0.9.7",
"tachi-common": "0.5.12",
"ts-node": "^10.4.0",
+35
View File
@@ -14,8 +14,10 @@ specifiers:
eslint-plugin-prettier: ^4.0.0
fast-json-stable-hash: ^1.0.3
glob: ^7.2.0
html-entities: ^2.3.2
mei-logger: ^1.0.1
monk: ^7.3.4
node-fetch: 2.6.7
prettier: ^2.5.1
prudence: ^0.9.7
tachi-common: 0.5.12
@@ -31,8 +33,10 @@ dependencies:
deepmerge: 4.2.2
fast-json-stable-hash: 1.0.3
glob: 7.2.0
html-entities: 2.3.2
mei-logger: 1.0.1_ts-node@10.4.0
monk: 7.3.4
node-fetch: 2.6.7
prudence: 0.9.7
tachi-common: 0.5.12
ts-node: 10.4.0_40146b36d18138e3202fbb722e5f65e4
@@ -1603,6 +1607,10 @@ packages:
type-fest: 0.8.1
dev: false
/html-entities/2.3.2:
resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==}
dev: false
/html-escaper/2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
dev: false
@@ -2188,6 +2196,18 @@ packages:
resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=}
dev: true
/node-fetch/2.6.7:
resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
engines: {node: 4.x || >=6.0.0}
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
dependencies:
whatwg-url: 5.0.0
dev: false
/node-preload/0.2.1:
resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==}
engines: {node: '>=8'}
@@ -2954,6 +2974,10 @@ packages:
punycode: 2.1.1
dev: false
/tr46/0.0.3:
resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=}
dev: false
/triple-beam/1.3.0:
resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==}
dev: false
@@ -3097,6 +3121,17 @@ packages:
extsprintf: 1.3.0
dev: false
/webidl-conversions/3.0.1:
resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=}
dev: false
/whatwg-url/5.0.0:
resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=}
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
dev: false
/which-boxed-primitive/1.0.2:
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
dependencies:
@@ -2,7 +2,7 @@ const { parse } = require("csv-parse/sync");
const fs = require("fs");
const fetch = require("node-fetch");
const { Command } = require("commander");
const { CreateChartID } = require("../util");
const { CreateChartID, ReadCollection } = require("../util");
const path = require("path");
const { decode } = require("html-entities");
const logger = require("../logger");
@@ -51,6 +51,13 @@ const STARTS = {
};
(async () => {
const existingSongs = new Map(ReadCollection("songs-wacca.json").map(e =>
[e.title, e.id]));
const existingCharts = new Map(ReadCollection("charts-wacca.json").map(e =>
// We need to combine songID and difficulty for the key,
// this seems like the simplest way.
[`${e.songID} ${e.difficulty}`, e.chartID]));
const datum = await fetch("https://wacca.marv.jp/music/search.php", {
method: "POST",
headers: {
@@ -62,7 +69,7 @@ const STARTS = {
const songs = [];
const charts = [];
let songID = 1;
let songID = Math.max(...existingSongs.values()) + 1;
for (const data of datum) {
let prettiedTitle = decode(data.title.display.replace(/ /g, " ")).trim();
@@ -105,8 +112,14 @@ const STARTS = {
continue;
}
let thisSongID = songID;
if (existingSongs.has(prettiedTitle)) {
thisSongID = existingSongs.get(prettiedTitle);
} else {
songID++;
}
songs.push({
id: songID,
id: thisSongID,
title: prettiedTitle,
artist: decode(data.artist.display).trim(),
searchTerms: [],
@@ -129,9 +142,11 @@ const STARTS = {
continue;
}
const chartID = existingCharts.get(`${thisSongID} ${diffName}`) || CreateChartID();
charts.push({
songID,
chartID: CreateChartID(),
songID: thisSongID,
chartID: chartID,
rgcID: null,
level,
levelNum,
@@ -145,16 +160,9 @@ const STARTS = {
versions: ["reverse"],
});
}
songID++;
}
fs.writeFileSync(
path.resolve(__dirname, "../../collections/charts-wacca.json"),
JSON.stringify(charts, null, "\t")
);
fs.writeFileSync(
path.resolve(__dirname, "../../collections/songs-wacca.json"),
JSON.stringify(songs, null, "\t")
);
fs.writeFileSync(path.resolve(__dirname, "../../collections/charts-wacca.json"), JSON.stringify(charts, null, "\t"));
fs.writeFileSync(path.resolve(__dirname, "../../collections/songs-wacca.json"), JSON.stringify(songs, null, "\t"));
})();