fixed focus task

This commit is contained in:
liyunze 2026-09-14 12:53:53 +08:00
parent 9b9e301076
commit 0599700c5b
3 changed files with 29 additions and 36 deletions

View file

@ -2,7 +2,7 @@ const auth = (function () {
// Authentication and channels - required
const channel = ""; // your channel
const username = ""; // bot account
const oauth = ""; // should be oauth:xxxxxxxxxxxx from the bot account DO NOT INCLUDE oauth:
const oauth = ""; // should be oauth:xxxxxxxxxxxx from the bot account
return {
channel,

View file

@ -1,9 +1,5 @@
function isInt(value) {
return (
!isNaN(value) &&
parseInt(Number(value)) === value &&
!isNaN(parseInt(value, 10))
);
return /^\d+$/.test(String(value).trim());
}
function createErrorResponse(errorMessage, errorType, status = 0) {

View file

@ -196,41 +196,38 @@ async function focusTask(username, userColor, task) {
);
}
let index = tasks[username].todos.findIndex(
(t) => t.text.toLowerCase() === task.toLowerCase()
);
let index = -1;
if (index === -1) {
if (isInt(task)) {
index = parseInt(task) - 1;
} else if (task !== "") {
let addTaskFunction = await _addTask(username, userColor, task);
if (addTaskFunction.status !== 200) {
return addTaskFunction;
}
index = addTaskFunction.body.addedTaskIndices[0].index;
tasks = await DBHandler.get("tasks");
} else if (incompleteTasks.length === 1) {
index = tasks[username].todos.findIndex((t) => !t.done);
}
if (index < 0 || index > tasks[username].todos.length - 1) {
return createErrorResponse(
`@${username} invalid input`,
getResponse("specifyFocusTask")
);
}
if (isInt(task)) {
index = parseInt(task, 10) - 1;
} else {
if (tasks[username].todos[index].done) {
return createErrorResponse(
`@${username} task is already completed`,
getResponse("specifyFocusTask")
);
index = tasks[username].todos.findIndex(
(t) => t.text.toLowerCase() === task.toLowerCase()
);
if (index === -1) {
if (task !== "") {
let addTaskFunction = await _addTask(username, userColor, task);
if (addTaskFunction.status !== 200) {
return addTaskFunction;
}
index = addTaskFunction.body.addedTaskIndices[0].index;
tasks = await DBHandler.get("tasks");
} else if (incompleteTasks.length === 1) {
index = tasks[username].todos.findIndex((t) => !t.done);
}
}
}
if (index < 0 || index > tasks[username].todos.length - 1) {
return createErrorResponse(
`@${username} invalid input`,
getResponse("specifyFocusTask")
);
}
let focusedTask = tasks[username].todos[index].text;
if (tasks[username].todos[index].focus) {