danoniplus 26.6.0 → 26.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/js/danoni_main.js CHANGED
@@ -4,12 +4,12 @@
4
4
  *
5
5
  * Source by tickle
6
6
  * Created : 2018/10/08
7
- * Revised : 2022/03/05
7
+ * Revised : 2022/04/10
8
8
  *
9
9
  * https://github.com/cwtickle/danoniplus
10
10
  */
11
- const g_version = `Ver 26.6.0`;
12
- const g_revisedDate = `2022/03/05`;
11
+ const g_version = `Ver 26.7.1`;
12
+ const g_revisedDate = `2022/04/10`;
13
13
  const g_alphaVersion = ``;
14
14
 
15
15
  // カスタム用バージョン (danoni_custom.js 等で指定可)
@@ -41,11 +41,11 @@ let g_localVersion2 = ``;
41
41
  */
42
42
  const current = _ => {
43
43
  if (document.currentScript) {
44
- return document.currentScript.src;
44
+ return encodeURI(document.currentScript.src);
45
45
  }
46
46
  const scripts = document.getElementsByTagName(`script`);
47
47
  const targetScript = scripts[scripts.length - 1];
48
- return targetScript.src;
48
+ return encodeURI(targetScript.src);
49
49
  };
50
50
  const g_rootPath = current().match(/(^.*\/)/)[0];
51
51
  const g_remoteFlg = g_rootPath.match(`^https://cwtickle.github.io/danoniplus/`) !== null;
