// ==UserScript==
// @name YouTube Comments Delete Advanced
// @name:ru Удаление комментариев на YouTube (расширенный)
// @name:de Erweitertes Löschen von YouTube-Kommentaren
// @name:uk Розширене видалення коментарів на YouTube
// @name:zh YouTube评论删除高级
// @name:ja YouTubeコメント削除の高度な機能
// @name:nl Geavanceerd verwijderen van YouTube-reacties
// @name:pt Exclusão Avançada de Comentários do YouTube
// @name:es Eliminación Avanzada de Comentarios de YouTube
// @name:it Eliminazione Avanzata dei Commenti su YouTube
// @name:ar حذف تعليقات YouTube المتقدمة
// @name:fr Suppression avancée des commentaires YouTube
// @name:pl Zaawansowane usuwanie komentarzy na YouTube
// @name:az YouTube Şərhlərinin Ətraflı Silinməsi
// @name:kz YouTube Пікірлерінің Кеңейтілген Жою
// @name:hy YouTube-ի Դիտորդների Գրանցված Պատկերասրահները
// @name:af YouTube Kommentaarverwydering Gevorderd
// @name:ab YouTube-ре Комментариев Ирытхьит Къаьнапре
// @name:bn ইউটিউব মন্তব্য মুছে দেওয়ার উন্নত বিষয়বস্তু
// @name:bs Napredno brisanje komentara na YouTube-u
// @name:ka YouTube-ის კომენტარების გაუქმების გაფართოება
// @name:da Avanceret sletning af kommentarer på YouTube
// @name:he מחיקת תגובות מתקדמת ביוטיוב
// @name:yi אויפפירן קאָמענטאַרן אויף יוטוב אַדוואַנסירט
// @name:id Penghapusan Komentar YouTube yang Lanjutan
// @name:is Áframhaldandi Eyðing á Athugasemdum á YouTube
// @name:kk YouTube Пікірлерінің Қиындылығы
// @name:ky YouTube Комментарийлерди Өчүрүүнүн кеңири
// @name:km ការលុបមតិយោបល់នៅលើ YouTube ដោយកម្រិតខ្ពស់
// @name:et Edasijõudnud YouTube'i kommentaaride kustutamine
// @name:lv YouTube Komentāru Papildināts Dzēšana
// @name:lt Pažangus „YouTube“ komentarų trynimas
// @name:ce YouTube-до Шхаштунаьхнах комментариев яцагийн
// @name:hi YouTube पर टिप्पणियों का उन्नत रूप से हटाना
// @name:tk YouTube-da maglumatlaryň gowjaňlaýyn
// @name:tr YouTube Yorumlarınızın Gelişmiş Silinmesi
// @name:uz YouTube Sharhlaringizni Gelişgan o'chirish
// @name:fa حذف پیشرفته نظرات یوتیوب
// @name:el Προηγμένη διαγραφή σχολίων στο YouTube
// @name:be Расшыранае выдаленне каментароў на YouTube
// @description Convenient deletion of your comments on YouTube, on the comment history page https://www.youtube.com/feed/history/comment_history
// @description:ru Удобное удаление своих комментариев на YouTube, на странице истории https://www.youtube.com/feed/history/comment_history
// @description:de Bequemes Löschen Ihrer Kommentare auf YouTube auf der Kommentarverlauf-Seite https://www.youtube.com/feed/history/comment_history
// @description:uk Зручне видалення ваших коментарів на YouTube, на сторінці історії коментарів https://www.youtube.com/feed/history/comment_history
// @description:zh 在YouTube上方便删除您的评论,位于评论历史页面 https://www.youtube.com/feed/history/comment_history
// @description:ja YouTubeのコメント履歴ページhttps://www.youtube.com/feed/history/comment_historyで自分のコメントを便利に削除する
// @description:nl Handig verwijderen van uw opmerkingen op YouTube, op de pagina met commentaargeschiedenis https://www.youtube.com/feed/history/comment_history
// @description:pt Exclusão conveniente dos seus comentários no YouTube, na página de histórico de comentários https://www.youtube.com/feed/history/comment_history
// @description:es Eliminación conveniente de sus comentarios en YouTube, en la página de historial de comentarios https://www.youtube.com/feed/history/comment_history
// @description:it Comoda eliminazione dei tuoi commenti su YouTube, nella pagina della cronologia dei commenti https://www.youtube.com/feed/history/comment_history
// @description:ar حذف مريح لتعليقاتك على YouTube، على صفحة تاريخ التعليقات https://www.youtube.com/feed/history/comment_history
// @description:fr Suppression pratique de vos commentaires sur YouTube, sur la page d'historique des commentaires https://www.youtube.com/feed/history/comment_history
// @description:pl Wygodne usuwanie swoich komentarzy na YouTube, na stronie historii komentarzy https://www.youtube.com/feed/history/comment_history
// @description:az YouTube-da öz şərhlərinizin rahat silinməsi, şərhlərin tarix səhifəsində https://www.youtube.com/feed/history/comment_history
// @description:kz YouTube-дағы комментарилеріңіздің оңтай өшіруі, комментарий тарихы бетінде https://www.youtube.com/feed/history/comment_history
// @description:hy Ձեր մերժումների հեշտ ջնջումը YouTube- ում, մեկնաբանության պատմության էջում https://www.youtube.com/feed/history/comment_history
// @description:af Gerieflike verwydering van jou kommentaar op YouTube, op die kommentaar geskiedenis bladsy https://www.youtube.com/feed/history/comment_history
// @description:ab ГӀавзендагаш вашхӀа комментариеваш на YouTube, на страницан лхарьваруш https://www.youtube.com/feed/history/comment_history
// @description:bn ইউটিউবে আপনার মন্তব্যগুলি সুবিধাজনকভাবে মুছে ফেলা, মন্তব্যের ইতিহাস পৃষ্ঠায় https://www.youtube.com/feed/history/comment_history
// @description:bs Prikladno brisanje vaših komentara na YouTubeu, na stranici povijesti komentara https://www.youtube.com/feed/history/comment_history
// @description:ka თქვენი კომენტარების წაშლა YouTube- ზე, კომენტარების ისტორიის გვერდზე https://www.youtube.com/feed/history/comment_history
// @description:da Bequemes Löschen Ihrer Kommentare auf YouTube auf der Kommentarverlauf-Seite https://www.youtube.com/feed/history/comment_history
// @description:he מחיקה נוחה של ההערות שלך ב- YouTube, בדף ההיסטוריית ההערות https://www.youtube.com/feed/history/comment_history
// @description:yi געמיטלעך פון דיין קאָמענטאַרן אויפן יוטוב, אויף די קאָמענט ארכיו זײַט https://www.youtube.com/feed/history/comment_history
// @description:id Penghapusan komentar YouTube Anda yang nyaman, di halaman riwayat komentar https://www.youtube.com/feed/history/comment_history
// @description:is Þægilegt eyða athugasemdum þínum á YouTube, á athugasemdarsögu síðunni https://www.youtube.com/feed/history/comment_history
// @description:kk YouTube-дегі пікірлеріңіздің ыңғай жоюы, пікірлер тарихы бетінде https://www.youtube.com/feed/history/comment_history
// @description:ky YouTube-дагы комментарийлериңизди колдонмонун тарыхы бетиндеги ыңғайтуу өчүргүлөрү https://www.youtube.com/feed/history/comment_history
// @description:km ការលុបស្ថានភាពរបស់លោកអ្នកនៅលើយូធូប YouTube, នៅលើទំព័រប្រវត្តិសាស្ត្រនៃយូធូប https://www.youtube.com/feed/history/comment_history
// @description:et Teie kommentaaride mugav kustutamine YouTube'is, kommentaaride ajaloo lehel https://www.youtube.com/feed/history/comment_history
// @description:lv Jūsu komentāru ērta dzēšana YouTube, komentāru vēstures lapā https://www.youtube.com/feed/history/comment_history
// @description:lt Patogus jūsų komentarų šalinimas „YouTube“, komentarų istorijos puslapyje https://www.youtube.com/feed/history/comment_history
// @description:ce YouTube-са бакъыт вац сацарыгӀ комментариев хьа егатарш, комментариев тариххаш https://www.youtube.com/feed/history/comment_history
// @description:hi यूट्यूब पर अपने टिप्पणियों को सुविधाजनक रूप से हटाना, टिप्पणी इतिहास पृष्ठ पर https://www.youtube.com/feed/history/comment_history
// @description:tk YouTube-da öz diňe kommentlerinizi gowjaňlaýyn, kommentler tarapyndan geçirýän sahypa https://www.youtube.com/feed/history/comment_history
// @description:tr YouTube'daki yorumlarınızı rahatça silme, yorum geçmişi sayfasında https://www.youtube.com/feed/history/comment_history
// @description:uz Sizning fikrlaringizni YouTube-da qulay o'chirish, fikrlar tarixi sahifasida https://www.youtube.com/feed/history/comment_history
// @description:fa حذف راحت نظرات شما در YouTube، در صفحه تاریخچه نظرات https://www.youtube.com/feed/history/comment_history
// @description:el Εύκολη διαγραφή των σχολίων σας στο YouTube, στη σελίδα ιστορικού σχολίων https://www.youtube.com/feed/history/comment_history
// @description:be Зручнае выдаленне вашых каментараў на YouTube, на старонцы гісторыі каментароў https://www.youtube.com/feed/history/comment_history
// @namespace https://greasyfork.org/users/1221433
// @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @version 1.20
// @author Sitego
// @match *://myactivity.google.com/*
// @include *://www.youtube.com/feed/history/*
// @grant GM_getResourceText
// @license MIT
// @category YouTube
// ==/UserScript==
(function () {
'use strict';
function addButtons() {
var deleteButtons = document.querySelectorAll('div[class^="VfPpkd-Bz112c-"]');
deleteButtons.forEach(function (button) {
if (!button.closest('[aria-haspopup="menu"]')) {
if (!button.parentNode.querySelector('.comment-checkbox')) {
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.className = 'comment-checkbox';
button.parentNode.insertBefore(checkbox, button);
checkbox.addEventListener('change', function () {
updateDeleteButtonState();
});
checkbox.addEventListener('mouseover', function (event) {
handleCheckboxMouseover(event, checkbox);
});
}
}
});
if (!document.querySelector('.delete-all-button')) {
var deleteAllButton = document.createElement('button');
deleteAllButton.textContent = 'Delete Selected Comments';
deleteAllButton.className = 'delete-all-button';
deleteAllButton.disabled = true;
deleteAllButton.addEventListener('click', function () {
deleteSelectedComments();
});
if (deleteButtons.length > 0) {
deleteButtons[0].parentNode.parentNode.insertBefore(deleteAllButton, deleteButtons[0].parentNode);
}
}
if (!document.querySelector('.select-all-button')) {
var selectAllButton = document.createElement('button');
selectAllButton.textContent = 'Select All';
selectAllButton.className = 'select-all-button';
selectAllButton.addEventListener('click', function () {
selectAllCheckboxes();
});
if (deleteButtons.length > 0) {
deleteButtons[0].parentNode.parentNode.insertBefore(selectAllButton, deleteButtons[0].parentNode);
}
}
if (!document.querySelector('.clear-all-button')) {
var clearAllButton = document.createElement('button');
clearAllButton.textContent = 'Clear All';
clearAllButton.className = 'clear-all-button';
clearAllButton.addEventListener('click', function () {
clearAllCheckboxes();
});
if (deleteButtons.length > 0) {
deleteButtons[0].parentNode.parentNode.insertBefore(clearAllButton, deleteButtons[0].parentNode);
}
}
}
function updateDeleteButtonState() {
var deleteAllButton = document.querySelector('.delete-all-button');
var checkboxes = document.querySelectorAll('.comment-checkbox');
var anyChecked = Array.from(checkboxes).some(function (checkbox) {
return checkbox.checked;
});
if (deleteAllButton) {
if (anyChecked) {
deleteAllButton.removeAttribute('disabled');
} else {
deleteAllButton.setAttribute('disabled', 'disabled');
}
}
}
function deleteSelectedComments() {
var checkboxes = document.querySelectorAll('.comment-checkbox');
checkboxes.forEach(function (checkbox) {
if (checkbox.checked) {
var deleteButton = checkbox.nextElementSibling;
deleteButton.click();
}
});
}
function selectAllCheckboxes() {
var checkboxes = document.querySelectorAll('.comment-checkbox');
checkboxes.forEach(function (checkbox) {
checkbox.checked = true;
});
updateDeleteButtonState();
}
function clearAllCheckboxes() {
var checkboxes = document.querySelectorAll('.comment-checkbox');
checkboxes.forEach(function (checkbox) {
checkbox.checked = false;
});
updateDeleteButtonState();
}
function handleCheckboxMouseover(event, currentCheckbox) {
if (currentCheckbox.checked) {
currentCheckbox.checked = false;
} else {
currentCheckbox.checked = true;
}
}
window.addEventListener('load', function () {
addButtons();
});
document.addEventListener('DOMSubtreeModified', function () {
updateDeleteButtonState();
addButtons();
});
var buttonStyles = document.createElement('style');
buttonStyles.textContent = `
.delete-all-button, .select-all-button, .clear-all-button {
position: fixed;
top: 50%;
right: 20px;
transform: translateY(-50%);
background-color: red;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
z-index: 9999;
margin-bottom: 10px;
font-weight: bold;
}
.delete-all-button:hover, .select-all-button:hover, .clear-all-button:hover {
background-color: #777;
}
.select-all-button {
top: 40%;
background-color: #1988FF;
font-weight: bold;
}
.clear-all-button {
top: 60%;
background-color: #1DA044;
font-weight: bold;
}
`;
document.head.appendChild(buttonStyles);
var checkboxStyles = document.createElement('style');
checkboxStyles.textContent = `
.comment-checkbox {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
width: 24px;
height: 24px;
border: 3px solid #ccc;
border-radius: 5px;
cursor: pointer;
float: right;
margin-right: -4em;
}
.comment-checkbox:checked {
background-color: #007bff;
border-color: #007bff;
}
.comment-checkbox:checked::after {
content: '\\2713';
font-size: 18px;
color: white;
margin-left: 4px;
}
.comment-checkbox:hover {
background-color: #007bff;
}
`;
document.head.appendChild(checkboxStyles);
})();