COrrectly handling the carraige returns. Fixes #9

This commit is contained in:
mic 2024-04-02 00:50:30 +02:00
parent 1e283cb2aa
commit bc3dff856e
2 changed files with 17 additions and 4 deletions

View file

@ -35,9 +35,11 @@ async function chatgpt_getFromDOM(pos) {
strPos = pos.toString().toLowerCase();
let response = '';
if (responseDivs.length) {
if (/last|final/.test(strPos)) // get last response
if (/last|final/.test(strPos)){ // get last response
responseDivs[responseDivs.length - 1].innerHTML = responseDivs[responseDivs.length - 1].innerHTML.replace(/<\\/p>/g, '</p>\\n\\n').replace(/<br\\s*\\/?>/g, '<br>\\n');
response = responseDivs[responseDivs.length - 1].textContent;
else { // get nth response
//console.log('chatgpt_getFromDOM: [HTML] ' + responseDivs[responseDivs.length - 1].innerHTML.replace(/<div[^>]*>/gi, '').replace(/<\\/div>/gi, '').replace(/<svg[^>]*>/gi, '').replace(/<\\/svg>/gi, '').replace(/<path[^>]*>/gi, '').replace(/<\\/path>/gi, '').replace(/<text[^>]*>/gi, '').replace(/<\\/text>/gi, '').replace(/<span[^>]*>/gi, '').replace(/<\\/span>/gi, '').replace(/<button[^>]*>/gi, '').replace(/<\\/button>/gi, ''));
} else { // get nth response
const nthOfResponse = (
// Calculate base number
@ -63,6 +65,7 @@ async function chatgpt_getFromDOM(pos) {
response = responseDivs[nthOfResponse - 1].textContent;
}
response = response.replace(/^ChatGPTChatGPT/, ''); // strip sender name
//console.log('chatgpt_getFromDOM: ' + response);
}
return response;
}

View file

@ -45,10 +45,20 @@ messenger.runtime.onMessage.addListener((message, sender, sendResponse) => {
browser.tabs.sendMessage(message.tabId, { command: "replaceSelectedText", text: message.text });
return true;
case 'chatgpt_replyMessage':
//console.log('message.text: ' + message.text);
const chunks = message.text.split(/\n{2,}/);
const paragraphs = chunks.map((t) => {
const p = document.createElement("p");
p.innerText = t;
return p;
});
const paragraphsHtmlString = paragraphs.map(p => p.outerHTML).join("");
//console.log('paragraphsHtmlString: ' + paragraphsHtmlString);
browser.messageDisplay.getDisplayedMessage(message.tabId).then((mailMessage) => {
browser.compose.beginReply(mailMessage.id, {
browser.compose.beginReply(mailMessage.id, "replyToAll", {
type: "reply",
body: message.text
body: paragraphsHtmlString,
isPlainText: false,
})
});
break;