@@ -2003,7 +2003,8 @@ const loadChartFile = async (_scoreId = g_stateObj.scoreId) => {
2003
2003
 
2004
2004
  const dosInput = document.querySelector(`#dos`);
2005
2005
  const divRoot = document.querySelector(`#divRoot`);
2006
- const queryDos = getQueryParamVal(`dos`) !== null ? `dos/${getQueryParamVal('dos')}.txt` : (document.querySelector(`#externalDos`)?.value ?? ``);
2006
+ const queryDos = getQueryParamVal(`dos`) !== null ?
2007
+ `dos/${getQueryParamVal('dos')}.txt` : encodeURI(document.querySelector(`#externalDos`)?.value ?? ``);
2007
2008
 
2008
2009
  if (dosInput === null && queryDos === ``) {
2009
2010
  makeWarningWindow(g_msgInfoObj.E_0023);
@@ -3017,16 +3018,14 @@ const headerConvert = _dosObj => {
3017
3018
  * 曲名(1行)の取得
3018
3019
  * @param {string} _musicName
3019
3020
  */
3020
- const getMusicNameSimple = _musicName => {
3021
- return _musicName.split(`<br>`).join(` `).split(`<nbr>`).join(``).split(`<dbr>`).join(` `);
3022
- };
3021
+ const getMusicNameSimple = _musicName => replaceStr(_musicName, g_escapeStr.musicNameSimple);
3023
3022
 
3024
3023
  /**
3025
3024
  * 曲名(複数行)の取得
3026
3025
  * @param {string} _musicName
3027
3026
  */
3028
3027
  const getMusicNameMultiLine = _musicName => {
3029
- const tmpName = _musicName.split(`<nbr>`).join(`<br>`).split(`<dbr>`).join(`<br>`).split(`<br>`);
3028
+ const tmpName = replaceStr(_musicName, g_escapeStr.musicNameMultiLine).split(`<br>`);
3030
3029
  return tmpName.length === 1 ? [tmpName[0], ``] : tmpName;
3031
3030
  };
3032
3031
 
@@ -6722,17 +6721,7 @@ const scoreConvert = (_dosObj, _scoreId, _preblankFrame, _dummyNo = ``,
6722
6721
  }
6723
6722
 
6724
6723
  // 矢印名からフリーズアロー名への変換
6725
- let frzName = g_keyObj[`chara${_keyCtrlPtn}`][j].replace(`leftdia`, `frzLdia`);
6726
- frzName = frzName.replace(`rightdia`, `frzRdia`);
6727
- frzName = frzName.replace(`left`, `frzLeft`);
6728
- frzName = frzName.replace(`down`, `frzDown`);
6729
- frzName = frzName.replace(`up`, `frzUp`);
6730
- frzName = frzName.replace(`right`, `frzRight`);
6731
- frzName = frzName.replace(`space`, `frzSpace`);
6732
- frzName = frzName.replace(`iyo`, `frzIyo`);
6733
- frzName = frzName.replace(`gor`, `frzGor`);
6734
- frzName = frzName.replace(`oni`, `foni`);
6735
-
6724
+ let frzName = replaceStr(g_keyObj[`chara${_keyCtrlPtn}`][j], g_escapeStr.frzName);
6736
6725
  if (frzName.indexOf(`frz`) === -1 && frzName.indexOf(`foni`) === -1) {
6737
6726
  if ((frzName.startsWith(`s`)) || frzName.startsWith(`t`) ||
6738
6727
  (frzName.startsWith(`a`) && !frzName.startsWith(`arrow`))) {
@@ -8684,22 +8673,10 @@ const MainInit = _ => {
8684
8673
  * @param _j 矢印の位置
8685
8674
  */
8686
8675
  const checkKeyUpFunc = {
8687
-
8688
- frzOFF: (_j) => {
8689
- return g_workObj.keyHitFlg[_j].find(flg => flg);
8690
- },
8691
-
8692
- frzON: (_j) => {
8693
- return true;
8694
- },
8695
-
8696
- dummyFrzOFF: (_j) => {
8697
- return true;
8698
- },
8699
-
8700
- dummyFrzON: (_j) => {
8701
- return true;
8702
- },
8676
+ frzOFF: (_j) => g_workObj.keyHitFlg[_j].find(flg => flg),
8677
+ frzON: (_j) => true,
8678
+ dummyFrzOFF: (_j) => true,
8679
+ dummyFrzON: (_j) => true,
8703
8680
  };
8704
8681
 
8705
8682
  /**
@@ -9571,7 +9548,7 @@ const judgeMatari = _difFrame => {
9571
9548
  changeJudgeCharacter(`matari`, g_lblNameObj.j_matari);
9572
9549
  comboJ.textContent = ``;
9573
9550
 
9574
- displayDiff(difFrame, g_headerObj.justFrames);
9551
+ displayDiff(_difFrame, g_headerObj.justFrames);
9575
9552
  finishViewing();
9576
9553
 
9577
9554
  g_customJsObj.judg_matari.forEach(func => func(_difFrame));
@@ -9780,10 +9757,7 @@ const resultInit = _ => {
9780
9757
  }
9781
9758
 
9782
9759
  const keyCtrlPtn = `${g_keyObj.currentKey}_${g_keyObj.currentPtn}`;
9783
- let transKeyData = ``;
9784
- if (hasVal(g_keyObj[`transKey${keyCtrlPtn}`])) {
9785
- transKeyData = `(` + g_keyObj[`transKey${keyCtrlPtn}`] + `)`;
9786
- }
9760
+ const transKeyData = hasVal(g_keyObj[`transKey${keyCtrlPtn}`]) ? `(` + g_keyObj[`transKey${keyCtrlPtn}`] + `)` : ``;
9787
9761
 
9788
9762
  /**
9789
9763
  * プレイスタイルのカスタム有無
@@ -10027,18 +10001,19 @@ const resultInit = _ => {
10027
10001
  tweetMaxCombo += `-${g_resultObj.fmaxCombo}`;
10028
10002
  }
10029
10003
 
10030
- let tweetResultTmp = g_headerObj.resultFormat.split(`[hashTag]`).join(`${hashTag}`)
10031
- .split(`[musicTitle]`).join(`${musicTitle}`)
10032
- .split(`[keyLabel]`).join(`${tweetDifData}`)
10033
- .split(`[maker]`).join(`${g_headerObj.tuning}`)
10034
- .split(`[rank]`).join(`${rankMark}`)
10035
- .split(`[score]`).join(`${g_resultObj.score}`)
10036
- .split(`[playStyle]`).join(`${playStyleData}`)
10037
- .split(`[arrowJdg]`).join(`${g_resultObj.ii}-${g_resultObj.shakin}-${g_resultObj.matari}-${g_resultObj.shobon}-${g_resultObj.uwan}`)
10038
- .split(`[frzJdg]`).join(tweetFrzJdg)
10039
- .split(`[maxCombo]`).join(tweetMaxCombo)
10040
- .split(`[url]`).join(`${twiturl.toString()}`.replace(/[\t\n]/g, ``));
10041
-
10004
+ let tweetResultTmp = replaceStr(g_headerObj.resultFormat, [
10005
+ [`[hashTag]`, hashTag],
10006
+ [`[musicTitle]`, musicTitle],
10007
+ [`[keyLabel]`, tweetDifData],
10008
+ [`[maker]`, g_headerObj.tuning],
10009
+ [`[rank]`, rankMark],
10010
+ [`[score]`, g_resultObj.score],
10011
+ [`[playStyle]`, playStyleData],
10012
+ [`[arrowJdg]`, `${g_resultObj.ii}-${g_resultObj.shakin}-${g_resultObj.matari}-${g_resultObj.shobon}-${g_resultObj.uwan}`],
10013
+ [`[frzJdg]`, tweetFrzJdg],
10014
+ [`[maxCombo]`, tweetMaxCombo],
10015
+ [`[url]`, g_isLocal ? `` : `${twiturl.toString()}`.replace(/[\t\n]/g, ``)]
10016
+ ]);
10042
10017
  if (g_presetObj.resultVals !== undefined) {
10043
10018
  Object.keys(g_presetObj.resultVals).forEach(key => {
10044
10019
  tweetResultTmp = tweetResultTmp.split(`[${key}]`).join(g_resultObj[g_presetObj.resultVals[key]]);
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Source by tickle
7
7
  * Created : 2019/11/19
8
- * Revised : 2022/02/23 (v26.3.1)
8
+ * Revised : 2022/03/12 (v26.7.0)
9
9
  *
10
10
  * https://github.com/cwtickle/danoniplus
11
11
  */
@@ -2393,6 +2393,10 @@ const g_dfColorLightObj = {
2393
2393
  ],
2394
2394
  };
2395
2395
 
2396
+ /**
2397
+ * 特殊文字列の置き換えリスト
2398
+ * (置き換え元、置き換え先の組で二次元配列として定義。主にreplaceStr関数で使用)
2399
+ */
2396
2400
  const g_escapeStr = {
2397
2401
  escape: [[`&`, `&amp;`], [`<`, `&lt;`], [`>`, `&gt;`], [`"`, `&quot;`]],
2398
2402
  escapeTag: [
@@ -2407,6 +2411,17 @@ const g_escapeStr = {
2407
2411
  escapeCode: [
2408
2412
  [`<script>`, ``], [`</script>`, ``],
2409
2413
  ],
2414
+ musicNameSimple: [
2415
+ [`<br>`, ` `], [`<nbr>`, ``], [`<dbr>`, ` `],
2416
+ ],
2417
+ musicNameMultiLine: [
2418
+ [`<nbr>`, `<br>`], [`<dbr>`, `<br>`],
2419
+ ],
2420
+ frzName: [
2421
+ [`leftdia`, `frzLdia`], [`rightdia`, `frzRdia`],
2422
+ [`left`, `frzLeft`], [`down`, `frzDown`], [`up`, `frzUp`], [`right`, `frzRight`],
2423
+ [`space`, `frzSpace`], [`iyo`, `frzIyo`], [`gor`, `frzGor`], [`oni`, `foni`],
2424
+ ],
2410
2425
  };
2411
2426
 
2412
2427
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "danoniplus",
3
- "version": "26.6.0",
3
+ "version": "26.7.1",
4
4
  "description": "Dancing☆Onigiri (CW Edition) - Web-based Rhythm Game",
5
5
  "main": "index.js",
6
6
  "scripts": {