// ==UserScript==
// @name 豆瓣界面优化
// @namespace http://tampermonkey.net/
// @version 2.5.1
// @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 none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
//优化菜单
try{
var menu = document.querySelectorAll('div.more-items');
//消息栏样式
$("head").append(
`
`
);
//重写菜单
menu[0].innerHTML=`
`
}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 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 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+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+1]);//将其插入至第六行前
to.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");
})();