Іноді виникає необхідність очистити стіну групи або паблік від всіх або більшості постів. Така потреба може виникнути, наприклад, якщо власник прийняв рішення круто змінити тематику групи. Сервіс «Вконтакте» дозволяє видаляти пости тільки по одному. Навіть якщо в групі є сто постів, це незручно. А як видалити всі пости, якщо їх п'ять тисяч? Для цього існують скрипти на JavaScript, що дозволяють автоматизувати цей нудний процес.
1. Скрипт для видалення всіх постів групи.
Перший скрипт дозволяє повністю видалити всі пости групи. Для того, щоб це виконати, зайдіть в свою групу і перейдіть стіну якомога нижче. Потім потрібно зайти в консоль, натиснувши клавішу <F12> (або права кнопка миші і пункт меню «Подивитися код» або «Дослідити елемент», в залежності від браузера). У кульгавого вона виглядає так.
Після цього скопіюйте скрипт, наведений нижче, і вставте його в консоль:
(Function () { 'use strict'; if (! Confirm ( 'Видалити всі записи зі стіни?')) Return; var deletePostLink = document.body.querySelectorAll ( 'a.ui_actions_menu_item [onclick ^ = "wall.deletePost"] '); for (var i = 0; i <deletePostLink.length; i ++) {deletePostLink [i] .click ();} alert (deletePostLink.length +' posts deleted ');} ());
Коли браузер запитає підтвердження дії, схвалите його. Після цього, якщо ви прокрутили стіну групи далеко-далеко вниз, запасіться терпінням, щоб дочекатися закінчення очищення.
2. Скрипт для видалення всіх постів, крім кількох верхніх.
Припустимо, ви змінили тематику групи і вже створили кілька постів, і тільки потім надумали видалити свої старі записи. Другий скрипт дозволяє залишити нові пости в цілості й схоронності, вам тільки порахувати їх кількість.
Зайдіть в групу (прокручувати стіну вниз не потрібно), потім в консоль браузера і скопіюйте туди наступний код:
var test = false, offset = 50, pause = 1, count = 0; function itit () {offset = prompt ( 'Кількість перших записів які потрібно залишити. \ nУбедітесь що на сторінці є більше більше ніж вказану кількість' , 50); pause = prompt ( 'Пауза в секундах перед запитами (рекомендуємо 1-10)', 1); test = confirm ( "Ви підтверджуєте що хочете видалити всі записів в групі / сторінці? \ nКроме перших" + offset + "\ n \ nНаблюдать за процесом можна в консолі (F12> console). \ nЧтоби зупинити видалення, просто закрийте сторінку. "); document.querySelectorAll ( '# wall_more_link') [0] .click (); scrollingTest ()} function scrollingTest ( ) {document.querySelectorAll ( '# wall_more_link') [0] .click (); var posts = document.querySelectorAll ( 'div._post'); console.log ( 'Пр едварітельная завантаження записів ', posts.length,' з ', offset * 2); if (posts.length <offset * 2) {setTimeout (function () {scrollingTest ()}, 1500);} else {setTimeout (function ( ) {removePost ();}, 1500);}} function removePost () {document.body.scrollTop = 9999999; if (test == true) {count ++; var post = document.querySelectorAll ( 'div._post') [ offset]; if (post) {console.log ( 'видалення поста з id' + post.id); post.scrollIntoView (); post.querySelector ( '[onclick * = "deletePost"]'). click (); if (count> 10) {console.log ( 'Натискання на кнопку "показати ще"'); count = 0; document.querySelectorAll ( '# wall_more_link') [0] .click ();} setTimeout (function () { post.remove (); removePost ();}, pause * 1000);} else {alert ( 'Схоже що пости закінчилися або потрібна перезапустити скрипт');}}} itit ();
Після появи діалогового вікна введіть в рядок, скільки верхній повідомлень потрібно залишити, і натисніть.
Потім, у другому діалоговому вікні, виберіть час в секундах перед запитами, після, в третьому діалоговому вікні, підтвердіть дію. За виконанням процедури ви зможете спостерігати в консолі. Якщо захочете зупинити процес видалення постів, досить закрити вкладку з групою, або вікно браузера. Недолік цього скрипта тільки один - він занадто повільний.
3. Скрипт для видалення всіх постів по заданому критерію.
Якщо перші два скрипта працювали тільки на головній сторінці групи або паблік, третій скрипт працює з вибіркою записів. Ось він:
(Function () { 'use strict'; if (! Confirm ( 'Видалити всі записи зі стіни?')) Return; var deletePostLink = document.body.querySelectorAll ( 'a.ui_actions_menu_item [onclick ^ = "wall.deletePost"] '); for (var i = 0; i <deletePostLink.length; i ++) {deletePostLink [i] .click ();} alert (deletePostLink.length +' posts deleted ');} ());
Щоб його застосувати, здійснимо пошук по групі. Для цього вам потрібно пройти по посиланню «Записи спільноти».
A. Видалення постів за ключовим словом.
Припустимо, група Вконтакте раніше була присвячена котиків, а тепер - автомобілям. У цьому випадку спочатку здійснюємо пошук по слову «кішки», а потім прокручуємо сторінку з результатами пошуку якомога нижче, заходимо в консоль і вводимо скрипт в командний рядок.
Готово! Всі записи з котиками видалені.
B. Видалення постів старше певної дати.
Цей варіант буде корисний, якщо ви пам'ятаєте хоча б приблизно день, коли ви, наприклад, змінили тематику групи або прийняли рішення видалити всі ті записи, які зробили, коли були дуже юні. Припустимо, потрібно видалити всі записи, які старше 31 серпня 2016 року. Проходимо по посиланню «Записи спільноти» і переходимо до пошуку по записах - посилання в меню справа.
Тепер в пошуковому рядку ми бачимо ікону календаря. Вона нам і потрібна.
Задаємо потрібну дату.
Тепер потрібно прокрутити результати пошуку якомога нижче, відкрити консоль, ввести в неї третій скрипт і підтвердити дію.
Схожі записи:
А як видалити всі пости, якщо їх п'ять тисяч?Видалити всі записи зі стіни?
Ви підтверджуєте що хочете видалити всі записів в групі / сторінці?
Видалити всі записи зі стіни?