// ==UserScript==
// @name Character.AI Text Color
// @namespace Character.AI Text Color by Vishanka
// @match https://*.character.ai/c*
// @grant none
// @license MIT
// @version 1.1
// @author Vishanka via chatGPT
// @description Changes the color of all text except the text within "Quotation Marks"
// @icon https://i.imgur.com/ynjBqKW.png
// @downloadURL none
// ==/UserScript==
(function() {
var css = "p { color: #958C7F !important; }";
var head = document.getElementsByTagName("head")[0];
var style = document.createElement("style");
style.setAttribute("type", 'text/css');
style.innerHTML = css;
head.appendChild(style);
})();
function changeColors() {
const pTags = document.getElementsByTagName('p');
for (let i = 0; i < pTags.length; i++) {
const pTag = pTags[i];
if (pTag.dataset.colorChanged === 'true' || pTag.querySelector('code')) {
continue;
}
let text = pTag.innerHTML;
if (text.match(/(["“”«»].*?["“”«»])/)) {
text = text.replace(/(["“”«»].*?["“”«»])/g, '$1');
}
if (text.match(/(.*?)<\/em>/)) {
text = text.replace(/(.*?)<\/em>/g, '$1');
}
pTag.innerHTML = text;
pTag.dataset.colorChanged = 'true';
}
console.log('Changed colors');
}
// Observe changes in the document and call changeColors() whenever mutations occur
const observer = new MutationObserver(changeColors);
observer.observe(document, { subtree: true, childList: true });
// Initially apply the color changes
changeColors();