Refactor tag existence check to use label comparison and enhance logging for tag assignment. See #390
This commit is contained in:
parent
5efdf91570
commit
ea22caa23c
2 changed files with 50 additions and 6 deletions
|
|
@ -350,14 +350,42 @@ export async function createTag(tag) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function checkIfTagExists(tag, tags_list) {
|
// export function checkIfTagExists(tag, tags_list) {
|
||||||
return tags_list.hasOwnProperty("$ta-" + sanitizeString(tag));
|
// console.log(">>>>>>>>>>> checkIfTagExists tags_list: " + JSON.stringify(tags_list));
|
||||||
|
// console.log(">>>>>>>>>>> checkIfTagExists tag: " + tag);
|
||||||
|
// return tags_list.hasOwnProperty("$ta-" + sanitizeString(tag));
|
||||||
|
// }
|
||||||
|
|
||||||
|
export function checkIfTagLabelExists(tag_label, tags_list) {
|
||||||
|
console.log(">>>>>>>>>>> checkIfTagExists tags_list: " + JSON.stringify(tags_list));
|
||||||
|
console.log(">>>>>>>>>>> checkIfTagExists tag_label: " + tag_label);
|
||||||
|
const lowerTagLabel = tag_label.toLowerCase();
|
||||||
|
return Object.values(tags_list).some(label => label.tag.toLowerCase() === lowerTagLabel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// export async function assignTagsToMessage(messageId, tags) {
|
||||||
|
// console.log(">>>>>>>>>>> assignTagsToMessage messageId: tags: " + JSON.stringify(tags));
|
||||||
|
// tags = tags.map(tag => `$ta-${sanitizeString(tag)}`);
|
||||||
|
// let msg_prop = await browser.messages.get(messageId);
|
||||||
|
// tags = tags.concat(msg_prop.tags || []);
|
||||||
|
// try {
|
||||||
|
// return browser.messages.update(messageId, {tags: tags});
|
||||||
|
// } catch (error) {
|
||||||
|
// console.error('[ThunderAI] Error assigning tag [messageId: ', messageId, ' - tag: ', tag, ']:', error);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
export async function assignTagsToMessage(messageId, tags) {
|
export async function assignTagsToMessage(messageId, tags) {
|
||||||
tags = tags.map(tag => `$ta-${sanitizeString(tag)}`);
|
console.log(">>>>>>>>>>> assignTagsToMessage tags: " + JSON.stringify(tags));
|
||||||
|
let all_tags_list = await getTagsList();
|
||||||
|
all_tags_list = all_tags_list[1];
|
||||||
|
tags = getTagsKeyFromLabel(tags, all_tags_list);
|
||||||
|
console.log(">>>>>>>>>>> assignTagsToMessage tags after conversion: " + JSON.stringify(tags));
|
||||||
let msg_prop = await browser.messages.get(messageId);
|
let msg_prop = await browser.messages.get(messageId);
|
||||||
|
console.log(">>>>>>>>>>> assignTagsToMessage msg_prop.tags: " + JSON.stringify(msg_prop.tags));
|
||||||
tags = tags.concat(msg_prop.tags || []);
|
tags = tags.concat(msg_prop.tags || []);
|
||||||
|
tags = [...new Set(tags)];
|
||||||
|
console.log(">>>>>>>>>>> assignTagsToMessage tags after concat: " + JSON.stringify(tags));
|
||||||
try {
|
try {
|
||||||
return browser.messages.update(messageId, {tags: tags});
|
return browser.messages.update(messageId, {tags: tags});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -365,6 +393,22 @@ export async function assignTagsToMessage(messageId, tags) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTagsKeyFromLabel(tag_names, all_tags_list) {
|
||||||
|
const result = [];
|
||||||
|
|
||||||
|
tag_names.forEach(name => {
|
||||||
|
const lowerName = name.toLowerCase();
|
||||||
|
const match = Object.entries(all_tags_list).find(
|
||||||
|
([, value]) => value.tag.toLowerCase() === lowerName
|
||||||
|
);
|
||||||
|
if (match) {
|
||||||
|
result.push(match[0]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
function sanitizeString(input) {
|
function sanitizeString(input) {
|
||||||
input = input.toLowerCase();
|
input = input.toLowerCase();
|
||||||
// Define the regex to match valid characters
|
// Define the regex to match valid characters
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import { mzta_script } from './js/mzta-chatgpt.js';
|
||||||
import { prefs_default } from './options/mzta-options-default.js';
|
import { prefs_default } from './options/mzta-options-default.js';
|
||||||
import { mzta_Menus } from './js/mzta-menus.js';
|
import { mzta_Menus } from './js/mzta-menus.js';
|
||||||
import { taLogger } from './js/mzta-logger.js';
|
import { taLogger } from './js/mzta-logger.js';
|
||||||
import { getCurrentIdentity, getOriginalBody, replaceBody, setBody, i18nConditionalGet, generateCallID, migrateCustomPromptsStorage, migrateDefaultPromptsPropStorage, getGPTWebModelString, getTagsList, createTag, assignTagsToMessage, checkIfTagExists, getActiveSpecialPromptsIDs, checkSparksPresence, getMessages, getMailBody, extractJsonObject, contextMenuID_AddTags, contextMenuID_Spamfilter, sanitizeChatGPTModelData, sanitizeChatGPTWebCustomData, stripHtmlKeepLines } from './js/mzta-utils.js';
|
import { getCurrentIdentity, getOriginalBody, replaceBody, setBody, i18nConditionalGet, generateCallID, migrateCustomPromptsStorage, migrateDefaultPromptsPropStorage, getGPTWebModelString, getTagsList, createTag, assignTagsToMessage, checkIfTagLabelExists, getActiveSpecialPromptsIDs, checkSparksPresence, getMessages, getMailBody, extractJsonObject, contextMenuID_AddTags, contextMenuID_Spamfilter, sanitizeChatGPTModelData, sanitizeChatGPTWebCustomData, stripHtmlKeepLines } from './js/mzta-utils.js';
|
||||||
import { taPromptUtils } from './js/mzta-utils-prompt.js';
|
import { taPromptUtils } from './js/mzta-utils-prompt.js';
|
||||||
import { mzta_specialCommand } from './js/mzta-special-commands.js';
|
import { mzta_specialCommand } from './js/mzta-special-commands.js';
|
||||||
import { getSpamFilterPrompt } from './js/mzta-prompts.js';
|
import { getSpamFilterPrompt } from './js/mzta-prompts.js';
|
||||||
|
|
@ -161,8 +161,8 @@ async function _assign_tags(_data, create_new_tags = true) {
|
||||||
taLog.log("assign_tags data: " + JSON.stringify(_data));
|
taLog.log("assign_tags data: " + JSON.stringify(_data));
|
||||||
let new_tags = [];
|
let new_tags = [];
|
||||||
for (const tag of _data.tags) {
|
for (const tag of _data.tags) {
|
||||||
// console.log(">>>>>>>>>>>>>>> tag: " + tag);
|
// console.log(">>>>>>>>>>>>>>> tag: " + JSON.stringify(tag));
|
||||||
if (create_new_tags && !checkIfTagExists(tag, all_tags_list)) {
|
if (create_new_tags && !checkIfTagLabelExists(tag, all_tags_list)) {
|
||||||
taLog.log("Creating tag: " + tag);
|
taLog.log("Creating tag: " + tag);
|
||||||
await createTag(tag);
|
await createTag(tag);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue