• 用 js 脚本自动删除 qq 邮箱的收件规则(二)


    上一个脚本写完后和朋友交流了一下,他问我:能不能直接调接口去删?

    我又扒了下接口,试了两下,发现我删除了4条,但4条的请求完全一样?

    又仔细想了一下,豁然开朗:我删除的都是列表中的第一条,当中有一个CurFilterID,每次都传0。

    他的机制应该是这样的,这些规则应该就在后台的缓存列表中,没有 uuid,只有列表 id。我只要把对应的列表 id 传过去,然后他在后台删除就行。

    那我们的代码也简单了,看一下一共多少条规则,然后重复调用删除第一条就行。

     1 window.deleteRuleRC = async () => {
     2         haha = window.deleteRuleRC;
     3         sendDeleteMessage = () => {
     4             return fetch()
     5         }
     6         sleep = (ms = 1000) => new Promise((resolve, reject) => {
     7             const timer = setTimeout(() => {
     8                 resolve();
     9                 clearTimeout(timer);
    10             }, ms);
    11         });
    12 
    13         if (document.querySelector('#mainFrame')) {
    14             const RCList = document.querySelector('#mainFrame').contentWindow.document.querySelectorAll('.set_table ul li');
    15             if (RCList.length > 1) {
    16                 for (let i = 1; i < RCList.length; i++) {
    17                     await sendDeleteMessage();
    18                     await sleep(1000);
    19                 }
    20             }
    21         }
    22     }

    这里要说一下,使用这个代码的时候,先要打开 f12,然后点 Network 面板,再手动删除一条,看到一条这样的请求:

    这里的第一条就是我们需要的请求,在这条请求上右键,Copy,Copy as fetch。这时候请求的代码已经在剪贴板里,不要再复制其它的内容。 

    然后我们回到代码中,第4行有句 fetch(),前面的 return 不要动(return 后面还有个空格)。把刚刚复制的代码粘贴上去。

    然后就和之前一样:

    deleteRuleRC();

    回车运行,慢慢欣赏吧!

  • 相关阅读:
    Redis做为缓存的几个问题
    Python——操作smb文件服务器(上传和下载)
    Python——assert、isinstance的用法
    centos7-修改默认python为3
    mqtt
    如何编译生成 mkfs.ubifs、ubinize 工具
    2020-2笔记
    2020-1笔记
    C语言中getopt()和getopt_long()函数的用法
    buildroot
  • 原文地址:https://www.cnblogs.com/shining77/p/14754237.html
Copyright © 2020-2023  润新知