// Рядом с кнопкой отправки должен быть тоггл для включения скрипта, // по нажатию на который оно отправляет промпт и ждет ответ. // Если в ответе изображения, то качает их и жмет Сгенерировать снова. // Если одна из ошибок / нет изображений, то отправляет промпт снова. var prompt = "Don't answer, it's just a test." var sendButton = document.querySelector('button[data-testid*=chat]') var textArea = document.querySelector('textarea[data-testid*=chat_input]') sendButton.disabled = false; sendButton.classList.remove('semi-button-disabled', 'semi-button-primary-disabled'); sendButton.classList.add('semi-button-primary'); sendButton.style.pointerEvents = 'auto'; textArea.focus(); textArea.defaultValue = prompt; textArea.innerHTML = prompt; textArea.textContent = prompt; sendButton.focus(); sendButton.click(); // Листает страницу вверх, грабает ссылки на пикчи и качает их. var URLs = {urls:[]}; let scrollDiv = document.querySelector('div[class*=scrollable]'); let chatDiv = document.querySelector('.inter-_4ae0b'); let loadMoreDiv = document.querySelector('div[class*=load-more]').parentElement; function scroll() { scrollDiv.scroll(0, -scrollDiv.scrollHeight); } let callback1 = function() { console.log(URLs.urls); } var observer = new MutationObserver( function (e) { // new messages loaded if (e[0].target == chatDiv) { setTimeout(scroll, 1000); URLs.urls = URLs.urls.concat([].map.call(document.querySelectorAll('img[src*=text2img]'), i=>i.src)); console.log(URLs.urls); } // load-more animation got removed = top of the chat history if (e.lastItem.target == loadMoreDiv) { callback1(); } }); observer.observe(chatDiv, { childList: true }); observer.observe(loadMoreDiv, { childList: true }); scroll();