Merge pull request #540 from TNG-dev:zkldi/issue-534

Support 28-2dxtra in ir/fervidex.
This commit is contained in:
zkldi
2021-12-06 20:51:02 +00:00
committed by GitHub
6 changed files with 648 additions and 33 deletions
+2 -1
View File
@@ -51,6 +51,7 @@
},
"dependencies": {
"@aws-sdk/client-s3": "^3.41.0",
"@aws-sdk/signature-v4-crt": "^3.41.0",
"@types/mocha": "^9.0.0",
"@valuabletouch/winston-seq": "^1.2.0",
"bcryptjs": "^2.4.3",
@@ -82,7 +83,7 @@
"rimraf": "3.0.2",
"safe-json-stringify": "1.2.0",
"seq-logging": "^1.1.1",
"tachi-common": "0.3.10",
"tachi-common": "0.3.11",
"ts-node": "10.0.0",
"typescript": "4.3.4",
"winston": "3.3.3",
+599 -22
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -6,6 +6,7 @@ export const MODEL_IIDX_LIGHTNING = "TDJ";
export const REV_2DXTRA = "E";
export const REV_2DXBMS = "Z";
export const REV_OMNIMIX = "X";
export const REV_NORMAL = "A";
export const EXT_HEROIC_VERSE = "2020092900";
export const EXT_BISTROVER = "2021091500";
@@ -0,0 +1,33 @@
import CreateLogCtx from "lib/logger/logger";
import t from "tap";
import { SoftwareIDToVersion } from "./parser";
const logger = CreateLogCtx(__filename);
t.test("#SoftwareIDToVersion", (t) => {
const f = (sid: string) => SoftwareIDToVersion(sid, logger);
t.throws(() => f("a"), {}, "Should throw on invalid string.");
t.throws(() => f("LDJ:J:B:Q:2020092900"), {}, "Should throw on unknown HV revision.");
t.throws(() => f("LDJ:J:B:Q:2021091500"), {}, "Should throw on unknown BST revision.");
t.throws(() => f("XDJ:J:B:A:2020092900"), {}, "Should throw on unknown model.");
t.throws(() => f("LDJ:J:B:A:2099092900"), {}, "Should throw on unknown ext.");
t.equal(f("LDJ:J:B:A:2020092900"), "27");
t.equal(f("LDJ:J:B:X:2020092900"), "27-omni");
t.equal(f("LDJ:J:B:E:2020092900"), "27-2dxtra");
t.equal(f("LDJ:J:B:A:2021091500"), "28");
t.equal(f("LDJ:J:B:X:2021091500"), "28-omni");
t.equal(f("LDJ:J:B:E:2021091500"), "28-2dxtra");
t.equal(f("TDJ:J:B:A:2020092900"), "27");
t.equal(f("TDJ:J:B:X:2020092900"), "27-omni");
t.equal(f("TDJ:J:B:E:2020092900"), "27-2dxtra");
t.equal(f("TDJ:J:B:A:2021091500"), "28");
t.equal(f("TDJ:J:B:X:2021091500"), "28-omni");
t.equal(f("TDJ:J:B:E:2021091500"), "28-2dxtra");
t.equal(f("P2D:J:B:A:2020092900"), "inf");
t.end();
});
@@ -2,8 +2,10 @@ import {
EXT_BISTROVER,
EXT_HEROIC_VERSE,
MODEL_IIDX,
MODEL_IIDX_LIGHTNING,
MODEL_INFINITAS_2,
REV_2DXTRA,
REV_NORMAL,
REV_OMNIMIX,
} from "lib/constants/ea3id";
import { KtLogger } from "lib/logger/logger";
@@ -73,24 +75,25 @@ export function SoftwareIDToVersion(model: string, logger: KtLogger) {
if (data.model === MODEL_INFINITAS_2) {
return "inf";
} else if (data.model === MODEL_IIDX) {
// only HV. everything else is disabled deliberately.
} else if (data.model === MODEL_IIDX || data.model === MODEL_IIDX_LIGHTNING) {
// pretty icky yandere-dev tier if statements, but hey
// that's just how it works...
if (data.ext === EXT_HEROIC_VERSE) {
if (data.rev === REV_OMNIMIX) {
return "27-omni";
}
if (data.rev === REV_2DXTRA) {
} else if (data.rev === REV_2DXTRA) {
return "27-2dxtra";
} else if (data.rev === REV_NORMAL) {
return "27";
}
return "27";
} else if (data.ext === EXT_BISTROVER) {
if (data.rev === REV_OMNIMIX) {
return "28-omni";
} else if (data.rev === REV_2DXTRA) {
return "28-2dxtra";
} else if (data.rev === REV_NORMAL) {
return "28";
}
return "28";
}
}
@@ -60,7 +60,7 @@ const ValidateFervidexHeader: RequestHandler = (req, res, next) => {
// version.minor
if (versions[1] < 3) {
logger.debug(
`Rejected outdated fervidex client from user ${req[SYMBOL_TachiAPIAuth].userID!}.`
`Rejected outdated fervidex client from user ${req[SYMBOL_TachiAPIAuth].userID}.`
);
return res.status(400).json({
success: false,