From cfc4232ddff66ac07800699e9783904d6112c9f2 Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Tue, 1 Feb 2022 17:15:14 +0000 Subject: [PATCH] Patch buggy stuff in sv6c --- .../score-importing/score-import-main.ts | 7 ++++--- .../import-types/ir/kshook-sv6c/parser.test.ts | 16 ++++------------ .../import-types/ir/kshook-sv6c/parser.ts | 10 ++++++---- .../import-types/ir/kshook-sv6c/types.ts | 5 +---- .../router/api/v1/users/_userID/router.test.ts | 2 +- server/src/test-utils/test-data.ts | 4 +--- 6 files changed, 17 insertions(+), 27 deletions(-) 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 0d2e24598..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 @@ -1,8 +1,9 @@ import db from "external/mongo/db"; -import { KtLogger, rootLogger } from "lib/logger/logger"; +import { KtLogger } from "lib/logger/logger"; import { ScoreImportJob } from "lib/score-import/worker/types"; import { Game, + GetGameConfig, IDStrings, ImportDocument, ImportProcessingInfo, @@ -10,9 +11,8 @@ import { integer, Playtypes, PublicUserDocument, - GetGameConfig, } from "tachi-common"; -import { GetMillisecondsSince, Sleep } from "utils/misc"; +import { GetMillisecondsSince } from "utils/misc"; import { GetUserWithID } from "utils/user"; import { ConverterFunction, ImportInputParser } from "../../import-types/common/types"; import { Converters } from "../../import-types/converters"; @@ -28,6 +28,7 @@ import { ClassHandler } from "../user-game-stats/types"; import { UpdateUsersGamePlaytypeStats } from "../user-game-stats/update-ugs"; import ScoreImportFatalError from "./score-import-error"; import { ImportAllIterableData } from "./score-importing"; + /** * Performs a Score Import. * diff --git a/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.test.ts b/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.test.ts index f56c18da3..2b94f217c 100644 --- a/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.test.ts +++ b/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.test.ts @@ -48,18 +48,10 @@ t.test("#ParseKsHookSV6C", (t) => { assertFail(dm({ max_chain: -1 }), "Should reject negative max_chains."); assertFail(dm({ max_chain: 100.5 }), "Should reject non-integer max_chains."); - assertFail(dm({ btn_rate: -1 }), "Should reject negative btn_rates."); - assertFail(dm({ btn_rate: 200.1 }), "Should reject btn_rates over 200."); - assertSuccess(dm({ btn_rate: 0 }), "Should allow btn_rate values of 0."); - assertSuccess(dm({ btn_rate: 200 }), "Should allow btn_rate values of 200."); - assertFail(dm({ vol_rate: -1 }), "Should reject negative vol_rates."); - assertFail(dm({ vol_rate: 200.1 }), "Should reject vol_rates over 200."); - assertSuccess(dm({ vol_rate: 0 }), "Should allow vol_rate values of 0."); - assertSuccess(dm({ vol_rate: 200 }), "Should allow vol_rate values of 200."); - assertFail(dm({ long_rate: -1 }), "Should reject negative long_rates."); - assertFail(dm({ long_rate: 200.1 }), "Should reject long_rates over 200."); - assertSuccess(dm({ long_rate: 0 }), "Should allow long_rate values of 0."); - assertSuccess(dm({ long_rate: 200 }), "Should allow long_rate values of 200."); + assertFail(dm({ score: -1 }), "Should reject negative scores."); + assertFail(dm({ score: 10_000_001 }), "Should reject > 10m scores."); + assertSuccess(dm({ score: 10_000_000 }), "Should allow scores of 10m."); + assertSuccess(dm({ score: 0 }), "Should allow scores of 0."); assertFail(dm({ rate: "invalid_rate" }), "Should reject invalid rates."); diff --git a/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.ts b/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.ts index a928defec..7ee4ebd6d 100644 --- a/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.ts +++ b/server/src/lib/score-import/import-types/ir/kshook-sv6c/parser.ts @@ -36,15 +36,17 @@ const PR_KsHookSV6C: PrudenceSchema = { max_chain: p.isPositiveInteger, music_id: p.isPositiveInteger, - btn_rate: p.isBetween(0, 200), - long_rate: p.isBetween(0, 200), - vol_rate: p.isBetween(0, 200), - + score: p.isBoundedInteger(0, 10_000_000), ex_score: p.isPositiveInteger, + critical: p.isPositiveInteger, + near: p.isPositiveInteger, + error: p.isPositiveInteger, + rate: p.isIn("RATE_EFFECTIVE", "RATE_PERMISSIVE", "RATE_EXCESSIVE", "RATE_BLASTIVE"), track_no: p.isPositiveInteger, + retry_count: p.any, }; export function ParseKsHookSV6C( diff --git a/server/src/lib/score-import/import-types/ir/kshook-sv6c/types.ts b/server/src/lib/score-import/import-types/ir/kshook-sv6c/types.ts index e53b86f64..5e7ed5416 100644 --- a/server/src/lib/score-import/import-types/ir/kshook-sv6c/types.ts +++ b/server/src/lib/score-import/import-types/ir/kshook-sv6c/types.ts @@ -23,10 +23,6 @@ export interface KsHookSV6CScore { max_chain: integer; music_id: integer; - btn_rate: integer; - long_rate: integer; - vol_rate: integer; - critical: integer; near: integer; error: integer; @@ -36,6 +32,7 @@ export interface KsHookSV6CScore { ex_score: integer; track_no: integer; + retry_count: unknown; } export interface KsHookSV6CContext { diff --git a/server/src/server/router/api/v1/users/_userID/router.test.ts b/server/src/server/router/api/v1/users/_userID/router.test.ts index 8e3489458..0714156a1 100644 --- a/server/src/server/router/api/v1/users/_userID/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/router.test.ts @@ -371,7 +371,7 @@ t.test("GET /api/v1/users/:userID/game-stats", (t) => { t.end(); }); -t.test("GET /api/v1/users/:userID/recent-imports", async (t) => { +t.test("GET /api/v1/users/:userID/recent-imports", (t) => { t.beforeEach(ResetDBState); function mkImport( diff --git a/server/src/test-utils/test-data.ts b/server/src/test-utils/test-data.ts index ebaee6dbd..5036a1a52 100644 --- a/server/src/test-utils/test-data.ts +++ b/server/src/test-utils/test-data.ts @@ -124,22 +124,20 @@ export const TestingIIDXSPScore: ScoreDocument<"iidx:SP"> = { }; export const TestingKsHookSV6CScore: KsHookSV6CScore = { - btn_rate: 182, clear: "CLEAR_EXCESSIVE", critical: 1184, difficulty: "DIFFICULTY_ADVANCED", error: 30, gauge: 71, grade: "GRADE_AA_PLUS", - long_rate: 195, max_chain: 158, music_id: 1, near: 46, rate: "RATE_EXCESSIVE", score: 9579365, track_no: 0, - vol_rate: 193, ex_score: 1334, + retry_count: 0, }; export const TestingBMS7KScore: ScoreDocument<"bms:7K"> = { calculatedData: {