// ==UserScript== // @name 豆瓣界面优化 // @namespace http://tampermonkey.net/ // @version 2.7 // @description 用于美化豆瓣小组界面 // @license BSD-3 // @author AnyDoor // @match https://www.douban.com/group/* // @icon https://img3.doubanio.com/dae/accounts/resources/3e96b44/shire/assets/nav_doubanapp_6.png // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_listValues // @grant GM_setValue // @grant GM_getValue // @downloadURL https://update.greasyfork.icu/scripts/447670/%E8%B1%86%E7%93%A3%E7%95%8C%E9%9D%A2%E4%BC%98%E5%8C%96.user.js // @updateURL https://update.greasyfork.icu/scripts/447670/%E8%B1%86%E7%93%A3%E7%95%8C%E9%9D%A2%E4%BC%98%E5%8C%96.meta.js // ==/UserScript== (function() { 'use strict'; // Your code here... //优化菜单 try{ var menu = document.querySelectorAll('div.more-items'); //消息栏样式 $("head").append( ` ` ); //重写菜单 menu[0].innerHTML=`

置顶0回复帖子

置顶精选评论(至少5个赞生效)

个人主页 我的订单 我的钱包 帐号管理 退出
` }catch(err){} //置顶0同接判断 let ZRTopping = GM_getValue('ZR_Topping', false);//获取零同接置顶配置信息 let cardSwitch = unsafeWindow.document.getElementById('card-switch'); cardSwitch.checked = ZRTopping;//获取零同接置顶配置信息 cardSwitch.addEventListener('click', () => { GM_setValue('ZR_Topping', cardSwitch.checked); }) //置顶精选评论判断 let selectedTopping = GM_getValue('selectedTopping', false);//获取精选置顶顶配置信息 let selectedSwitch = unsafeWindow.document.getElementById('selected-switch'); selectedSwitch.checked = selectedTopping;//获取精选置顶顶配置信息 selectedSwitch.addEventListener('click', () => { GM_setValue('selectedTopping', selectedSwitch.checked); }) //彩蛋开关 let DrawTopping = GM_getValue('Draw_Topping', true);//获取抽奖置顶配置信息 默认置顶 // let DrawToppingbtn = unsafeWindow.document.getElementById('draw-switch'); // DrawToppingbtn.checked = DrawTopping;//获取零同接置顶配置信息 // DrawToppingbtn.addEventListener('click', () => { // GM_setValue('Draw_Topping', DrawToppingbtn.checked); // }) //标签 $("head").append(""); $("head").append(""); $("head").append(""); //获取帖子列表 var TableObject = document.querySelectorAll("table.olt tbody")[0]; //获取所有帖子目标 排除第一行的标题栏 var TitleObject = document.querySelectorAll('table.olt tbody tr:not(.th)'); //检测置顶帖子数量 var topnum = document.querySelectorAll("span.pl").length var ksnum = document.querySelectorAll("span.event_topic_lable").length;//快闪帖子 //抽奖贴子关键词 可以自行添加 var KeyWordList = ["抽奖","抽个","抽一个","抽两个","抽三个"] //抽奖帖子黑名单 可以自行添加 var BlackList = ["插件"] //对每一个帖子进行巡逻 TitleObject.forEach(to =>{ var TitleInfo = to.children[0];//标题信息 可能包含置顶标签、精华标签和标题 var AuthorInfo = to.children[1];//作者信息 作者的昵称 var ReplyInfo = to.children[2];//回复信息 回复数量 无回复时为空 var TimeInfo = to.children[3];//时间信息 最后回复的时间 //对标题信息进行处理 var TitleInfo_Children = TitleInfo.children;//获取所有子元素 var TitleInfo_len = TitleInfo_Children.length;//获取子元素个数 var TitleInfo_text=TitleInfo_Children[TitleInfo_len-1].innerText;//获取标题文本 //console.log(TitleInfo_text); //抽奖标签判断机制 var DrawTag = document.createElement("span");//创建抽奖标签 DrawTag.className = 'DrawTag'; DrawTag.textContent = "抽奖"; KeyWordList.forEach(kwl =>{ //半段标题是否包含黑名单关键词 BlackList.forEach(bl =>{ if(TitleInfo_text.includes(kwl) && (!TitleInfo_text.includes(bl))){ TitleInfo.insertBefore(DrawTag,TitleInfo_Children[TitleInfo_len-1]); //置顶0同接帖子 if(DrawTopping){ TitleInfo.insertBefore(DrawTag,TitleInfo_Children[TitleInfo_len-1]); var TOClone = to.cloneNode(true);//克隆0回复帖子 TableObject.insertBefore(TOClone,TableObject.children[topnum+ksnum+1]);//将其插入至第六行前 to.remove()//移除被克隆的帖子 } } }); }); //插件标签判断机制 待定 var PluginTag = document.createElement("span");//创建插件标签 //0同接判断机制 var ReplyInfo_num =ReplyInfo.innerText;//获取的时字符串 并非数值 if(ReplyInfo_num==''){ //构建回复标签 var ZeroreplyTag = document.createElement("span"); ZeroreplyTag.className = 'ZeroreplyTag'; ZeroreplyTag.textContent = "0回复"; //置顶0同接帖子 if(ZRTopping){ TitleInfo.insertBefore(ZeroreplyTag,TitleInfo_Children[TitleInfo_len-1]); var TOClone = to.cloneNode(true);//克隆0回复帖子 TableObject.insertBefore(TOClone,TableObject.children[topnum+ksnum+1]);//将其插入至第六行前 to.remove()//移除被克隆的帖子 } } }); //精选评论 if(selectedTopping){ var commentdata=[]; var comment = document.querySelectorAll("ul.topic-reply li") //获取每一条评论 var comment_title = document.querySelectorAll("h4") var comment_sub = document.querySelectorAll("ul.topic-reply li div div.operation-div a.comment-vote.lnk-fav.lnk-reaction")//获取点赞信息 字符串 var selectedtips = document.createElement("span"); selectedtips.textContent="精选评论"; selectedtips.style.float="right"; selectedtips.style.fontWeight="bold"; selectedtips.style.color = "darkred"; //采集所有的评论点赞数 var maxtemp = 0; var maxpos = 0; comment_sub.forEach(function(cst,index){ var tempinfo = /\d+/.test(cst.textContent); var subvalue; //console.log(tempinfo) if(!tempinfo){ subvalue=0;commentdata.push(subvalue);}else{subvalue = parseInt(/\d+/.exec(cst.textContent)[0]);commentdata.push(subvalue);} //console.log(subvalue) if(subvalue>maxtemp) {maxtemp=subvalue;maxpos=index} }); console.log(commentdata) console.log(maxtemp) console.log(maxpos) //置顶精选 if(maxtemp>4){ //对精选评论的样式做出改变 comment[maxpos].style.backgroundColor="#f0f6f3"; comment[maxpos].style.border="5px solid #f0f6f3"; comment_title[maxpos].appendChild(selectedtips); comment_title[maxpos].style.backgroundColor="#f0f6f3"; if(selectedTopping){ var comment_new = document.querySelectorAll("ul.topic-reply li")[maxpos] //重新抓取精选评论 var comment_list = document.querySelector("ul.topic-reply"); var comment_selecttop = comment_new.cloneNode(true);//克隆 comment_list.insertBefore(comment_selecttop,comment_list.children[0]); comment_new.remove(); } } } //首页去广告 try{ document.getElementById('dale_each_group_home_bottom_right').remove(); document.getElementById('dale_group_home_middle_right').remove(); document.getElementById('dale_group_topic_new_bottom_right').remove(); document.getElementById('dale_group_topic_new_inner_middle').remove(); document.getElementById('dale_group_topic_new_top_right').remove(); }catch(err) {} // let id=GM_registerMenuCommand ("测试(不要点击)", function(){ // //alert('菜单点击'); // //GM_unregisterMenuCommand(id);//删除菜单 // }, "h"); })();