diff --git a/src/CleanMyPosts/Scripts/delete-all-youtube-likes.js b/src/CleanMyPosts/Scripts/delete-all-youtube-likes.js index 8a890f2..6ed333e 100644 --- a/src/CleanMyPosts/Scripts/delete-all-youtube-likes.js +++ b/src/CleanMyPosts/Scripts/delete-all-youtube-likes.js @@ -14,6 +14,18 @@ async function DeleteAllYouTubeLikes(waitAfterDelete = 1000, waitBetweenDeleteAt console.log(`[${new Date().toLocaleTimeString()}] ${msg}`); } + // A Google feedback/survey dialog can pop up mid-run and, being modal, blocks + // the next click. Dismiss it whenever it appears. + function dismissSurveyBanner() { + const closeBtn = document.querySelector('button[aria-label="Close this dialog"]'); + if (closeBtn && closeBtn.getBoundingClientRect().width > 0) { + closeBtn.click(); + log("[dismissSurveyBanner] Dismissed feedback/survey banner."); + return true; + } + return false; + } + // Multilingual patterns for "Remove from Liked videos" const removePatterns = [ // English @@ -299,6 +311,7 @@ async function DeleteAllYouTubeLikes(waitAfterDelete = 1000, waitBetweenDeleteAt let videoNumber = 1; while (failures < maxFailures) { + dismissSurveyBanner(); const found = await waitForVideo(5000, 300); if (!found) { failures++; diff --git a/src/CleanMyPosts/Scripts/delete-all-youtube-posts.js b/src/CleanMyPosts/Scripts/delete-all-youtube-posts.js index b24ec16..c9c0463 100644 --- a/src/CleanMyPosts/Scripts/delete-all-youtube-posts.js +++ b/src/CleanMyPosts/Scripts/delete-all-youtube-posts.js @@ -14,6 +14,18 @@ async function DeleteAllYouTubeComments(waitAfterDelete = 1000, waitBetweenDelet console.log(`[${new Date().toLocaleTimeString()}] ${msg}`); } + // A Google feedback/survey dialog can pop up mid-run and, being modal, blocks + // the next delete click. Dismiss it whenever it appears. + function dismissSurveyBanner() { + const closeBtn = document.querySelector('button[aria-label="Close this dialog"]'); + if (closeBtn && closeBtn.getBoundingClientRect().width > 0) { + closeBtn.click(); + log("[dismissSurveyBanner] Dismissed feedback/survey banner."); + return true; + } + return false; + } + async function waitForDeleteButton(maxWait = 5000, interval = 300) { const start = Date.now(); while (true) { @@ -113,6 +125,7 @@ async function DeleteAllYouTubeComments(waitAfterDelete = 1000, waitBetweenDelet let commentNumber = 1; while (failures < maxFailures) { + dismissSurveyBanner(); const found = await waitForDeleteButton(5000, 300); if (!found) { failures++;