tags assignment improved. see #183

This commit is contained in:
mic 2024-12-18 22:05:48 +01:00
parent 3bcf736e50
commit b9a802e676
2 changed files with 25 additions and 5 deletions

View file

@ -203,17 +203,21 @@ export async function createTag(tag) {
if(prefs_tag.add_tags_first_uppercase) tag = tag.toLowerCase().charAt(0).toUpperCase() + tag.toLowerCase().slice(1);
try {
if(await isThunderbird128OrGreater()) {
return browser.messages.tags.create('ta-'+tag.toLowerCase(), tag, generateHexColorForTag());
return browser.messages.tags.create('$ta-'+sanitizeString(tag), tag, generateHexColorForTag());
}else{
return browser.messages.createTag('ta-'+tag.toLowerCase(), tag, generateHexColorForTag());
return browser.messages.createTag('$ta-'+sanitizeString(tag), tag, generateHexColorForTag());
}
} catch (error) {
console.error('[ThunderAI] Error creating tag:', error);
}
}
export function checkIfTagExists(tag, tags_list) {
return tags_list.hasOwnProperty("$ta-" + sanitizeString(tag));
}
export async function assignTagsToMessage(messageId, tags) {
tags = tags.map(tag => `ta-${tag.toLowerCase()}`);
tags = tags.map(tag => `$ta-${sanitizeString(tag)}`);
let msg_prop = await browser.messages.get(messageId);
tags = tags.concat(msg_prop.tags || []);
try {
@ -223,6 +227,22 @@ export async function assignTagsToMessage(messageId, tags) {
}
}
function sanitizeString(input) {
input = input.toLowerCase();
// Define the regex to match valid characters
const regex = /^[^ ()/{%*<>"]+$/;
// Filter out invalid characters from the string
let sanitized = '';
for (const char of input) {
// Check if the character is valid according to the regex
if (regex.test(char)) {
sanitized += char;
}
}
return sanitized;
}
function generateHexColorForTag() {
const red = Math.floor(Math.random() * 256);
const green = Math.floor(Math.random() * 256);

View file

@ -20,7 +20,7 @@ import { mzta_script } from './js/mzta-chatgpt.js';
import { prefs_default } from './options/mzta-options-default.js';
import { mzta_Menus } from './js/mzta-menus.js';
import { taLogger } from './js/mzta-logger.js';
import { getCurrentIdentity, getOriginalBody, replaceBody, setBody, i18nConditionalGet, generateCallID, migrateCustomPromptsStorage, migrateDefaultPromptsPropStorage, getGPTWebModelString, getTagsList, createTag, assignTagsToMessage } from './js/mzta-utils.js';
import { getCurrentIdentity, getOriginalBody, replaceBody, setBody, i18nConditionalGet, generateCallID, migrateCustomPromptsStorage, migrateDefaultPromptsPropStorage, getGPTWebModelString, getTagsList, createTag, assignTagsToMessage, checkIfTagExists } from './js/mzta-utils.js';
await migrateCustomPromptsStorage();
await migrateDefaultPromptsPropStorage();
@ -241,7 +241,7 @@ messenger.runtime.onMessage.addListener((message, sender, sendResponse) => {
let new_tags = [];
for (const tag of message.tags) {
console.log(">>>>>>>>>>>>>>> tag: " + tag);
if (!all_tags_list.hasOwnProperty("ta-" + tag.toLowerCase())) {
if (!checkIfTagExists(tag, all_tags_list)) {
taLog.log("Creating tag: " + tag);
await createTag(tag);
}