GMagels 发表于 2024-5-15 18:35:42

【瞬时映景】[五毛脚本]日志表态显色补丁

本帖最后由 GMagels 于 2024-5-15 22:47 编辑

勋章公会里对勋章的表态是有颜色标注的,在表态统计底下,能通过字体的颜色判断具体投了哪个选项。

日志底下也有类似的表态功能,却并没有颜色标标识,直观上只能看到具体的表态分布结果。
那么日志的表态是匿名的吗?
并不是,当你把光标悬停在用户的头像上时,会出现用户具体选择的表态内容的提示框,如图所示:

(为了保护隐私,小锯鳄特地学习了影子分身)
static/image/hrline/4.gif
本帖的脚本通过改变对应表态的阴影颜色和用户名的字体颜色,将表态内容更直观的展现出来。
颜色采用了对应表态图片的主颜色,震惊作为最常见的划水项不改变颜色,具体对应如下:

震惊:无颜色,字体默认颜色感谢:金色关心:粉红色加油:蓝色有爱:红色
static/image/hrline/4.gif
效果图

static/image/hrline/4.gif
绿色土豆承诺:该脚本只涉及本地网页内容抓取以及页面样式改变,理论上不会主动增加服务器压力!

//@Name @match @icon // ==UserScript==
// @name         日志表态显色补丁
// @namespace    https://www.gamemale.com/space-uid-687897.html
// @version      0.2
// @description通过颜色直观地显示日志页面的表态详情
// @author       瓦尼
// @match      https://www.gamemale.com/blog*
// @icon         https://www.gamemale.com/source/plugin/it618_tieclick/images/love.gif
// @supportURL   https://www.gamemale.com/thread-135135-1-1.html
// @grant      none
// ==/UserScript==

(function() {
    'use strict';

    // 用于根据颜色改变特定node的样式
    function changeStyle(node, color){
      // 给头像加上特定颜色的阴影
      node.style.boxShadow = '3px 3px 5px '+ color;

      // 改变用户名的颜色
      node.nextElementSibling.childNodes.style.setProperty ('color', color, 'important');

      return 0;
    }

    // 根据表态内容改变样式
    function showVote(){
      let avts = document.getElementsByClassName("avt");
      for (let avt of avts){
            let voteTitle = avt.childNodes.title;
            if( voteTitle == '震惊'){
                //changeStyle(avt,'white');
            }else if( voteTitle == '感谢'){
                changeStyle(avt,'Gold');
            }else if( voteTitle == '关心'){
                changeStyle(avt,'HotPink');
            }else if( voteTitle == '加油'){
                changeStyle(avt,'blue');
            }else if( voteTitle == '有爱'){
                changeStyle(avt,'red');
            }
      }
      console.log("执行完毕!");
      return 0;
    }

    // 1.页面进入时触发
    showVote();

    // 2.表态内容发生改变时触发
    // 变化包括但不限于点击表态,翻页表态内容,等等
    // 监听页面变化,所有程序均在本地运行,请放心
    // 选择观察变动的节点
    const targetNode = document.getElementById('click_div');

    // 观察器配置
    const config = { attributes: false, childList: true, subtree: false };

    // 设置计数器,防止出现无限循环
    let changeCount = 0;

    // 当检测到变化时调用的回调函数
    const callback = function(){
      //执行主函数
      showVote();

      // 计数器加一
      changeCount++;
      console.log(`变化次数: ${changeCount}`);

      // 如果变化次数达到一定次,断开观察
      if (changeCount >= 100) {
            console.log('达到设定的变更次数,停止观察。');
            observer.disconnect();
      }
    };

    // 创建一个观察器实例并传入回调函数
    const observer = new MutationObserver(callback);

    // 开始观察目标节点
    // 如果不希望本地持续监听页面,请将下面这行通过添加‘//’前缀,注释掉即可
    observer.observe(targetNode, config);

})();

static/image/hrline/4.gif

根据评论区友友的建议,新增文字提示版,非震惊表态除了改变颜色外还会有文字提示,效果如图:


// ==UserScript==
// @name         日志表态显色补丁文字提示版
// @namespace    https://www.gamemale.com/space-uid-687897.html
// @version      0.2
// @description通过添加文字直观地显示日志页面的表态详情
// @author       瓦尼
// @match      https://www.gamemale.com/blog*
// @icon         https://www.gamemale.com/source/plugin/it618_tieclick/images/love.gif
// @supportURL   https://www.gamemale.com/thread-135135-1-1.html
// @grant      none
// ==/UserScript==

