【油猴脚本】关于我自己的一些魔改
本帖最后由 星之子 于 2024-9-25 20:06 编辑我这个人向来是有点矫情的,一个东西用得稍微有点不舒服,都会想方设法的把它改得舒服。
泥潭有许多大佬开发了许多强力好用的脚本,到我手之后多多少少会有一些画蛇添足的魔改,这里就连图带文的盘点一下我自己的一点儿小心思,也顺带推荐一下这些好用的脚本。
贾斯特维补脑闹钟
原帖地址:https://www.gamemale.com/thread-132451-1-1.html
这里我魔改了:限时勋章的颜色,因为原来的颜色饱和度有点太高,对眼睛不大友好,于是采用了日本色研配色环的light+配色。
涉及到的代码如下:
function changeBgColor( timeLeft, badgeName ){
var currentProgress = timeLeft/86400;
if( currentProgress < 1 ){
selectAndChange( badgeName, "#ff9b9a", "#ff9b9a");
}else if ( currentProgress < 2 ){
selectAndChange( badgeName, "#ffce84", "#ffce84");
}else if( currentProgress < 3 ){
selectAndChange( badgeName, "#ffee79", "#ffee79");
}else if( currentProgress < 14 ){
selectAndChange( badgeName, "#cff588", "#cff588");
}else{
selectAndChange( badgeName, "#9a99cd", "#9a99cd");
}
return 0;
}
修改后的效果如下:
勋章放大镜
原帖地址:https://www.gamemale.com/thread-129944-1-1.html
https://www.gamemale.com/thread-144254-1-1.html
这里我魔改了:
[*]给旅程换了个图标、换了个颜色使之更符合直觉(原来是蓝色导致我总是和知识搞混)。
[*]微调了发帖和回帖颜色,眼睛看起来更舒服。
[*]将所有的属性权重设置为1让它只计算期望,并去掉了计算“合计收益”的部分代码。
[*]添加了键盘快捷键“`”(ESC下面 Tab上面) 用于切换是否显示,而不必点击右下角的开关。
涉及到的代码如下:
因为这里代码里涉及到了泥潭不支持的emoji,所以只能放个.txt在这儿:
(为保证原帖收益,这里只保留了相关函数,去掉了最重要的映射表,请将此.txt与原帖结合使用)
修改后的效果如下:
防过度回帖~显示
原帖地址:https://www.gamemale.com/thread-131737-1-1.html
这里我魔改了:将左下角原本一行的长信息变为两行,这样就不会突出左侧边框。捎带手修改了下字体。
涉及到的代码如下:
function updateStatsDisplay() {
let latestReplyText = '';
if (oldestReplyTimestamp) {
const timeDifference = Math.round((new Date().getTime() - oldestReplyTimestamp.getTime()) / (1000 * 60));
const hours = Math.floor(timeDifference / 60);
const minutes = timeDifference % 60;
latestReplyText = `最远距今:${hours}时${minutes}分`;
}
statsContainer.innerHTML = `<span style="font-family: Noto Sans SC, Microsoft Yahei, Arial, sans-serif;">24小时回复:${twentyFourHourRepliesCount}<br>${latestReplyText}`;
}这里原来使用的是 \n 换行符。但在 JavaScript 中,使用 \n 换行符在 HTML 元素的 textContent 中不起作用,因为 textContent 会将所有内容作为纯文本处理,不会解析换行符。所以改为使用 innerHTML 并用 <br> 标签来代替 \n。
修改后的效果如下:
U狼の查房脚本
原帖地址:https://www.gamemale.com/blog-714849-108554.html
这里我魔改了:
[*]删除了菜单里的按钮改用纯快捷键Ctrl,看到花里胡哨的空间看不清字则一键还原。
[*]将两段重复代码整合成一个function:updateNav()。
[*]去掉了提示使得使用更丝滑,可以看浏览器标签页图标判断是否已经Ctrl过了。
涉及到的代码如下:
// ==/UserScript==
(function() {
'use strict';
let spaceuid = document.getElementById('domainurl')?.search.substr(1);
if (!spaceuid) {
if (location.hash.startsWith('#pid') && location.search.startsWith('?mod=viewthread')) {
if (!document.getElementById(location.hash.substring(1))) {
const url = new URL(window.location.href);
let page = parseInt(url.searchParams.get('page'));
if (page == document.querySelector('#pgt strong').textContent) {
url.searchParams.set('page', page + 1);
location.href = url;
}
}
}
return;
}
let spacecss = document.getElementById('diy_style').innerHTML;
if (isBlocked()) {
document.getElementById('diy_style').innerHTML = '';
document.querySelector('link').href = 'template/mwt2/extend/img/lslogo.png';
updateNav()
}
function getBlockList() { return JSON.parse(localStorage.getItem('uSpaceBlocked') || '[]'); }
function setBlockList(list) { localStorage.setItem('uSpaceBlocked', JSON.stringify([...list])); }
function removecss() { document.getElementById('diy_style').innerHTML = ''; }
function addcss() { document.getElementById('diy_style').innerHTML = spacecss; }
function isBlocked() { return getBlockList().includes(spaceuid); }
function updateNav() {
document.getElementById('nv').innerHTML = `<ul>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=index">首页</a></li>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=home&view=me&from=space">动态</a></li>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=doing&view=me&from=space">记录</a></li>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=blog&view=me&from=space">日志</a></li>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=album&view=me&from=space">相册</a></li>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=thread&view=me&from=space">主题</a></li>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=wall">留言</a></li>
<li><a style='color:inherit !important' href="/home.php?mod=space&uid=${spaceuid}&do=profile">资料</a></li>
</ul>`;
document.getElementById('nv').style.visibility = 'initial';
document.getElementById('nv').style.display = 'initial';
}
function addToBlockList() {
let t = getBlockList();
t.push(spaceuid);
setBlockList(t);
removecss();
document.querySelector('link').href = 'template/mwt2/extend/img/lslogo.png';
updateNav()
}
function deleteFromBlockList() {
let t = new Set(getBlockList());
t.delete(spaceuid);
setBlockList(t);
addcss();
document.querySelector('link').href = 'template/mwt2/extend/img/favicon.ico';
}
let ctrlMark = false;
document.addEventListener('keydown', (e) => { ctrlMark = e.key === 'Control' });
document.addEventListener('keyup', (e) => {
if (e.key === 'Control' && ctrlMark) {
if (isBlocked()) deleteFromBlockList(); else addToBlockList();
}
});
})();
修改后的效果如下:
GM论坛勋章百宝箱
原帖地址:https://www.gamemale.com/thread-144608-1-1.html
这里我魔改了:主要是按钮的样式,包括悬停和按下效果,让页面更花里胡哨一点儿。除了好看以外的实际作用约等于零。
涉及到的代码如下:
// 创建一个新的div元素用于管理徽章
const badgeManagerDiv = document.createElement('div');
badgeManagerDiv.className = 'badge-manager';
badgeManagerDiv.innerHTML = '<div class="badge-manager-button"><div>';
const badgeOrderDiv = document.createElement('div');
badgeOrderDiv.className = 'badge-order';
// badgeOrderDiv.innerHTML = '正在计算您拥有的徽章类型和价值,请稍等。。。'
// 获取目标div并在其前面插入新创建的div
const targetDiv = document.querySelector('.my_fenlei');
targetDiv.parentNode.insertBefore(badgeManagerDiv, targetDiv);
badgeManagerDiv.appendChild(badgeOrderDiv)
// targetDiv.parentNode.insertBefore(badgeOrderDiv, badgeManagerDiv);
// 在这里添加您的自定义样式
const customStyles = `
.badge-manager {
background-color: transparent;
padding: 0px;
margin-top: 20px;
margin-bottom: 24px;
border: none;
color: #333;
text-align: center;
}
.custom-button {
background-color: transparent;
border: 0.125em solid #1A1A1A;
border-radius: 0.6em;
color: #3B3B3B;
font-size: 16px;
font-weight: 600;
margin: 0px 20px;
padding: 0.4em 1.2em;
text-align: center;
text-decoration: none;
transition: all 300ms cubic-bezier(.23, 1, 0.32, 1);
}
.custom-button:hover {
color: #fff;
background-color: #1A1A1A;
box-shadow: rgba(0, 0, 0, 0.25) 0 8px 15px;
transform: translateY(-2px);
}
.custom-button:active {
box-shadow: none;
transform: translateY(0);
}
`;
修改后的效果如下:
星象占卜 看起來挺不錯的..來去試看看./w\ 感谢楼主的分享,感觉挺实用的 大佬改过的这个勋章放大镜感觉非常的实用{:6_169:} 本帖最后由 1287549 于 2024-9-25 19:54 编辑
感觉第二个魔改的功能我最喜欢,太强了大佬 调整了颜色确实更有助于保护视力了 楼主改完的配色看着真的很舒服惹{:6_169:} 那个修改颜色看起来很方便,可以更直接的看到哪个勋章快到期了,但是想问一下限时活动勋章管用么? 改emoji很有用,因为我的电脑就不支持那个金币的emoji 勋章底色的魔改非常棒呃,感觉更多彩了 惹,魔改后看着非常实用和美观的说~这下舒畅使用惹~感谢星星~~https://img.gamemale.com/album/202409/14/160119ce7bkfwqt7zzwub7.gif 改完之后的色调是比较护眼捏,感谢楼楼魔改{:6_200:} 这个脚本可以惹 改变颜色保护眼睛 还能更直观看属性 都是好用的调整呢 看起来更美观了 {:4_86:}这就把脚本全部重置使用这个换色 有自己的使用习惯是好事呢,不过发布魔改前最好是跟原作者询问一下{:6_200:} 你的勋章百宝箱魔改已经out,最新的1.61版本我又加了一个一键续所有咒术勋章的按钮,现在有五个按钮了
发出反派的笑声,哈哈哈哈哈哈哈哈哈哈哈哈 讲究,确实看着好不少 挺棒的魔改啊 感觉确实美观很多 这样放大镜看得就更舒服惹,感谢大佬:$