zuanke8_aide

zuanke8一键拉黑辅助脚本

// ==UserScript==
// @name        zuanke8_aide
// @namespace   zuanke8
// @name:zh-CN  zuanke8一键拉黑脚本
// @homepage    https://greasyfork.org/zh-CN/scripts/401200-zuanke8-aide
// @require     https://cdn.staticfile.org/jquery/3.5.0/jquery.min.js
// @require     https://bowercdn.net/c/gbk.js-0.2.3/dist/gbk2.min.js
// @include     http*://www.zuanke8.com*
// @grant       none
// @version     1.1.3
// @author      Ben
// @license     MIT
// @description zuanke8一键拉黑辅助脚本
// ==/UserScript==




var css = [
  ".fc{",
	"color:#f00!important;",
  "font-weight:bold!important;",
	"}",
  '.blockuser_bg{',
  'background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACPklEQVQ4T32TTWgTURSFz30zKcaiULGCuy4EFyKIogvXrrRocRKRNJMUkXamNF2oDdSVQhcKBReCM4lYccZqSSa1qFh0JfiDP7hxEUR3WhCkrqLUJDPvyhQtSZr07t67532cx7mX0FIx3YyDeBLAbgDLxHjvA6MPXPtHqzY8U+OlljLOCOAigAm1y39dXYlGFKU+IIEsQP0lx/rYClkDxNPmATDfQsCJ4myu3Cg8mRzeL4R46Tn25s6AlJlgloc9NzfWzqqWMucEB9mim//a2F9zEEuNFMCi6LlWsR0gljIuCeZ3BTf3pAPAzAC8zXPsyx0ACzW1pj+cmam0BcSTo7tYyC/Vuux9dD+/3CgaGDL6FElPS44VJtNULSmYRwhYIMghtSt4UV1BRFGUUww6R0QninesDxsCjiXMnqjKUwBGGfyZQJsAbCei6SAIbAVqd6Ci51dQKT9z3d9Nc6AlDY0EboJwRfqRe/Oz15dCQWg/4ss9LJQpIuxgyT9BiAI07jnW4uoXtLShQXKamUfm7+a/N9rU9QvdK1RZAovh/wlpaWOKJI5D8DQNDma21pT6KwYmPcd+vG60h4zTkJz0nFx/2IulRyxA9JGUniTaR2G+AA55jn20bXy6cR6ELTVVzXf5/jUGfBGJZlD7sxfEWdJShgPgecmxZzrk30/AGAMqQGXPscZXnehmnEkeDB2w59hNca7fUOMTCHPMcrHk5t/+29gCCbFzw4eNoJhuXCWCxkAvwG9URTk7d/vGt7+x7Ove9OkLSAAAAABJRU5ErkJggg==);',
  '}'
].join('\n');

function initCss(){
  if (typeof GM_addStyle != "undefined") {
	GM_addStyle(css);
  } else if (typeof PRO_addStyle != "undefined") {
    PRO_addStyle(css);
  } else if (typeof addStyle != "undefined") {
    addStyle(css);
  } else {
    var node = document.createElement("style");
    node.type = "text/css";
    node.appendChild(document.createTextNode(css));
    var heads = document.getElementsByTagName("head");
    if (heads.length > 0) {
      heads[0].appendChild(node);
    } else {
      // no head yet, stick it whereever
      document.documentElement.appendChild(node);
    }
  }
}

/** **/
function get_block_user($){
  return new Promise((resolve, reject) => {
    var block_users = [];
    $.ajax({
      url:'http://www.zuanke8.com/home.php?mod=space&uid=819296&do=friend&view=blacklist&quickforward=1&start=',
      type:'get',
      dataType:'html',
      //async:false,
      success: function(data){
        var block_user_li = $('#friend_ul ul li',data);
        $.each(block_user_li,function(i,dom){
          var $dom = $(dom);

          var uid = $dom.attr('id');
          uid = uid.split('_')[1];
          var uname = $dom.find('h4 a[href="http://www.zuanke8.com/space-uid-'+uid+'.html"]').text();
          block_users.push({'uid':uid,'uname':uname});
        });
        resolve(block_users)
      },
      error: function () {reject(block_users)}
    })
  });
}



