From 94443fe4ae874907ff4fd086eb1095fce00712eb Mon Sep 17 00:00:00 2001 From: zkldi Date: Fri, 23 Jul 2021 02:54:47 +0100 Subject: [PATCH] add FormatChart function --- common/js/utils/util.d.ts | 3 ++- common/js/utils/util.js | 19 ++++++++++++++++++- common/js/utils/util.js.map | 2 +- common/src/utils/util.ts | 24 +++++++++++++++++++++++- 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/common/js/utils/util.d.ts b/common/js/utils/util.d.ts index 3cbfc4059..1fa7e816a 100644 --- a/common/js/utils/util.d.ts +++ b/common/js/utils/util.d.ts @@ -1,4 +1,4 @@ -import { AnyChartDocument, Game, Playtypes } from ".."; +import { AnyChartDocument, AnySongDocument, Game, Playtypes } from ".."; export declare function FormatDifficulty(chart: AnyChartDocument, game: Game): string; /** * Formats a chart's difficulty into a shorter variant. This handles a lot of @@ -6,3 +6,4 @@ export declare function FormatDifficulty(chart: AnyChartDocument, game: Game): s */ export declare function FormatDifficultyShort(chart: AnyChartDocument, game: Game): string; export declare function FormatGame(game: Game, playtype: Playtypes[Game]): string; +export declare function FormatChart(game: Game, song: AnySongDocument, chart: AnyChartDocument): string; diff --git a/common/js/utils/util.js b/common/js/utils/util.js index d364cf9d4..bd6d1a054 100644 --- a/common/js/utils/util.js +++ b/common/js/utils/util.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.FormatGame = exports.FormatDifficultyShort = exports.FormatDifficulty = void 0; +exports.FormatChart = exports.FormatGame = exports.FormatDifficultyShort = exports.FormatDifficulty = void 0; const config_1 = require("../config/config"); function FormatDifficulty(chart, game) { const gameConfig = config_1.GetGameConfig(game); @@ -42,4 +42,21 @@ function FormatGame(game, playtype) { return `${gameConfig.name} (${playtype})`; } exports.FormatGame = FormatGame; +function FormatChart(game, song, chart) { + if (game === "bms") { + return song.title; + } + const gameConfig = config_1.GetGameConfig(game); + let playtypeStr = `${chart.playtype} `; + if (gameConfig.validPlaytypes.length === 1) { + playtypeStr = ""; + } + // return the most recent version this chart appeared in if it + // is not primary. + if (!chart.isPrimary) { + return `${song.title} (${playtypeStr}${chart.difficulty} ${chart.versions[0]})`; + } + return `${song.title} (${playtypeStr}${chart.difficulty})`; +} +exports.FormatChart = FormatChart; //# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/common/js/utils/util.js.map b/common/js/utils/util.js.map index 45c9ca60c..da6975e23 100644 --- a/common/js/utils/util.js.map +++ b/common/js/utils/util.js.map @@ -1 +1 @@ -{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/utils/util.ts"],"names":[],"mappings":";;;AACA,6CAAkE;AAElE,SAAgB,gBAAgB,CAAC,KAAuB,EAAE,IAAU;IACnE,MAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KAC1C;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QACzC,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KAC9D;IAED,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC;AAZD,4CAYC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,KAAuB,EAAE,IAAU;;IACxE,MAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,wBAAe,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAA,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,mCAAI,KAAK,CAAC,UAAU,CAAC;IAEpF,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KAC1C;IAED,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;KACvC;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,UAAU,EAAE;QAClE,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KACrC;IAED,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AACvD,CAAC;AAlBD,sDAkBC;AAED,SAAgB,UAAU,CAAC,IAAU,EAAE,QAAyB;IAC/D,MAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3C,OAAO,UAAU,CAAC,IAAI,CAAC;KACvB;IAED,OAAO,GAAG,UAAU,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC;AAC3C,CAAC;AARD,gCAQC"} \ No newline at end of file +{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/utils/util.ts"],"names":[],"mappings":";;;AACA,6CAAkE;AAElE,SAAgB,gBAAgB,CAAC,KAAuB,EAAE,IAAU;IACnE,MAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KAC1C;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QACzC,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KAC9D;IAED,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC;AAZD,4CAYC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,KAAuB,EAAE,IAAU;;IACxE,MAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,wBAAe,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAA,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,mCAAI,KAAK,CAAC,UAAU,CAAC;IAEpF,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KAC1C;IAED,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;KACvC;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,UAAU,EAAE;QAClE,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;KACrC;IAED,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AACvD,CAAC;AAlBD,sDAkBC;AAED,SAAgB,UAAU,CAAC,IAAU,EAAE,QAAyB;IAC/D,MAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3C,OAAO,UAAU,CAAC,IAAI,CAAC;KACvB;IAED,OAAO,GAAG,UAAU,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC;AAC3C,CAAC;AARD,gCAQC;AAED,SAAgB,WAAW,CAAC,IAAU,EAAE,IAAqB,EAAE,KAAuB;IACrF,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC;KAClB;IAED,MAAM,UAAU,GAAG,sBAAa,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,WAAW,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC;IAEvC,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3C,WAAW,GAAG,EAAE,CAAC;KACjB;IAED,8DAA8D;IAC9D,kBAAkB;IAClB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;QACrB,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,WAAW,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;KAChF;IAED,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,WAAW,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC;AAC5D,CAAC;AApBD,kCAoBC"} \ No newline at end of file diff --git a/common/src/utils/util.ts b/common/src/utils/util.ts index 32e282624..300eb02e5 100644 --- a/common/src/utils/util.ts +++ b/common/src/utils/util.ts @@ -1,4 +1,4 @@ -import { AnyChartDocument, Game, Playtypes } from ".."; +import { AnyChartDocument, AnySongDocument, Game, Playtypes } from ".."; import { GetGameConfig, GetGamePTConfig } from "../config/config"; export function FormatDifficulty(chart: AnyChartDocument, game: Game): string { @@ -48,3 +48,25 @@ export function FormatGame(game: Game, playtype: Playtypes[Game]): string { return `${gameConfig.name} (${playtype})`; } + +export function FormatChart(game: Game, song: AnySongDocument, chart: AnyChartDocument): string { + if (game === "bms") { + return song.title; + } + + const gameConfig = GetGameConfig(game); + + let playtypeStr = `${chart.playtype} `; + + if (gameConfig.validPlaytypes.length === 1) { + playtypeStr = ""; + } + + // return the most recent version this chart appeared in if it + // is not primary. + if (!chart.isPrimary) { + return `${song.title} (${playtypeStr}${chart.difficulty} ${chart.versions[0]})`; + } + + return `${song.title} (${playtypeStr}${chart.difficulty})`; +}