Fanly Weibo Unfollow

微博自动批量取消关注。通过微博主页点击自己的关注数量页面(类似 https://weibo.com/u/page/follow/uid),然后点击“批量管理”后,就会出现“批量取关”按钮,点击就能够开始自动批量取消关注了。

// ==UserScript==
// @name         Fanly Weibo Unfollow
// @namespace    https://zhangzifan.com/
// @version      1.0
// @description  微博自动批量取消关注。通过微博主页点击自己的关注数量页面(类似 https://weibo.com/u/page/follow/uid),然后点击“批量管理”后,就会出现“批量取关”按钮,点击就能够开始自动批量取消关注了。
// @author       Fanly
// @icon         https://www.google.com/s2/favicons?sz=64&domain=weibo.com
// @require      https://code.jquery.com/jquery-3.7.1.min.js
// @match        https://weibo.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    $(function () {
        setTimeout(function() {
            //批量取关按钮
            var btn = $('.woo-panel-main > .woo-box-flex > .woo-box-flex > button.woo-button-main.woo-button-simple.woo-button-default.woo-button-s.woo-button-round');
            btn.on('click', function(){
                if ($.trim($(this).text()) == '取消批量管理') {
                    var x_unfollow = '<a href="javascript:void(0);" class="x_unfollow" style="padding:5px 10px;">批量取关</a>';
                    $(this).after(x_unfollow);
                }else{
                    $('a.x_unfollow').remove();
                }
            });
            //开始批量取关
            $(document).on('click', 'a.x_unfollow',function(){
                //批量选择
                x_checked();
                //开始取消
                setTimeout(function() {
                    //点击取消关注
                    $('#app > div.woo-box-flex.woo-box-column > div.woo-box-flex > div:nth-child(2) > main > div > div > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div.woo-box-flex.woo-box-alignCenter.woo-box-justifyBetween > div.woo-box-flex > div.woo-box-flex.woo-box-alignCenter > button').click();
                    setTimeout(function() {
                        //确认取消
                        $('#app > div:nth-child(4) > div.woo-modal-main > div > div.woo-dialog-ctrl > button.woo-button-main.woo-button-flat.woo-button-primary.woo-button-m.woo-button-round.woo-dialog-btn').click();
                        setTimeout(function() {
                            //执行下一轮
                            $('a.x_unfollow').click();
                        }, 2000);
                    }, 1000);
                }, 3000);
            });
            //勾选
            function x_checked(){
                $('.vue-recycle-scroller__item-wrapper input[type="checkbox"]').slice(0, 20).each(function(index) {
                    setTimeout(() => {
                        var event = new MouseEvent('click', {
                            'bubbles': true,
                            'cancelable': true
                        });
                        this.dispatchEvent(event);
                    }, 10 * index);
                });
            }

        }, 1000);

    });
})();