Saber 酱的抱枕

Fly me to the moon

10/1
2016
学习 软件

使用JavaScript删除微信公众号发过的所有消息(文章)

在微信公众号管理后台→群发功能→已发送 页面中,我们可以看到这个公众号发过的所有群发消息(文章)。有时候不想要这个公众号了,需要把文章全部删除,但如果文章很多(几页十几页),一个个点击删除按钮无疑是很蛋疼的。微信没有提供批量操作的功能,所以我写了个工具,自动执行删除操作。

你可以在greasyfork.org安装本UserScript。

效果:
使用JavaScript全部删除微信公众号发过的消息(文章)

当你处于“已发送”页面时,脚本就会开始执行,自动执行删除操作,自动翻页,直到全部删除干净为止。

删除速度很快,每秒大约可以删除两条,删除一页基本上用不了半分钟。删除完毕后会显示一个弹窗提醒。

注意:
1.本工具仅适用于你想【删除全部文章】的情况,否则请不要使用,以免造成不必要的损失。本人不对因使用不当造成的损失负责。
2.用完本工具后,最好在脚本管理器里手动将其关闭,以免以后造成误删。需要使用的时候再启用就行。

代码如下:

// ==UserScript==
// @name         删除微信公众号所有的已发消息/文章
// @namespace    http://www.saber.love/?p=3049
// @version      0.1
// @description  在微信公众号管理后台→群发功能→已发送 页面中,删除所有已发送的消息。全自动删除,自动翻页,直到删完为止。
// @author       雪见仙尊
// @match        https://mp.weixin.qq.com/cgi-bin/masssendpage?t=mass/lis*
// @grant        none
// ==/UserScript==

var delT=window.setInterval(function(){
	var delButton=$(".js_del");
	if (delButton.length==0) {		//本页的消息已经删除完了
		if ($(".btn.page_next").eq(0).is(':visible')) {	//如果下一页按钮是显示的,说明不是最后一页,则翻页
			$(".btn.page_next")[0].click();
		}else{											//否则说明到最后一页了,则任务结束
			alert("删除完毕!");
			clearInterval(delT);
			return false;
		}
	}
	for (var i = delButton.length - 1; i >= 0; i--) {
		if($(delButton[i]).is(':visible')){	//点击显示的删除按钮
			delButton[i].click();
			setTimeout(function(){
				$(".btn.btn_primary.jsPopoverBt")[0].click();	//点击确认按钮
			},200)
		}
	}
},400)


附带一个批量删除新浪微博的工具:Weibored.js

这也是个UserScript。安装后打开你的微博主页(显示自己全部微博的那个主页),这个工具将会自动进行删除。一秒一条。如果打开主页但是没有开始删除,刷新一下页面就可以了。

同样要记得用完后停用这个脚本。

Weibored.js代码如下:

var s = document.createElement("script");
s.setAttribute("src","https://lib.sinaapp.com/js/jquery/2.0.3/jquery-2.0.3.min.js");
s.onload = function(){
    for(var i=0;i<100;i++){
        setTimeout(function(){
            $('a[action-type="fl_menu"]')[0].click();
            $('a[title="删除此条微博"]')[0].click();
            $('a[action-type="ok"]')[0].click();
        },1000*i);
    }
}
document.head.appendChild(s);

用循环的i设置定时器时间挺好,比我上面的方式好多了。不过我那个实际上也不影响功能,懒得改了(也没账号让我测试了)。另外不管总数多少,只删除第一条,应该可以把我代码最外层的定时去去掉,优化代码。还是要学习一个。


附带略微改造后用来删除微博文章的js:

var s = document.createElement("script");
s.setAttribute("src","https://lib.sinaapp.com/js/jquery/2.0.3/jquery-2.0.3.min.js");
s.onload = function(){
    for(var i=0;i<100;i++){
        setTimeout(function(){
            $('a[action-type="delarticlelist"]')[0].click();
            $('a[action-type="ok"]')[0].click();
        },800*i);
    }
}
document.head.appendChild(s);

今天又写了个自动删除百度云加速解析记录的代码:

setInterval(function(){
	$(".action-del.ml-10 a")[0].click();
	setTimeout(function(){
		$(".btn.btn-confirm")[0].click();
	},200)
},500)

手动在控制台执行吧……这些玩意太作死了,万一误删就GG


使用JavaScript删除微信公众号发过的所有消息(文章)