Skip to content

Commit c3d844f

Browse files
authored
Merge pull request #925 from WorldRobertProject/PerfectShiningWorkaround
初稿譜面を最終稿譜面と別に扱うようにした
2 parents ea0a685 + 78d9ca6 commit c3d844f

File tree

1 file changed

+39
-13
lines changed
  • OngekiScoreLog/resources/assets/js/bookmarklets

1 file changed

+39
-13
lines changed

OngekiScoreLog/resources/assets/js/bookmarklets/getScore.ts

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,23 @@ import * as qs from 'qs';
2020
let result = await axios.get(API_URL + "/music/samename");
2121
return result.data;
2222
}
23+
24+
// 曲名/アーティスト/ジャンルが同じ譜面の識別用アーティストを返す
25+
static async getArtistOfSameNameAndGenre(name: string, level: number) {
26+
// FIXME: 曲名ベタ打ち そのうち改善したいね
27+
if (name == "Perfect Shining!!") {
28+
if (level === 0) {
29+
return 'ロケテスト譜面';
30+
} else {
31+
return '通常譜面';
32+
}
33+
}
34+
35+
return "";
36+
}
2337
}
2438

39+
2540
class PaymentStatus {
2641
private isStandardPlan: boolean = false;
2742
private isPremiumPlan: boolean = false;
@@ -195,7 +210,6 @@ import * as qs from 'qs';
195210
if (this.sameNameList === null) {
196211
this.sameNameList = await SameNameMusicList.get();
197212
}
198-
199213
var parseHTML = $.parseHTML(html);
200214
var $innerContainer3 = $(parseHTML).find(".container3").find("div");
201215

@@ -214,14 +228,20 @@ import * as qs from 'qs';
214228

215229
private async parseSingleMusic(element, parentElement, difficulty, genre) {
216230
let name = $(element).find(".music_label").text();
231+
let level = +($(element).find(".score_level").text().replace("+", ".5"));
217232
let artist = '';
233+
218234
if (this.sameNameList.indexOf(name) !== -1) {
219-
console.log("曲名が重複している楽曲名: " + name + ' / ' + genre + ' / ' + difficulty);
235+
console.log("曲名が重複している楽曲名: " + name + ' / Lv' + level + ' / ' + genre + ' / ' + difficulty);
220236
await sleep(SLEEP_MSEC);
221-
let response = await axios.get(NET_URL + '/record/musicDetail/?idx=' + encodeURIComponent($(parentElement).find("[name=idx]").prop("value")));
222-
let parse = $.parseHTML(response.data);
223-
artist = $(parse).find("div.m_5.f_13.break").text().trim();
224-
artist = artist.substring(0, artist.indexOf('\n'));
237+
238+
artist = await SameNameMusicList.getArtistOfSameNameAndGenre(name, level);
239+
if (artist === "") {
240+
let response = await axios.get(NET_URL + '/record/musicDetail/?idx=' + encodeURIComponent($(parentElement).find("[name=idx]").prop("value")));
241+
let parse = $.parseHTML(response.data);
242+
artist = $(parse).find("div.m_5.f_13.break").text().trim();
243+
artist = artist.substring(0, artist.indexOf('\n'));
244+
}
225245
console.log(artist);
226246
}
227247

@@ -236,7 +256,7 @@ import * as qs from 'qs';
236256
name,
237257
difficulty,
238258
genre,
239-
+($(element).find(".score_level").text().replace("+", ".5")),
259+
level,
240260
+$($(element).find(".score_value")[0]).text().replace(/,/g, "").replace(/%/g, ""),
241261
+$($(element).find(".score_value")[1]).text().replace(/,/g, ""),
242262
+$($(element).find(".score_value")[2]).text().replace(/,/g, ""),
@@ -401,14 +421,20 @@ import * as qs from 'qs';
401421
let artist = "";
402422
let platinumScore = +$($(value).find(".platinum_score_text_block")).text().replace(/,/g, "").split("/")[0];
403423
let star = +($($(value).find(".platinum_high_score_star_block").find(".f_b")).text());
424+
404425
if (sameNameList.indexOf(name) !== -1) {
405-
console.log("曲名が重複している楽曲名: " + name);
426+
let level = +($(value).find(".score_level").text().replace("+", ".5"));
427+
console.log("曲名が重複している楽曲名: " + name + ' / Lv' + level + ' / ' + genre + ' / ' + difficulty);
406428
await sleep(SLEEP_MSEC);
407-
let result = await axios.get(NET_URL + '/record/musicDetail/?idx=' + encodeURIComponent($(value).find("[name=idx]").prop("value")));
408-
let parse = $.parseHTML(result.data);
409-
genre = $(parse).find("div.t_r.f_12.main_color").text().trim();
410-
artist = $(parse).find("div.m_5.f_13.break").text().trim();
411-
artist = artist.substring(0, artist.indexOf('\n'));
429+
430+
artist = await SameNameMusicList.getArtistOfSameNameAndGenre(name, level);
431+
if (artist === "") {
432+
let result = await axios.get(NET_URL + '/record/musicDetail/?idx=' + encodeURIComponent($(value).find("[name=idx]").prop("value")));
433+
let parse = $.parseHTML(result.data);
434+
genre = $(parse).find("div.t_r.f_12.main_color").text().trim();
435+
artist = $(parse).find("div.m_5.f_13.break").text().trim();
436+
artist = artist.substring(0, artist.indexOf('\n'));
437+
}
412438
console.log(genre + ' / ' + artist);
413439
}
414440

0 commit comments

Comments
 (0)