From d260bee4a358274a171b03361a8bc644c70ee8fa Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Thu, 24 Mar 2022 16:15:12 +0000 Subject: [PATCH 1/5] Revert "emerg: Import Locks should only be set if they are guaranteed to be unset." This reverts commit 8a1bf480b1324e67e85ee2673eaa94572993d176. --- server/package.json | 2 +- server/src/lib/constants/version.ts | 2 +- .../score-importing/score-import-main.ts | 26 +++++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/server/package.json b/server/package.json index 73905a89c..57b983f5f 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "tachi-server", - "version": "2.1.10", + "version": "2.1.9", "description": "A score tracking server.", "main": "js/index.js", "private": true, diff --git a/server/src/lib/constants/version.ts b/server/src/lib/constants/version.ts index 7ba3ed3c3..c39914d46 100644 --- a/server/src/lib/constants/version.ts +++ b/server/src/lib/constants/version.ts @@ -4,7 +4,7 @@ const MAJOR = 2; const MINOR = 1; -const PATCH = 10; +const PATCH = 9; // As is with all front-facing zkldi projects, the version names for tachi-server // are from an album I like. In this case, the album is Portishead - Dummy. diff --git a/server/src/lib/score-import/framework/score-importing/score-import-main.ts b/server/src/lib/score-import/framework/score-importing/score-import-main.ts index b4edaa287..7513438c4 100644 --- a/server/src/lib/score-import/framework/score-importing/score-import-main.ts +++ b/server/src/lib/score-import/framework/score-importing/score-import-main.ts @@ -64,20 +64,20 @@ export default async function ScoreImportMain( logger = providedLogger; } + const hasNoOngoingImport = await CheckAndSetOngoingImportLock(user.id); + + if (hasNoOngoingImport) { + logger.info(`User ${userID} made an import while they had one ongoing.`); + // @danger + // Throwing away an import if the user already has one outgoing is *bad*, as in the case + // of degraded performance we might just start throwing scores away. + // Under normal circumstances, there is no scenario where a user would have two ongoing + // imports at the same time - even if they were using single-score imports on a 5 second + // chart, as each score import takes only around ~10-15milliseconds. + throw new ScoreImportFatalError(409, "This user already has an ongoing import."); + } + try { - const hasNoOngoingImport = await CheckAndSetOngoingImportLock(user.id); - - if (hasNoOngoingImport) { - logger.info(`User ${userID} made an import while they had one ongoing.`); - // @danger - // Throwing away an import if the user already has one outgoing is *bad*, as in the case - // of degraded performance we might just start throwing scores away. - // Under normal circumstances, there is no scenario where a user would have two ongoing - // imports at the same time - even if they were using single-score imports on a 5 second - // chart, as each score import takes only around ~10-15milliseconds. - throw new ScoreImportFatalError(409, "This user already has an ongoing import."); - } - const timeStarted = Date.now(); SetJobProgress(job, "Parsing score data."); From 6d78efad3fb84a0556408cb3e54d87bb9e0a2d25 Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Sat, 26 Mar 2022 03:25:22 +0000 Subject: [PATCH 2/5] Change version in changelog and version.ts --- server/CHANGELOG.md | 2 +- server/package.json | 2 +- server/src/lib/constants/version.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/CHANGELOG.md b/server/CHANGELOG.md index 1abe4e276..9c609b391 100644 --- a/server/CHANGELOG.md +++ b/server/CHANGELOG.md @@ -15,7 +15,7 @@ not generally be shown to end users. # Changelog -# CURRENT +# 2.1.11 - [ENH] The LR2Hook now saves courses. - [ENH] The LR2Hook now saves gauge information. diff --git a/server/package.json b/server/package.json index 24b2d81ad..895f2d1fe 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "tachi-server", - "version": "2.2.0-dev", + "version": "2.1.11", "description": "A score tracking server.", "main": "js/index.js", "private": true, diff --git a/server/src/lib/constants/version.ts b/server/src/lib/constants/version.ts index 20a267eae..6d9a1e090 100644 --- a/server/src/lib/constants/version.ts +++ b/server/src/lib/constants/version.ts @@ -3,8 +3,8 @@ // essentially share codebases. const MAJOR = 2; -const MINOR = 2; -const PATCH = 0; +const MINOR = 1; +const PATCH = 11; // As is with all front-facing zkldi projects, the version names for tachi-server // are from an album I like. In this case, the album is Portishead - Dummy. From 643fa5711c50e0a610d07f50425be10d3b98b473 Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Thu, 31 Mar 2022 18:03:17 +0100 Subject: [PATCH 3/5] emerg: NEVER REMOVE BMS SONGS (EVER) --- server/src/scripts/sync-database.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/src/scripts/sync-database.ts b/server/src/scripts/sync-database.ts index 61453742b..d2a206adf 100644 --- a/server/src/scripts/sync-database.ts +++ b/server/src/scripts/sync-database.ts @@ -171,6 +171,18 @@ const syncInstructions: SyncInstructions[] = [ } }, }, + { + pattern: /^songs-(b|p)ms/u, + handler: async (songs: SongDocument[], collection: ICollection, logger) => { + const r = await GenericUpsert(songs, collection, "id", logger, false); + + if (r.thingsChanged) { + await RecalcAllScores({ + songID: { $in: r.changedFields }, + }); + } + }, + }, { pattern: /^songs-/u, handler: async (songs: SongDocument[], collection: ICollection, logger) => { From ec512e78d34d5ffd7337d72addcef77b97d598bc Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Mon, 4 Apr 2022 22:23:37 +0100 Subject: [PATCH 4/5] Add exceed gear support --- server/package.json | 2 +- server/pnpm-lock.yaml | 8 ++++---- .../import-types/common/api-kai/sdvx/converter.test.ts | 3 ++- .../import-types/common/api-kai/sdvx/converter.ts | 2 ++ 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/server/package.json b/server/package.json index 895f2d1fe..d4c256855 100644 --- a/server/package.json +++ b/server/package.json @@ -82,7 +82,7 @@ "rimraf": "3.0.2", "safe-json-stringify": "1.2.0", "seq-logging": "1.1.1", - "tachi-common": "0.6.8", + "tachi-common": "0.6.8-exceed", "ts-node": "10.4.0", "tsconfig-paths": "3.12.0", "typescript": "4.5.5", diff --git a/server/pnpm-lock.yaml b/server/pnpm-lock.yaml index 301522fbc..9a71c0e73 100644 --- a/server/pnpm-lock.yaml +++ b/server/pnpm-lock.yaml @@ -63,7 +63,7 @@ specifiers: safe-json-stringify: 1.2.0 seq-logging: 1.1.1 supertest: 6.2.2 - tachi-common: 0.6.8 + tachi-common: 0.6.8-exceed tap: 15.1.6 ts-node: 10.4.0 tsconfig-paths: 3.12.0 @@ -108,7 +108,7 @@ dependencies: rimraf: 3.0.2 safe-json-stringify: 1.2.0 seq-logging: 1.1.1 - tachi-common: 0.6.8 + tachi-common: 0.6.8-exceed ts-node: 10.4.0_2615db9039ce432b4abf2fc39ef336ec tsconfig-paths: 3.12.0 typescript: 4.5.5 @@ -5291,8 +5291,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /tachi-common/0.6.8: - resolution: {integrity: sha512-QzGqWeMmC3/nUS76FX6qAPJWBlwz7kzT/QVcrgeuYo1RBkYShkpYl0do0zyRO62B/vKixqgNgsOqVT+cDUoTzw==} + /tachi-common/0.6.8-exceed: + resolution: {integrity: sha512-WZNQBUlKTkmOmSnReGhC3Vc5t5Z7cvSmlghfsgG2+xlVqXUgfVLIZNHinheBS0N8mKi75IlhS8JT+FaHazn/XA==} dependencies: '@types/mongodb': 3.6.18 dev: false diff --git a/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts index 0ada41108..f256c54e4 100644 --- a/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts @@ -113,7 +113,8 @@ t.test("#ConvertVersion", (t) => { t.equal(ConvertVersion(3), "gw"); t.equal(ConvertVersion(4), "heaven"); t.equal(ConvertVersion(5), "vivid"); - t.throws(() => ConvertVersion(6)); + t.equal(ConvertVersion(6), "exceed"); + t.throws(() => ConvertVersion(7)); t.throws(() => ConvertVersion(0)); t.end(); diff --git a/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.ts b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.ts index 82eae8615..1c9713be0 100644 --- a/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.ts @@ -132,6 +132,8 @@ export function ConvertVersion(ver: number) { return "heaven"; case 5: return "vivid"; + case 6: + return "exceed"; } throw new InvalidScoreFailure(`Unknown Game Version ${ver}.`); From 4d0a0bcb760d53a33398375b414679d6c03e1ad4 Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Mon, 4 Apr 2022 22:23:47 +0100 Subject: [PATCH 5/5] Bump versions --- server/package.json | 2 +- server/src/lib/constants/version.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/package.json b/server/package.json index d4c256855..9dd783781 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "tachi-server", - "version": "2.1.11", + "version": "2.1.12", "description": "A score tracking server.", "main": "js/index.js", "private": true, diff --git a/server/src/lib/constants/version.ts b/server/src/lib/constants/version.ts index 6d9a1e090..47e7356c9 100644 --- a/server/src/lib/constants/version.ts +++ b/server/src/lib/constants/version.ts @@ -4,7 +4,7 @@ const MAJOR = 2; const MINOR = 1; -const PATCH = 11; +const PATCH = 12; // As is with all front-facing zkldi projects, the version names for tachi-server // are from an album I like. In this case, the album is Portishead - Dummy.