- Статьи
- 2021-11-07
(Как) Удалить все треки из VK
3. На странице с музыкой нажать F12. Появится окно консоли, после стрелочки вставить код:
4. Нажать ENTER. Окно начнет скролить в самый низ списка, затем начнется удаление (Может занять некоторое время, особенно для больших списков; из-за медленного интернета скрипт может решить что список уже закончился и начать удаление, тогда надо будет его перезапустить)
delete-all.js
//Сюда вписать через запятую названия своих треков, которые хотите сохранить
//Например: ["Цвет настроения", "За любовь", "Каждый раз"]
// Кстати Цвет настроения сохранится и черный и синий :D
var filter = ["Your-favorite-track-name"];
//scroll down at max
function scrollDown(callback){
let scroll = document.body.scrollHeight;
let lastScroll = scroll;
window.scrollTo(0,document.body.scrollHeight);
requestAnimationFrame(function(){
scroll = document.body.scrollHeight;
if(scroll != lastScroll)
scrollDown(callback);
else callback();
});
}
scrollDown(function(){
var list = document.querySelectorAll(".audio_row");
console.log(`Total songs: ${list.length}`);
function del(obj) {
console.log(`delete ${obj.title}`);
ajax.post("al_audio.php", {
act: "delete_audio",
oid: obj.ownerId,
aid: obj.id,
hash: obj.deleteHash,
restore: 1
});
}
list.forEach(function(el) {
let obj = AudioUtils.asObject(AudioUtils.getAudioFromEl(el));
for (let i in filter)
if (obj.title.includes(filter[i])) {
console.log(`keep ${obj.title}`);
return;
}
del(obj);
});
});
filter-inverted.js
//В этой версии удаляться будут только треки из списка
//Сюда вписать через запятую названия своих треков, которые хотите удалить :)
//Например: ["Never gonna give you up", "Крылья", "Automatonic electronic harmonics"]
var filter = ["Your-hated-track-name"];
//scroll down at max
function scrollDown(callback){
let scroll = document.body.scrollHeight;
let lastScroll = scroll;
window.scrollTo(0,document.body.scrollHeight);
requestAnimationFrame(function(){
scroll = document.body.scrollHeight;
if(scroll != lastScroll)
scrollDown(callback);
else callback();
});
}
scrollDown(function(){
var list = document.querySelectorAll(".audio_row");
console.log(`Total songs: ${list.length}`);
function del(obj) {
console.log(`delete ${obj.title}`);
ajax.post("al_audio.php", {
act: "delete_audio",
oid: obj.ownerId,
aid: obj.id,
hash: obj.deleteHash,
restore: 1
});
}
list.forEach(function(el) {
let obj = AudioUtils.asObject(AudioUtils.getAudioFromEl(el));
for (let i in filter)
if (obj.title.includes(filter[i])) {
del(obj);
return;
}
});
});
no-scroll.js
// Эта версия не будет скроллить страницу
//Сюда вписать через запятую названия своих треков, которые хотите сохранить
//Например: ["Цвет настроения", "За любовь", "Каждый раз"]
var filter = ["Your-favorite-track-name"];
//scroll down at max
function scrollDown(callback){
callback();
return;
let scroll = document.body.scrollHeight;
let lastScroll = scroll;
window.scrollTo(0,document.body.scrollHeight);
requestAnimationFrame(function(){
scroll = document.body.scrollHeight;
if(scroll != lastScroll)
scrollDown(callback);
else callback();
});
}
scrollDown(function(){
var list = document.querySelectorAll(".audio_row");
console.log(`Total songs: ${list.length}`);
function del(obj) {
console.log(`delete ${obj.title}`);
ajax.post("al_audio.php", {
act: "delete_audio",
oid: obj.ownerId,
aid: obj.id,
hash: obj.deleteHash,
restore: 1
});
}
list.forEach(function(el) {
let obj = AudioUtils.asObject(AudioUtils.getAudioFromEl(el));
for (let i in filter)
if (obj.title.includes(filter[i])) {
console.log(`keep ${obj.title}`);
return;
}
del(obj);
});
});
tracks-add.js
var filter = ["Your-favorite-track-name"];
var list = document.querySelectorAll(".audio_row");
console.log(`Total songs: ${list.length}`);
function add(el, obj, delay){
setTimeout(function(){
console.log(`add ${obj.title}`);
AudioUtils.addAudio(el, obj);
}, 10000*delay);
}
list.forEach(function(el, num) {
let obj = AudioUtils.asObject(AudioUtils.getAudioFromEl(el));
for (let i in filter)
if (obj.title.includes(filter[i])) {
console.log(`skip ${obj.title}`);
return;
}
add(el, obj, num);
});
Пожертвовать Вы можете сделать автору Wizard, подарок в виде пожертвования на его электронную копилку ;)
30%
Скидка на покупку всех
сборок до 30.06.2025
Специально для тебя - Гость
Выбрать сборку
Данные для Связи.https://vk.com/id344641190 https://t.me/SysTemmmmmm Discord: Wizard#2169Услуга Помощь в установке/настройке серверов/модов/плагинов/сайтов.
GameCMS (Game Content Management System) Данные для Связи. https://vk.com/id344641190 https://t.me/SysTemmmmmm Discord: Wizard#2169
Исправили Почту всех приходит, Очистили базу от кометов, Мусорных файлов, Дальше будем работать по файлам.
ReHLDS (Reverse-engineered) - это новый шаг вперед, который дает второе дыхание нашим серверам. ReHLDS работает в 2 раза быстрей, чем HLDS.
AMXModX - это Metamod дополнение, которое позволяет создавать новые модификации для Half-Life на языке Pawn
Reunion является продолжением Dproto для ReHLDS. Это metamod плагин, который позволяет заходить 47/48 Non-Steam на сервер.
Revoice - это Metamod plugin, который дает возможность общения голосовым чатом между non-steam и steam клиентами.
Новый Metamod-r содержит огромное количество оптимизаций производительности и намного более чистый код. Ядро было написано с использованием JIT-компилятора.
Ultimate Unprecacher являет плагином для MetaMod, работает он по принципу отключение не нужных ресурсов на вашем сервере, тем самым вы сможете освободить места для ресурсов под ваши плагины, с помощью данного модуля можно избавиться от ошибки 512!
ReAuthCheck - это Metamod плагин, который занимается проверкой ваших игроков на валидность, с помощью данного модуля для REHLDS вы сможете защитить свой сервер от ботов, которые постоянно спамят рекламу или просто забивают слот на сервере!
NetBufExtender или NBEX - это метамод-плагин, который расширяет "интернет-буфер": буферы сервера и клиента(гарантия не 100%). Расширяет до 64 кб. Это значит, что у игроков уменьшается вероятность быть кикнутыми с ошибкой "Reliable channel overflowed".
UINO — metamod-плагин, который позволяет удалять ненужные поля из userinfo(setinfo) когда движок передаёт его другим игрокам на сервере. Данная мера уменьшает объём передаваемых данных и немного сокращает шанс быть кикнутым с "Reliable channel overflowed".