Added command line support

This commit is contained in:
Estebene 2021-05-09 12:09:59 +12:00
parent a3c74b53b8
commit 5eea5526c4
2 changed files with 107 additions and 69 deletions

View file

@ -1627,7 +1627,7 @@ function updateDiscordRole(discordId, wpm) {
});
}
function isTagValid(name) {
function isTagPresetNameValid(name) {
if (name === null || name === undefined || name === "") return false;
if (name.length > 16) return false;
return /^[0-9a-zA-Z_.-]+$/.test(name);
@ -1635,7 +1635,7 @@ function isTagValid(name) {
exports.addTag = functions.https.onCall((request, response) => {
try {
if (!isTagValid(request.name)) {
if (!isTagPresetNameValid(request.name)) {
return { resultCode: -1 };
} else {
return db
@ -1665,7 +1665,7 @@ exports.addTag = functions.https.onCall((request, response) => {
exports.editTag = functions.https.onCall((request, response) => {
try {
if (!isTagValid(request.name)) {
if (!isTagPresetNameValid(request.name)) {
return { resultCode: -1 };
} else {
return db
@ -1847,83 +1847,85 @@ exports.saveConfig = functions.https.onCall((request, response) => {
exports.addPreset = functions.https.onCall(async (request, response) => {
try {
if (request.uid === undefined || request.obj === undefined) {
if (!isTagPresetNameValid(request.name)) {
return { resultCode: -1 };
} else if (request.uid === undefined || request.obj === undefined) {
console.error(`error saving config for ${request.uid} - missing input`);
return {
resultCode: -1,
message: "Missing input",
};
}
let config = request.obj.config;
let errorMessage = "";
let err = false;
Object.keys(config).forEach((key) => {
if (err) return;
if (!isConfigKeyValid(key)) {
err = true;
console.error(`${key} failed regex check`);
errorMessage = `${key} failed regex check`;
}
if (err) return;
if (key === "resultFilters") return;
if (key === "customBackground") return;
let val = config[key];
if (Array.isArray(val)) {
val.forEach((valarr) => {
if (!isConfigKeyValid(valarr)) {
err = true;
console.error(`${key}: ${valarr} failed regex check`);
errorMessage = `${key}: ${valarr} failed regex check`;
}
});
} else {
if (!isConfigKeyValid(val)) {
} else {
let config = request.obj.config;
let errorMessage = "";
let err = false;
Object.keys(config).forEach((key) => {
if (err) return;
if (!isConfigKeyValid(key)) {
err = true;
console.error(`${key}: ${val} failed regex check`);
errorMessage = `${key}: ${val} failed regex check`;
console.error(`${key} failed regex check`);
errorMessage = `${key} failed regex check`;
}
}
});
if (err) {
console.error(
`error adding preset for ${request.uid} - bad input - ${JSON.stringify(
request.obj
)}`
);
return {
resultCode: -1,
message: "Bad input. " + errorMessage,
};
}
let presets = await db.collection(`users/${request.uid}/presets`).get();
if (presets.docs.length >= 10) {
return {
resultCode: -2,
message: "Preset limit",
};
}
return db
.collection(`users/${request.uid}/presets`)
.add(request.obj)
.then((e) => {
return {
resultCode: 1,
message: "Saved",
id: e.id,
};
})
.catch((e) => {
if (err) return;
if (key === "resultFilters") return;
if (key === "customBackground") return;
let val = config[key];
if (Array.isArray(val)) {
val.forEach((valarr) => {
if (!isConfigKeyValid(valarr)) {
err = true;
console.error(`${key}: ${valarr} failed regex check`);
errorMessage = `${key}: ${valarr} failed regex check`;
}
});
} else {
if (!isConfigKeyValid(val)) {
err = true;
console.error(`${key}: ${val} failed regex check`);
errorMessage = `${key}: ${val} failed regex check`;
}
}
});
if (err) {
console.error(
`error adding preset to DB for ${request.uid} - ${e.message}`
`error adding preset for ${
request.uid
} - bad input - ${JSON.stringify(request.obj)}`
);
return {
resultCode: -1,
message: e.message,
message: "Bad input. " + errorMessage,
};
});
}
let presets = await db.collection(`users/${request.uid}/presets`).get();
if (presets.docs.length >= 10) {
return {
resultCode: -2,
message: "Preset limit",
};
}
return db
.collection(`users/${request.uid}/presets`)
.add(request.obj)
.then((e) => {
return {
resultCode: 1,
message: "Saved",
id: e.id,
};
})
.catch((e) => {
console.error(
`error adding preset to DB for ${request.uid} - ${e.message}`
);
return {
resultCode: -1,
message: e.message,
};
});
}
} catch (e) {
console.error(`error adding preset for ${request.uid} - ${e}`);
return {
@ -1935,7 +1937,7 @@ exports.addPreset = functions.https.onCall(async (request, response) => {
exports.editPreset = functions.https.onCall((request, response) => {
try {
if (!isTagValid(request.name)) {
if (!isTagPresetValid(request.name)) {
return { resultCode: -1 };
} else {
return db

View file

@ -13,6 +13,7 @@ import * as TestUI from "./test-ui";
import * as TestLogic from "./test-logic";
import * as Funbox from "./funbox";
import * as TagController from "./tag-controller";
import * as PresetController from "./preset-controller";
import * as Commandline from "./commandline";
import * as CustomText from "./custom-text";
@ -241,6 +242,30 @@ export function updateTagCommands() {
}
}
let commandsPresets = {
title: "Apply preset...",
list: [],
};
export function updatePresetCommands() {
if (DB.getSnapshot().presets.length > 0) {
commandsPresets.list = [];
DB.getSnapshot().presets.forEach((preset) => {
let dis = preset.name;
commandsPresets.list.push({
id: "applyPreset" + preset.id,
display: dis,
exec: () => {
PresetController.apply(preset.id);
TestUI.updateModesNotice();
},
});
});
}
}
let commandsRepeatQuotes = {
title: "Change repeat quotes...",
list: [
@ -1313,6 +1338,17 @@ export let defaultCommands = {
Commandline.show();
},
},
{
visible: false,
id: "applyPreset",
display: "Apply preset...",
subgroup: true,
exec: () => {
updatePresetCommands();
current.push(commandsPresets);
Commandline.show();
},
},
{
id: "changeConfidenceMode",
display: "Change confidence mode...",