【瞬时映景】[五毛脚本]日志表态显色补丁
本帖最后由 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
如果用过觉得好用的话,欢迎给个免费的追随,有问题随时反馈!
很有意思的脚本工具,但感觉实用性偏向娱乐~ 很有趣的功能,可以看到大家表态了什么:$我觉得大多数人都会表态震惊的吧:$ 啊这,代码大佬吗,虽然看不懂但是感觉好厉害的样子 看着酷炫了很多惹{:6_167:}让我看看谁是认真看了日志的{:6_188:} 一般来说,水一点的日志就像我在讲台上做pre一样,nbcs 变态还能更换颜色的,挺有趣的脚本。 只能是娱乐脚本,很少有人会去看到底表态了什么(毕竟很多都是自动点击日记表态脚本{:6_190:}) 在别人日志哪里基本上表态点的是感谢,小部分是震惊,关心,还有坚持励志向的点的加油 啊?原来是有途径看到别人表态选了什么的吗{:4_94:}那咱见日志就震惊会不会很尴尬
……不管了,希望如上面的坛友所言,大家不会去关注别人表态了什么
楼主的脚本把整个过程简化了:D这样,原来没有看的想法的坛友也会去瞄一瞄了吧 会代码真的可以为所欲为了,主要好贴心 吼(´×ω×`)特效增加了欸~看空间背景好像是book的吧~ 看见我了;P那我先收藏一下,感觉这个工具也挺有意思的;P 我记得有村民分享过一键点日志只有震惊的脚本,而目前也是震惊表态最多..
很有用的脚本的说,但总感觉99%的人都是震惊的颜色呢{:6_188:} 大部分人还是会去点震惊,而且也有脚本可以自动点震惊 90%都是震惊{:4_114:}都是水怪 开始揪罪犯了,感觉有点作用,但是作用不大 感觉……聊胜于无?
就像“淦/草/操”字可以取代任何感叹字一样,震惊也是个“吃瓜”的表态还有jio本的表态,所以真的有人会在意谁表态了啥嘛,那就一律当震惊好了。 哈哈哈,楼主又捣鼓出新的东西了。不过这个应该……emmm,就是日志还蛮水的,大家表态也多数为了血啦哈哈哈
以及,这个名字换颜色对色盲患者(在下)来说还是不太友好的,比如示例图辨认起来就有难度{:4_89:}