tags assignment improved. see #183
This commit is contained in:
parent
3bcf736e50
commit
b9a802e676
2 changed files with 25 additions and 5 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue