Skip to content

Instantly share code, notes, and snippets.

@maliubiao
Created October 14, 2019 07:30
Show Gist options
  • Save maliubiao/6e5733fd3b422647d43c80cf211684e1 to your computer and use it in GitHub Desktop.
Save maliubiao/6e5733fd3b422647d43c80cf211684e1 to your computer and use it in GitHub Desktop.
删除大型的115网盘目录
/*
在一个有所有tab访问权限的chrome扩展的devtools里执行, 比如adblock, 用来批量删除大的115网盘文件夹, 一个文件夹超过50000文件之后, 官方的删除API不能用
先点进那个文件夹, 然后执行代码, 它会一页页的删除, 删除完自动停止。
*/
function doDelete() {
chrome.tabs.query({"url": "https://115.com/*"}, function(tabs) {
let tb = tabs[0];
let code1 = `
async function sleep(ms)
{
return new Promise(resolve => { setTimeout(() => { resolve(); }, ms); })
}
async function deleteFolder() {
document.querySelector(".top-file-path > .checkbox").click();
await sleep(500);
document.querySelector("li[menu ~= 'delete']").click();
}
deleteFolder();
`;
let code2 = `
document.querySelector("[btn ~= 'confirm']").click();
`;
let code3 = `
document.documentElement.innerHTML.indexOf("暂无文件") > 0;
`;
chrome.tabs.executeScript(tb.id, {code: code1, allFrames: true}, function(results) {
console.log("code1 end");
setTimeout(function () {
chrome.tabs.executeScript(tb.id, {code: code2, allFrames: true}, function(results) {
console.log("code2 end");
chrome.tabs.executeScript(tb.id, {code: code3, allFrames: true}, function(results) {
for(let result of results) {
if (result) {
clearInterval(doDeleteInterval);
console.log("stop");
}
}
});
});
}, 1000);
});
});
}
var doDeleteInterval = setInterval(doDelete, 5000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment