您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
BDWM_PLUS by motaguoke
- // ==UserScript==
- // @name BDWM PLUS
- // @version 1.3
- // @description BDWM_PLUS by motaguoke
- // @include http://bbs.pku.edu.cn/*
- // @include https://bbs.pku.edu.cn/*
- // @include https://*.bdwm.net/*
- // @include http://*.bdwm.net/*
- // @grant GM.getValue
- // @grant GM.setValue
- // @namespace https://greasyfork.org/users/284856
- // ==/UserScript==
- //设置
- var GLOBAL_VERSION = "1.3"
- //全局变量
- var GLOBAL_SEEME_STATUS = false //当前只看某一作者状态
- var GLOBAL_SEEME_AUTHOR = "" //当前只看某一作者的作者ID
- console.log(`BDWM_PLUS by motaguoke Version: ${GLOBAL_VERSION}`)
- window.onload = BDWM_ADDON_MAIN()
- async function BDWM_ADDON_MAIN(){
- //初始化插件
- var observe = new MutationObserver(async function (mutations){
- //初始化渲染插件
- BDWM_ADDON_SEEME_RENDER() //只看作者插件
- BDWM_ADDON_SETTINGINFO() //插件信息插件
- bool_GODMODE = await GM.getValue("启用娱乐模式",false)
- if (bool_GODMODE == true){ //娱乐模式
- BDWM_ADDON_GODMODE()
- }
- })
- observe.observe(document.documentElement,{childList:true,subtree:true})
- }
- document.addEventListener('click',async function(event){
- //点击事件钩子
- //console.log(event.target.className+" "+event.target.id)
- if (event.target.className == "only-seeme"){ // BDWM_ADDON_SEEME插件,只看某一作者
- if (event.target.innerText == "只看TA"){
- //进入只看作者状态
- event.target.innerText = "取消只看TA"
- GLOBAL_SEEME_AUTHOR = event.target.id
- GLOBAL_SEEME_STATUS = true
- obj_onlyseeme = document.getElementsByClassName("only-seeme")
- for (i=0;i<obj_onlyseeme.length;i++){
- obj_onlyseeme[i].innerText = "取消只看TA"
- }
- } else {
- //退出只看作者状态
- event.target.innerText = "只看TA"
- GLOBAL_SEEME_AUTHOR = ""
- GLOBAL_SEEME_STATUS = false
- obj_onlyseeme = document.getElementsByClassName("only-seeme")
- for (i=0;i<obj_onlyseeme.length;i++){
- obj_onlyseeme[i].innerText = "只看TA"
- }
- }
- BDWM_ADDON_SEEME_RENDER() //点击后立刻重新渲染
- }else{
- if (event.target.id == "settings_GODMODE"){
- //娱乐模式选项
- bool_GODMODE = await GM.getValue("启用娱乐模式",false)
- console.log(bool_GODMODE)
- console.log(!bool_GODMODE)
- await GM.setValue("启用娱乐模式",!bool_GODMODE)
- if (!bool_GODMODE == true){
- BDWM_ADDON_GODMODE() //点击开始后立刻重新渲染
- }
- }
- }
- },true);
- async function BDWM_ADDON_SEEME_RENDER(){
- if (window.location.href.indexOf("post-read.php")<0){
- //当切换到非读贴内容时,立刻重新刷新状态,避免上次查看主楼的延续
- GLOBAL_SEEME_AUTHOR = ""
- GLOBAL_SEEME_STATUS = false
- }
- obj_found = document.getElementsByClassName("only-seeme")
- if (obj_found.length==0){ //本页面第一次加载时,给每个帖子加按钮
- obj_functions = document.getElementsByClassName("functions")
- for (i = 0;i < obj_functions.length; i++){
- obj_widebtn = obj_functions[i].getElementsByClassName("line wide-btn")[0]
- obj_newobj = document.createElement("a")
- obj_newobj.className = "only-seeme"
- if (GLOBAL_SEEME_STATUS == false){
- obj_newobj.innerText = "只看TA"} else
- {obj_newobj.innerText = "取消只看TA"}
- if (obj_widebtn){
- //存在关注按钮,在关注按钮旁边添加即可
- str_username = obj_widebtn.getElementsByClassName("add-friend")[0].getAttribute("data-username")
- obj_newobj.id = str_username
- obj_widebtn.appendChild(obj_newobj)
- } else {
- //不存在关注按钮,需要首先获取的user-name,再新建一个widebtn类插入
- //得到username
- str_username = obj_functions[i].parentNode.getElementsByClassName("username")[0].getElementsByTagName("a")[0].innerText
- obj_newobj.id = str_username
- //插入widebtn
- obj_widebtn = document.createElement("div")
- obj_widebtn.className = "line wide-btn"
- obj_functions[i].appendChild(obj_widebtn)
- //重新获得插入的widebtn DOM
- obj_functions[i].lastChild.appendChild(obj_newobj)
- }
- }
- }
- if (GLOBAL_SEEME_STATUS==true){
- //只看作者状态
- obj_postcard = document.getElementsByClassName("post-card")
- for (i = 0;i < obj_postcard.length; i++){
- str_username = obj_postcard[i].getElementsByClassName("username")[0].getElementsByTagName("a")[0].innerText //关注后“关注”按钮将被隐藏
- if (str_username!=GLOBAL_SEEME_AUTHOR){
- obj_postcard[i].style.display = "none"
- }else{
- obj_postcard[i].style.display = "block"
- }
- }
- }else{
- //非只看作者状态
- obj_postcard = document.getElementsByClassName("post-card")
- for (i = 0;i< obj_postcard.length; i++){
- obj_postcard[i].style.display = "block"
- }
- }
- }
- async function BDWM_ADDON_SETTINGINFO(){
- //增加插件信息
- obj_footer = document.getElementById("footer")
- if (document.getElementById("footer").innerHTML.indexOf("BDWM_PLUS")<0) {
- obj_newobj = document.createElement("a")
- obj_newobj.style.color = "blue"
- obj_newobj.innerText = `BDWM_PLUS 版本 ${GLOBAL_VERSION} 作者 motaguoke 点击查看更新`
- obj_newobj.href = "https://greasyfork.org/zh-CN/scripts/381264-bdwm-plus"
- obj_newobj.target = "_blank"
- obj_footer.appendChild(obj_newobj)
- obj_footer.appendChild(document.createElement("br"))
- obj_newobj = document.createElement("input")
- obj_newobj.type = "checkbox"
- obj_newobj.id = "settings_GODMODE"
- obj_newobj.checked = await GM.getValue("启用娱乐模式",false)
- obj_footer.appendChild(obj_newobj)
- obj_newobj = document.createElement("span")
- obj_newobj.innerText = "启用娱乐模式"
- obj_footer.appendChild(obj_newobj)
- obj_footer.appendChild(document.createElement("br"))
- obj_newobj = document.createElement("a")
- obj_newobj.style.color = "blue"
- obj_newobj.innerText = `查看该脚本的github页面`
- obj_newobj.href = "https://github.com/wangjunyi2008/BDWM_PLUS"
- obj_newobj.target = "_blank"
- obj_footer.appendChild(obj_newobj)
- }
- }
- async function BDWM_ADDON_GODMODE(){
- //娱乐模式,让你变成大佬
- str_username = document.getElementsByClassName("user-list-trigger")[0].nextSibling.nextSibling.innerText
- lst_postowner = document.getElementsByClassName("post-owner")
- for (i=0;i<lst_postowner.length;i++){
- str_thisuser = lst_postowner[i].getElementsByClassName("username")[0].firstChild.innerText
- if (str_thisuser == str_username){
- //回帖名称匹配
- obj_port = lst_postowner[i].getElementsByClassName("portrait-container")[0]
- if (obj_port.getElementsByClassName("vip").length <= 0){ //如果没有被日过
- //给头像加大V
- obj_new = document.createElement("img")
- obj_new.className = "vip"
- obj_new.src = "images/user/verified-border-0.png"
- obj_port.appendChild(obj_new)
- //修改昵称
- lst_postowner[i].getElementsByClassName("nickname text-line-limit")[0].innerText = "本站站长"
- lst_postowner[i].getElementsByClassName("nickname text-line-limit")[0].style.color = "red"
- //修改等级和积分
- lst_postowner[i].getElementsByClassName("score")[0].innerText = "10.0"
- lst_postowner[i].getElementsByClassName("level")[0].innerText = "唯我独尊"
- //修改帖子数和原创分
- int_postnum = parseInt(lst_postowner[i].getElementsByClassName("label")[0].nextSibling.data)
- lst_postowner[i].getElementsByClassName("label")[0].nextSibling.data = String(int_postnum * 30)
- int_postnum = parseInt(lst_postowner[i].getElementsByClassName("label")[1].nextSibling.data)
- lst_postowner[i].getElementsByClassName("label")[1].nextSibling.data = String((int_postnum + 1)* 99)
- }
- }
- }
- }