立即注册 登录
GameMale 返回首页

练习时长两年半的海王 https://www.gamemale.com/?714849 [收藏] [复制] [RSS] 只觉得,更加孤独了

日志

查房脚本 抢先版+ (完整(?)版)

热度 106已有 511 次阅读2024-7-21 00:34 |系统分类:私密(首页不显示)

// ==UserScript==
// @name         查房脚本
// @namespace    https://www.gamemale.com/space-uid-714849.html
// @homepage     https://www.gamemale.com/thread-??????-1-1.html
// @version      2024-07-21
// @description  这个是空间相关的脚本。功能:1.强制显示空间的导航栏(若未生效,则尝试使用功能2)。 2.可消除空间的自定义样式。(在油猴菜单中操作,或是使用快捷键‘Ctrl键’)。 3.查看回帖时的跳转,若未找到则自动继续定位回帖的所在楼层。
// @author       u
// @match        https://www.gamemale.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=gamemale.com
// @grant        GM_registerMenuCommand
// ==/UserScript==

(function() {
    'use strict';
    let spaceuid=document.getElementById('domainurl')?.search.substr(1);
    //if(spaceuid==discuz_uid)return;
    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';}
    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';
    //document.getElementById('nv').style.zIndex='1';
    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 showMsg(m){showPrompt(null,null,`<i>${m}</i>`, 1300);}
    function addToBlockList(){
        if(isBlocked()){showMsg('此空间已在黑名单中。');return;}
        let t = getBlockList();
        t.push(spaceuid);
        setBlockList(t);
        removecss();
        showMsg('现已将此空间加入黑名单。');
        document.querySelector('link').href='template/mwt2/extend/img/lslogo.png';
    }
    function deleteFromBlockList(){
        if(!isBlocked()){showMsg('未在黑名单中找到此空间。');return;}
        let t = new Set(getBlockList());
        t.delete(spaceuid);
        setBlockList(t);
        addcss();
        showMsg('现已将此空间从黑名单中移除。');
        document.querySelector('link').href='template/mwt2/extend/img/favicon.ico';
    }

    let blockTexts=['打入冷宫!','即刻杖毙!','逐出宫门!','秽乱后宫,罪不容诛!'];
    GM_registerMenuCommand(blockTexts[Math.floor(Math.random()*blockTexts.length)],addToBlockList);
    GM_registerMenuCommand('看她有没有重新做人',deleteFromBlockList);

    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();
    }});
})();
45

震惊
37

感谢
4

关心
6

加油
12

有爱

刚表态过的朋友 (104 人)

发表评论 评论 (25 个评论)

回复 notunicorna 2024-7-21 00:36
U佬出品,必属精品
回复 GMagels 2024-7-21 00:46
用前几天闪瞎眼睛的日志测试了,效果很好!
回复 lostorage 2024-7-21 00:47
哈哈哈哈查房脚本
回复 野生狗头人 2024-7-21 00:47
我会用这个一直奸视你
回复 huiguo 2024-7-21 01:04
是高阶魔法空间消除术
回复 WintercaT 2024-7-21 01:43
GMagels: 用前几天闪瞎眼睛的日志测试了,效果很好!
闪瞎眼那个真的离谱
回复 星之子 2024-7-21 03:09
真的好绝
    document.getElementById('nv').style.visibility='initial';
    document.getElementById('nv').style.display='initial';
这两行可以把不可见 visibility: hidden; 和不显示 display: none; 的nv导航条元素的style属性设置为初始值从而揪出来;
    function removecss(){document.getElementById('diy_style').innerHTML='';}
    function addcss(){document.getElementById('diy_style').innerHTML=spacecss;}