// 简单判断是否登录
async function check_is_login($){

  if(!discuz_uid){
    return {is_login:false};
  }

  var block_users = await get_block_user($);

  // 帖子列表
  var $thread_list_table = $('#threadlisttableid');
  if($thread_list_table[0]){
    return {is_login:true,block_users:block_users,thread_list:$thread_list_table};
  }

  // 帖子详情
  var $post_list = $('#postlist');
  if($post_list[0]){
    return {is_login:true,block_users:block_users,post_list:$post_list};
  }

  return {is_login:true};
}


function thread_list_filter($,thread_list,block_users){

  // 存在已拉黑的用户,则filter
  if(block_users.length > 0){

    $.each(block_users,function(i,o){
        var block_uid = o.uid;
        var block_uname = o.uname;
        $('a[href="http://www.zuanke8.com/space-uid-'+block_uid+'.html"]').parents('tbody').remove();
    });
  }

}


function post_list_filter($,post_list,block_users){

    $('#hiddenpoststip').remove()
    $('#hiddenposts').remove();

    var div_elems = post_list.children('div[id^="post_"]');
    $.each(div_elems,function(i,dom){
      var $dom = $(dom);
      var $ul = $dom.find('ul');
      var id = $dom.attr('id');
      id = id.replace(/post_/g,'');
      var name = $('#favatar'+id).find('.authi').text();
      var li = '<li class="blockuser_bg"><a href="javascript:;" data-uid='+id+' data-uname='+name+' title="拉黑" class="fc">拉黑</a></li>';

      var $ul = $dom.find('ul');
      $ul.append(li);

      // 移除头像
      $dom.find('div[class="avatar"]').remove();
    });

    var formhash;

    $.ajax({
      type:'get',
      url:'http://www.zuanke8.com/home.php?mod=space&do=friend',
      dataType:'html',
      success:function(data){
        var scbar_form = $('#scbar_form',$(data));
        formhash = $('input[name="formhash"]',scbar_form).val();
        console.log(formhash)
      }
    });


    $('ul li.blockuser_bg a').on('click',function(){
      var uid = $(this).data('uid');
      var uname = $(this).data('uname');

      if(confirm('确认拉黑'+uname+'?')){

        var params = {
          blacklistsubmit:true,
          blacklistsubmit_btn:true,
          formhash:formhash,
          username:uname
        };
        var send_body = '';
        $.each(params,function (key,value) {
            send_body += (key + '=' + GBK.URI.encodeURI(value) + '&')
        });
        send_body = send_body.substring(0,send_body.lastIndexOf('&'));

         $.ajax({
          url:'http://www.zuanke8.com/home.php?mod=spacecp&ac=friend&op=blacklist&start=',
          type:'post',
          data:send_body,
          success:function(data){
            alert('操作成功,可以去《我的好友列表---我的黑名单》查看是否成功!');
          }
        })

      }
    });
}

jQuery.noConflict();

(async function($){
  "use strict";

    initCss();
    $('#scform').find('h1 a').find('img').remove();
    $('#hd').find('h2 a').find('img').remove();
    $('title').text('-');

    var rs = await check_is_login($);
    console.log(rs);
    if(!rs.is_login){
      console.log('未登录!');
      return;
    }

    var block_users = rs.block_users;

    var thread_list = rs.thread_list;
    if(thread_list && thread_list.get(0)){
      thread_list_filter($,thread_list,block_users);
    }


    var post_list = rs.post_list
    if(post_list && post_list.get(0)){
      post_list_filter($,post_list,block_users);
    }




})(jQuery);