tieba_filter_someone

贴吧循环封

目前为 2014-07-27 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name tieba_filter_someone
  3. // @description 贴吧循环封
  4. // @include http://tieba.baidu.com/*
  5. // @exclude http://tieba.baidu.com/tb*
  6. // @icon http://tb.himg.baidu.com/sys/portraitn/item/4e2ed7f8bbb3d4f2c2d2bb21
  7. // @author congxz6688
  8. // @version 2014.7.27.0
  9. // @grant none
  10. // @namespace https://greasyfork.org/scripts/156
  11. // ==/UserScript==
  12.  
  13.  
  14. //脚本的实际运行条件:
  15. //1、只在你指定的贴吧执行;
  16. //2、你的登录ID与脚本里指定的吧主ID一致,才会执行;
  17. //3、日期与上次执行时不同,才会执行;(确保在黑名单没有改动的情况下,每天只执行一次)
  18. //4、脚本中的黑名单与上一次执行的名单不一致时,再次执行。(方便你随时添加和更改)
  19. //所以,脚本中的示例,即使不作修改也不会造成任何负担,因为你的登录ID与其不符,所以它不会执行。
  20. //这样设计的目的,就是避免脚本在不符合条件的贴吧里执行,毕竟对任何人来说,在绝大多数的贴吧里我们都不是吧主。
  21.  
  22.  
  23. //这里是修改区,请按相同格式修改或添加即可
  24. someOne = {
  25. "雨滴在心头" : { //此为贴吧名
  26. "BaZhu_ID" : "坐怀则乱", //吧主ID
  27. "blackList" : ["jstester", "度娘节操", "张三"] //黑名单 这里末尾不要标点
  28. }, //这里的逗号用于隔开两个吧的数据,很重要,如果要添加更多的吧,同样要用逗号隔开,不能漏掉
  29. "firefox" : { //此为贴吧名
  30. "BaZhu_ID" : "文科980195412", //吧主ID
  31. "blackList" : ["文科", "ABC"] //黑名单 这里末尾不要标点
  32. }
  33. };
  34.  
  35.  
  36.  
  37.  
  38. //*********!!!!以下部分,请不要修改!!!!*********
  39.  
  40.  
  41. //今天的日期
  42. var yuy = new Date();
  43. var fulltime = yuy.toLocaleString().replace(/\s.*/, "");
  44.  
  45. //当前用户
  46. var userData = unsafeWindow.PageData;
  47. var userName = userData.user.name ? userData.user.name : userData.user.user_name;
  48.  
  49. //当前吧的Fid和Fname
  50. var forum_id = unsafeWindow.PageData.forum.forum_id;
  51. var forum_name = unsafeWindow.PageData.forum.forum_name;
  52.  
  53. //读取localStorage
  54. var filterToday = JSON.parse((localStorage["filterToday"]) ? localStorage["filterToday"] : "{}");
  55. if (!filterToday[forum_name]) {
  56. filterToday[forum_name] = {};
  57. filterToday[forum_name].blackList = [];
  58. filterToday[forum_name].BaZhu_ID = "";
  59. }
  60.  
  61. //逐一屏蔽函数
  62. function goFilterOneByOne(nn, lp) {
  63. var postData = encodeURI("cm=filter_forum_user&user_name=" + someOne[forum_name].blackList[nn] + "&ban_days=1&word=" + forum_name + "&fid=" + forum_id + "&ie=utf-8");
  64. var urll = "http://tieba.baidu.com/bawu/cm";
  65. setTimeout(function () {
  66. onebyone = new XMLHttpRequest();
  67. onebyone.open("POST", urll, true);
  68. onebyone.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  69. onebyone.setRequestHeader("Content-length", postData.length);
  70. onebyone.setRequestHeader("Connection", "close");
  71. onebyone.send(postData);
  72. onebyone.onreadystatechange = function () {
  73. if (onebyone.readyState == 4) {
  74. if (onebyone.status == 200) {
  75. var reTextTxt = JSON.parse(onebyone.responseText);
  76. if (reTextTxt.error.errmsg == "") {
  77. console.log(fulltime + " 封禁 " + someOne[forum_name].blackList[nn] + " 成功!");
  78. } else {
  79. console.log(fulltime + " 封禁 " + someOne[forum_name].blackList[nn] + " 不成功!");
  80. }
  81. if (nn == lp) {
  82. filterToday.date = fulltime;
  83. filterToday[forum_name].BaZhu_ID = userName;
  84. filterToday[forum_name].blackList = someOne[forum_name].blackList;
  85. localStorage["filterToday"] = JSON.stringify(filterToday);
  86. console.log(fulltime + " 坏蛋全部封禁完毕!");
  87. } else {
  88. ns = nn + 1;
  89. goFilterOneByOne(ns, lp); //自调用,顺序循环
  90. }
  91. }
  92. }
  93. }
  94. }, 1000);
  95. }
  96.  
  97. if (someOne[forum_name] && someOne[forum_name].BaZhu_ID == userName && (filterToday.date != fulltime || filterToday[forum_name].blackList.toString() != someOne[forum_name].blackList.toString())) {
  98. goFilterOneByOne(0, someOne[forum_name].blackList.length - 1);
  99. }