@@ -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