(function() {
    'use strict';


    // 用于根据颜色改变特定node的样式
    function changeStyle(node, color){
      // 给头像加上特定颜色的阴影
      node.style.boxShadow = '3px 3px 5px '+ color;

      // 改变用户名的颜色
      node.nextElementSibling.childNodes.style.setProperty ('color', color, 'important');

      return 0;
    }

    function showVote(){
      let avts = document.getElementsByClassName("avt");
      for (let avt of avts){
            //改变颜色
            let voteTitle = avt.childNodes.title;
            if( voteTitle == '震惊'){
                //changeStyle(avt,'white');
            }else if( voteTitle == '感谢'){
                changeStyle(avt,'Gold');
            }else if( voteTitle == '关心'){
                changeStyle(avt,'HotPink');
            }else if( voteTitle == '加油'){
                changeStyle(avt,'blue');
            }else if( voteTitle == '有爱'){
                changeStyle(avt,'red');
            }

            //添加文字提示
            let newElement = document.createElement("p");
            let newContent = document.createTextNode(voteTitle);
            //震惊不显示
            if( voteTitle == '震惊'){
                newContent = document.createTextNode(" ");
            }
            newElement.appendChild(newContent);
            avt.nextElementSibling.after(newElement);
      }
      console.log("执行完毕");
    }

    // 1.页面进入时触发
    showVote();

    // 2.表态内容发生改变时触发
    // 变化包括但不限于点击表态,翻页表态内容,等等
    // 监听页面变化,所有程序均在本地运行,请放心
    // 选择观察变动的节点
    const targetNode = document.getElementById('click_div');

    // 观察器配置
    const config = { attributes: false, childList: true, subtree: false };

    // 设置计数器,防止出现无限循环
    let changeCount = 0;

    // 当检测到变化时调用的回调函数
    const callback = function(){
      //执行主函数
      showVote();

      // 计数器加一
      changeCount++;
      console.log(`变化次数: ${changeCount}`);

      // 如果变化次数达到一定次,断开观察
      if (changeCount >= 100) {
            console.log('达到设定的变更次数,停止观察。');
            observer.disconnect();
      }
    };

    // 创建一个观察器实例并传入回调函数
    const observer = new MutationObserver(callback);

    // 开始观察目标节点
    // 如果不希望本地持续监听页面,请将下面这行通过添加‘//’前缀,注释掉即可
    observer.observe(targetNode, config);


})();
static/image/hrline/4.gif
如果用过觉得好用的话,欢迎给个免费的追随,有问题随时反馈!


koh 发表于 2024-5-15 18:41:10

很有意思的脚本工具,但感觉实用性偏向娱乐~

凯诺斯 发表于 2024-5-15 18:44:04

很有趣的功能,可以看到大家表态了什么:$我觉得大多数人都会表态震惊的吧:$

阿睿 发表于 2024-5-15 18:47:09

啊这,代码大佬吗,虽然看不懂但是感觉好厉害的样子

轮回2L 发表于 2024-5-15 18:50:11

看着酷炫了很多惹{:6_167:}让我看看谁是认真看了日志的{:6_188:}

xvyi 发表于 2024-5-15 18:57:22

一般来说,水一点的日志就像我在讲台上做pre一样,nbcs

Burry 发表于 2024-5-15 18:59:34

变态还能更换颜色的,挺有趣的脚本。

牛牛要白给了 发表于 2024-5-15 19:12:27

只能是娱乐脚本,很少有人会去看到底表态了什么(毕竟很多都是自动点击日记表态脚本{:6_190:})

Riverlethe 发表于 2024-5-15 19:16:55

在别人日志哪里基本上表态点的是感谢,小部分是震惊,关心,还有坚持励志向的点的加油

DELINQUENCY 发表于 2024-5-15 19:18:44

啊?原来是有途径看到别人表态选了什么的吗{:4_94:}那咱见日志就震惊会不会很尴尬
……不管了,希望如上面的坛友所言,大家不会去关注别人表态了什么
楼主的脚本把整个过程简化了:D这样,原来没有看的想法的坛友也会去瞄一瞄了吧

li漠北 发表于 2024-5-15 19:53:37

会代码真的可以为所欲为了,主要好贴心

毛茸茸兽兽 发表于 2024-5-15 20:00:38

吼(´×ω×`)特效增加了欸~看空间背景好像是book的吧~

zzy159 发表于 2024-5-15 20:05:56

看见我了;P那我先收藏一下,感觉这个工具也挺有意思的;P

不是卖萌的基佬 发表于 2024-5-15 20:10:18

我记得有村民分享过一键点日志只有震惊的脚本,而目前也是震惊表态最多..

亚洛斯 发表于 2024-5-15 20:26:05

很有用的脚本的说,但总感觉99%的人都是震惊的颜色呢{:6_188:}

娱乐法师火布偶 发表于 2024-5-15 20:33:03

大部分人还是会去点震惊,而且也有脚本可以自动点震惊

cdcai 发表于 2024-5-15 20:47:07

90%都是震惊{:4_114:}都是水怪

时间之朔 发表于 2024-5-15 20:48:25

开始揪罪犯了,感觉有点作用,但是作用不大

深暗幽狼 发表于 2024-5-15 21:35:56

感觉……聊胜于无?
就像“淦/草/操”字可以取代任何感叹字一样,震惊也是个“吃瓜”的表态还有jio本的表态,所以真的有人会在意谁表态了啥嘛,那就一律当震惊好了。

wdhgzdhcxb 发表于 2024-5-15 22:06:53

哈哈哈,楼主又捣鼓出新的东西了。不过这个应该……emmm,就是日志还蛮水的,大家表态也多数为了血啦哈哈哈
以及,这个名字换颜色对色盲患者(在下)来说还是不太友好的,比如示例图辨认起来就有难度{:4_89:}
页: [1] 2 3
查看完整版本: 【瞬时映景】[五毛脚本]日志表态显色补丁