这两行可以把已经设置好的diy_style直接删了(设置为空)再改回空间默认(spacecss)。
幸好我调教空间用的是t4猫猫主题,清除了一切style也还能看(
回复 四分春色描来易 2024-7-21 04:45
谢谢,已经准备从良了
回复 xvyi 2024-7-21 21:53
曾经有一个抢先版放在我面前我没有珍惜
回复 chouki 2024-7-21 21:54
U老师把震惊给弄没了 好厉害
回复 书の妖怪 2024-7-21 21:56
3是什么意思?是能修复现在那个点回帖跳转不到对应位置的bug吗?
回复 user_login 2024-7-21 22:00
书の妖怪: 3是什么意思?是能修复现在那个点回帖跳转不到对应位置的bug吗?
没有修复。是替代的方案。
:没有定位到的楼层总会出现在楼层数更靠后的页面,脚本在遇到这种情况后会顺着页数继续向后跳转,直到找到目标楼层。(不过也可以费点工夫优化为直接跳转到目标楼层)
回复 书の妖怪 2024-7-21 22:08
user_login: 没有修复。是替代的方案。
:没有定位到的楼层总会出现在楼层数更靠后的页面,脚本在遇到这种情况后会顺着页数继续向后跳转,直到找到目标楼层。(不过也可以费 ...
那么之后会有优化版本吗(星星眼)
回复 user_login 2024-7-21 22:25
书の妖怪: 那么之后会有优化版本吗(星星眼)
"只要是您的心愿,优瑟尔皆能如您所愿"
回复 一静一静 2024-7-21 22:46
怎么把震惊给禁用的,本可闭嘴精咽惹
回复 GMagels 2024-7-21 23:56
抢鲜版居然也有更新!辛苦了!必须五星好评!!!!

在使用过程中偶遇这个页面(仅用于阐释场景,并不针对任何用户)
https://www.gamemale.com/home.php?mod=space&uid=704509&do=doing&view=me&from=space
页面中回复框中的文字因为种种原因呈现纯白色,而框内的背景色是近似于白色,因此很难看清回复的文字。后续通过参考makima大佬的查房脚本中对背景颜色设置(背景白文字黑)解决。添加了以下代码:
    //makima查房脚本:https://www.gamemale.com/thread-112033-1-1.html
    var style = document.createElement('style');
    style.innerHTML = "#ct { background-image: none !important; background-color: #fff !important; }";
    style.innerHTML += "#ct :where(*):not(td) { background-color: #fff ; color: #000 !important; }";
    document.head.appendChild(style);

以上代码只是解决了示例网站中的显示问题,其他用户的空间的有效性仍然有待测试...

附:match网址(暂拟,可能不全,有待补充)
// @match        https://www.gamemale.com/space-uid*
// @match        https://www.gamemale.com/home.php?mod=space&*
// @match        https://www.gamemale.com/blog*

0:24 已知上述代码会覆盖掉投票的背景颜色,已通过 :where(*):not(td) 排除,强制的白色背景颜色覆盖可能还会带来更多的问题,请u老师谨慎决定是否采纳....
回复 user_login 2024-7-22 00:19
白字是庭院这个主题本身的预设的锅,还会影响到日志页面里的元素。空间自带的设置甚至无法覆盖掉它。(错误的,虽然这一点日常中会对日志的使用造成影响,但是在清除css后日志是没有问题的。)
这种未知的影响只能一点点收集了;(错误的,应该是把每个主题的默认效果试一遍,然后清除时按照主题替换合适的css而不是以空串)

空间的匹配很多,  
https://www.gamemale.com/?687897
https://www.gamemale.com/space-username-GMagels.html
因为搭配太多了就偷懒直接以页面出现的元素作为判断了,查回帖的那个是在帖子内运行的。之后会加更多内容来弥补全站匹配这个偷懒的动作吧(画饼不是个好习惯阿喂)

(括号中的字是我对之前的另一个我说的)
回复 user_login 2024-7-22 00:35
明天晚上的我和后天晚上的我会加油的。
祝福他们
回复 GMagels 2024-7-22 00:48
user_login: 白字是庭院这个主题本身的预设的锅,还会影响到日志页面里的元素。空间自带的设置甚至无法覆盖掉它。(错误的,虽然这一点日常中会对日志的使用造成影响,但是在 ...
试了一下,确实强行替换白底黑字会引发一些格式上的冲突,比如会将日志的投票栏的颜色也换掉XD
相比之下,针对主题进行替换确实更优!狠狠期待正式版!u老师辛苦了!
刚刚只是偶然发现了这个问题并提出,没有催着u老师优化脚本的意思....
所以优化脚本什么的,u老师按照自己的节奏来就好了,注意身体,早点睡,晚安~
回复 lostorage 2024-7-22 12:38
user_login: 明天晚上的我和后天晚上的我会加油的。
祝福他们
u佬u佬,如果改快捷键只用把ctrl改成alt和Alternate就行了吗
12下一页

facelist

您需要登录后才可以评论 登录 | 立即注册

文字版|手机版|小黑屋|GameMale

GMT+8, 2024-12-22 14:52 , Processed in 0.026681 second(s), 12 queries , Redis On.

Copyright © 2013-2024 GameMale

All Rights Reserved.