Created
March 20, 2023 07:21
-
-
Save refracta/d57d5e4a10e2547eabf4d5ea4392d246 to your computer and use it in GitHub Desktop.
Large input scaler for ChatGPT
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function writeMessage(text) { | |
document.querySelector('textarea').value = text; | |
} | |
function clickSendButton() { | |
document.querySelector('button.absolute').click(); | |
} | |
function waitResponse() { | |
return new Promise(resolve => { | |
let interval = setInterval(() => { | |
let text = document.querySelector('.btn.relative.btn-neutral')?.textContent; | |
if (text === "Regenerate response") { | |
clearInterval(interval); | |
resolve(); | |
} | |
}, 100); | |
}); | |
} | |
async function sendMessage(text) { | |
writeMessage(text); | |
clickSendButton(); | |
await waitResponse(); | |
} | |
let firstMessage = 'I am going to provide you a book in multiple messages.'; | |
let insertMessage = 'Here is the next page, please do not respond aside from confirmation:\n\n'; | |
const splitLength = 2000; | |
await sendMessage(firstMessage); | |
while (localStorage.buffer.length > 0) { | |
let length = splitLength - insertMessage.length; | |
let text = localStorage.buffer.slice(0, length); | |
localStorage.buffer = localStorage.buffer.slice(length); | |
await sendMessage(insertMessage + text); | |
console.log(`text: ${text.substring(0, 20)}`); | |
} | |
const messageLimit = 20; | |
let i = setInterval(_ => { | |
let messages = Array.from(document.querySelectorAll('.flex-1.overflow-hidden > div > div > div > div:nth-child(1) > div')); | |
while (messages.length > messageLimit) { | |
messages.shift().remove(); | |
} | |
}, 100); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment