tieba_old_posts_remind

贴吧坟贴提醒(脚本版)修改自:http://tieba.baidu.com/p/1748230170 原扩展作者864907600cc,修改者h573980998 自定义by绯色起源

  1. // ==UserScript==
  2. // @name tieba_old_posts_remind
  3. // @version 0.71beta
  4. // @description 贴吧坟贴提醒(脚本版)修改自:http://tieba.baidu.com/p/1748230170 原扩展作者864907600cc,修改者h573980998 自定义by绯色起源
  5. // @include http://tieba.baidu.com/p/*
  6. // @copyright 2012+, You
  7. // @grant GM_addStyle
  8. // @run-at document-end
  9. // @namespace https://greasyfork.org/users/54
  10. // ==/UserScript==
  11. /*
  12. 原扩展作者864907600cc甩锅强行让我背锅,这锅我不背不背BY绯色起源
  13. fix_reason:http://tieba.baidu.com/p/4546401325
  14. fix_example:http://tieba.baidu.com/p/2645045901
  15.  
  16. // @include http://tieba.baidu.com/f* 移除
  17. // @include http://tieba.baidu.com/i* 移除
  18. // @homepage https://greasyfork.org/scripts/367/ 移除
  19. license by http://bangumi.ga/
  20. 安全检验合格,准予出厂!2016-05-18
  21. */
  22. //小白型功能选择
  23. ReplySafe = 1; //小黑屋远离我模式:坟贴的所有回复框和按钮,神来一句不显示,1为开启,0为关闭
  24.  
  25. //==========================function start
  26. var bac = false;
  27. var check;
  28. var get_title_name = document.title.split('_');
  29. addcss();
  30. window.onload = ft_cr;
  31. /////////////插入设置界面
  32. function ft_cr() {
  33. var cx = document.createElement('li');
  34. cx.id = 'this_ft';
  35.  
  36. var this_ft_txt;
  37. document.getElementsByClassName('u_ddl_con_top')[1].getElementsByTagName('ul')[0].appendChild(cx);
  38. if (get_title_name.length > 1) {
  39. var tc = pd_this_ft_t();
  40. this_ft_txt = '该吧坟帖判定为<input id="ft_time" name="ft_time" type="text" style="border:1px solid gray;font-size:10px;" size="3"title="当值改变时保存\n为空时清除对此吧的设置" value="' + tc + '">天';
  41. } else {
  42. this_ft_txt = '默认坟帖判定为<input id="ft_time" name="ft_time" type="text" style="border:1px solid gray;font-size:10px;" size="3"title="当值改变时保存\n且不能为空"value="' + ((localStorage.getItem('this_ft_ba_time') != null) ? localStorage.getItem('this_ft_ba_time') : 30) + '">天';
  43. }
  44. cx.innerHTML = '<div style="padding: 2px 0px 4px 4px;">' + this_ft_txt + '</div>';
  45. //change
  46. document.getElementById('ft_time').addEventListener("change", function () {
  47. ft_set(this.value)
  48. });
  49. }
  50. function ft_set(ft_va) {
  51. if (/^[0-9]*$/.test(ft_va)) {
  52. if (get_title_name.length > 1) {
  53. var find_n = true;
  54. var bxxx = get_title_name.slice(-2)[0].split('吧')[0];
  55. if (localStorage.getItem('this_ft_ba')) {
  56. var bas = localStorage.getItem('this_ft_ba').split(';');
  57. for (var i = 0; i <= bas.length - 1; i++) {
  58. var baa = bas[i].split(',');
  59. if (baa[0] == bxxx) {
  60. if (ft_va == "")
  61. bas[i] = "";
  62. else
  63. bas[i] = bxxx + "," + ft_va;
  64. localStorage.setItem('this_ft_ba', bas.join(";").replace(/\;;/g, ';'));
  65. find_n = false;
  66. break;
  67. }
  68. }
  69. }
  70. if (find_n) {
  71. if (localStorage.getItem('this_ft_ba'))
  72. localStorage.setItem('this_ft_ba', (localStorage.getItem('this_ft_ba') + ";" + bxxx + "," + ft_va).replace(/\;;/g, ';'));
  73. else
  74. localStorage.setItem('this_ft_ba', bxxx + "," + ft_va);
  75. }
  76. run("保存设置成功", 5000);
  77. } else {
  78. if (ft_va) {
  79. localStorage.setItem('this_ft_ba_time', ft_va);
  80. run("保存设置成功", 5000);
  81. } else
  82. run("默认坟帖判定天数不能为空", 5000);
  83. }
  84. } else
  85. run("字符不合法! 坟贴标准必须是数字", 5000);
  86. }
  87. ////////////判断是否有设置
  88. //var bac=false;
  89. function pd_this_ft_t() {
  90. bac = false;
  91. var bat = (localStorage.getItem('this_ft_ba_time') != null) ? localStorage.getItem('this_ft_ba_time') : 30;
  92. var ba = get_title_name.slice(-2)[0].split('吧')[0];
  93. if (localStorage.getItem('this_ft_ba')) {
  94. var bas = localStorage.getItem('this_ft_ba').split(';');
  95. for (var i = 0; i <= bas.length - 1; i++) {
  96. var baa = bas[i].split(',');
  97. if (baa[0] == ba) {
  98. bat = baa[1];
  99. bac = true;
  100. break;
  101. }
  102. }
  103. }
  104. return bat;
  105. }
  106.  
  107. if (document.getElementsByClassName('l_post')[0]) {
  108. var curtime = new Date();
  109. //var tietime=Date.parse(JSON.parse(document.getElementsByClassName('l_post')[0].getAttribute('data-field')).content.date.replace(/-/g,"/"));
  110. if (JSON.parse(document.getElementsByClassName('l_post')[0].getAttribute('data-field')).content.date != undefined) {
  111. var tietime = (JSON.parse(document.getElementsByClassName('l_post')[0].getAttribute('data-field')).content.date).substr(0, 10); //.replace(/-/g, "/")
  112. } else {
  113. if (document.getElementsByClassName('tail-info')[2] != undefined&&document.getElementsByClassName('tail-info')[2].innerHTML.match(/20\d{2}\-[0,1][0-9]\-[0-3][0-9]/)) {
  114. var tietime = (document.getElementsByClassName('tail-info')[2].innerHTML).substr(0, 10); //replace(/-/g, "/")
  115. } else if(document.getElementsByClassName('tail-info')[3] != undefined&&document.getElementsByClassName('tail-info')[3].innerHTML.match(/20\d{2}\-[0,1][0-9]\-[0-3][0-9]/)){
  116. var tietime = (document.getElementsByClassName('tail-info')[3].innerHTML).substr(0, 10); //replace(/-/g, "/")
  117. }else{
  118. run('ERR1错误!无法判定该贴发帖时间!请谨慎回复。该提示框10秒后关闭', 10000);
  119. }
  120. }
  121.  
  122. console.log(tietime);
  123. var tietime = new Date(tietime);
  124. console.log(tietime);
  125. if (tietime == 'Invalid Date') {
  126. run('ERR2错误!无法判定该贴发帖时间!请谨慎回复。该提示框10秒后关闭', 10000);
  127. } else {
  128. var x = parseInt((curtime - tietime) / 86400000);
  129. //加入 拆分天数为年月日
  130. if ((curtime.getMonth() > tietime.getMonth()) ||
  131. (curtime.getMonth() == tietime.getMonth() && curtime.getDate() >= tietime.getDate())) {
  132. year = curtime.getFullYear() - tietime.getFullYear();
  133. } else {
  134. year = curtime.getFullYear() - tietime.getFullYear() - 1;
  135. }
  136. if (curtime.getDate() >= tietime.getDate()) {
  137. month = (curtime.getMonth() - tietime.getMonth() + 12) % 12;
  138. } else {
  139. month = (curtime.getMonth() - tietime.getMonth() + 12 - 1) % 12;
  140. }
  141. day = (curtime.getDate() - tietime.getDate() + 31) % 31;
  142.  
  143. var showtext = '';
  144. showtext += year ? year + '年' : '';
  145. showtext += month ? month + '个月' : '';
  146. showtext += day ? + day + '天' : '';
  147.  
  148. if (x > pd_this_ft_t()) {
  149. run('此贴已存在' + showtext + '(' + x + '天),已为坟贴,脚本已经关闭回复!ㄟ( ̄▽ ̄ㄟ)', 99999000);
  150. check = 1; //是坟贴
  151. }
  152. }
  153. }else{
  154. run('ERR3错误!无法判定该贴发帖时间!请谨慎回复。该提示框10秒后关闭', 10000);
  155. }
  156.  
  157.  
  158. function run(xmx, time) {
  159. if (document.getElementById('old-thread') !== null) {
  160. document.getElementById('old-thread').remove();
  161. }
  162. var _ = document.createElement('div');
  163. _.id = 'old-thread';
  164. document.body.appendChild(_);
  165. //var text='此贴已存在'+x+'天,已为坟贴,请勿回复。ㄟ( ̄▽ ̄ㄟ)'
  166. _.innerHTML = '<p>' + xmx + '</p>';
  167. setTimeout(function () {
  168. document.body.removeChild(_);
  169. }, time);
  170. }
  171.  
  172. //坟贴的所有回复框和按钮不显示
  173. function replySafe() {
  174. if (check == 1) { //如果是坟贴
  175. //alert(check);
  176. GM_addStyle('.j_lzl_r.p_reply,.j_lzl_p,.lzl_s_r,.poster_body.editor_wrapper,.p_reply_first{display:none!important;}'); //所有回复框和按钮不显示,这里偷下懒,不想遍历元素了
  177. GM_addStyle('.jiangyou,.tbui_fbar_tsukkomi,.quoteButton,.SimQuote{display:none;}'); //将大花猫的队形按钮也屏蔽,神来一句也闪吧
  178.  
  179. }
  180. }
  181.  
  182. //------------------------执行所需功能----------------------
  183. if (ReplySafe == 1) {
  184. replySafe(); //坟贴的所有回复框和按钮不显示
  185. }
  186.  
  187. function addcss() {
  188. var a = document.createElement('style');
  189. a.type = 'text/css';
  190. a.textContent = '@-webkit-keyframes hide{from{z-index:999;opacity:1}20%{z-index:9999;opacity:1}80%{z-index:9999;opacity:1}to{z-index:99999;opacity:1}}#old-thread{width: 100%;text-align: center;color: white;font-size: 32px;top: 50%;margin-top: -59px;vertical-align: middle;position: fixed;z-index: -9999;opacity:1;-webkit-animation-name:hide;-webkit-animation-duration:9999s;animation-name: hide;animation-duration:9999s;pointer-events:none;-webkit-user-select:none;user-select:none}#old-thread p{background: rgba(255, 119, 119, .5);padding-top: 50px;padding-bottom: 50px;text-shadow: red 0 0 5px,red 0 0 5px,red 0 0 7px,red 0 0 7px,red 0 0 10px,red 0 0 10px,red 0 0 15px,red 0 0 15px;}@keyframes hide {from{z-index:999;opacity:1}20%{z-index:9999;opacity:1}80%{z-index:9999;opacity:1}to{z-index:99999;opacity:1}}';
  191. document.documentElement.appendChild(a);
  192. }