仿via资源嗅探

仿via资源嗅探js版本

// ==UserScript==
// @name         仿via资源嗅探
// @namespace    https://palhube666.wodemo.com/
// @version      0.2
// @description  仿via资源嗅探js版本
// @author       呆毛飘啊飘
// @run-at       document-start
// @match        *
// @grant        GM_registerMenuCommand
// ==/UserScript==

(function() {
    GM_registerMenuCommand("资源嗅探①", function() {
        getUrlA()
    });

    GM_registerMenuCommand("资源嗅探②", function() {
        getUrlB()
    });

    function getUrlB() {
        var tj = 'f';
        var entries = window.performance.getEntriesByType('resource');
        var z = '';
        entries.forEach(entry => {
            if (entry.initiatorType == 'video' || entry.entryType == 'video' || entry.initiatorType == 'audio' || entry.entryType == 'audio') {
                var sp = "<div class='box'><a href='链接' title='链接'></a><p class='title'>呆毛飘啊飘<font class='tag'>load</font>后缀<p class='url'>链接</p></div>";
                var url = entry.name;
                if (url) {
                    var hz = url.substring(url.lastIndexOf('.'), url.length);
                    var hzz = hz.substring(0, hz.indexOf('?'));
                    if (!hz) {
                        var sp = sp.replace(/链接/g, url)
                            .replace('后缀', '');
                    } else if (!hzz) {
                        var sp = sp.replace(/链接/g, url)
                            .replace('后缀', '<font class="res tag">后缀</font></p>')
                            .replace('后缀', hz);
                    } else {
                        var sp = sp.replace(/链接/g, url)
                            .replace('后缀', '<font class="res tag">后缀</font></p>')
                            .replace('后缀', hzz);
                    }
                    z = z + sp;
                };
                tj = 't';
            }
        });
        if (tj == 'f') {
            if (!via.toast) {
                alert('这个页面没有资源。\n注:音乐或视频在播放时更容易被获取。资源嗅探不支持部分网站。');
            } else {
                via.toast('这个页面没有资源。\n注:音乐或视频在播放时更容易被获取。资源嗅探不支持部分网站。');
            }
        } else {
            var qm = "<!doctype html><html><head><meta content='text/html; charset=utf-8' http-equiv='Content-Type'><meta name='color-scheme' content='light dark'><meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no, minimal-ui'><title>资源嗅探</title><style>* {padding:0;margin:0;box-sizing:border-box;}html{height:100%;-webkit-tap-highlight-color:rgba(0, 0, 0, 0.1);-webkit-focus-ring-color: rgba(0, 0, 0, 0); /*-webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;*/}body{min-height:100%;max-width:100%; width: 600px;margin: auto;text-align: center;}body{background: transparent;}.box {margin: 12px 0; text-align: left; vertical-align:middle;position:relative;display: block;padding-top:10px; padding-bottom:10px; padding-left:10px; padding-right:10px;}.box a {width: 100%;height: 100%;position: absolute;left: 0;top: 0;}span, .url, .box {word-break: break-all;}.block{opacity:0.5;}.tag{background:#cd8282;padding:0 8px;margin:0 4px;color:white;font-size:12px;}.res{background:#5c91cb;}.title {color: #2b2b2b;font-size: 15px; padding: 4px 0px;}.url {line-height: 1.2em; max-height: 4.8em;font-size: 15px;color: #1b1b1b; white-space: normal; word-wrap: break-word; overflow: auto;text-overflow: ellipsis;-o-text-overflow: ellipsis;-ms-text-overflow: ellipsis;}.hint {line-height: 1.8em; color: #2b2b2b;font-size: 15px; white-space: normal; word-wrap: break-word; overflow: auto;text-overflow: ellipsis;-o-text-overflow: ellipsis;-ms-text-overflow: ellipsis; padding: 50px 5px; text-align: center; margin: auto;}#filter-box{padding:10px}#filter{border: 1px solid rgba(0, 0, 0, 0.1);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;padding:5px;width:100%;font-size: 15px;color: #1b1b1b;}</style></head><body><div class='frosted-glass' id='gesture-indicator'></div><div id='content'><div class='hint'>下列是网页加载中的资源日志。<br>使用getEntriesByType方法获取。</div>";
            var hm = "<script type='text/javascript'>function getDomain(a){var b=a.split('/'),c='';return a.indexOf('://')>-0&&b.length>2&&''!=b[2]&&(c=b[2]),c}function boldDomain(){var b,c,d,a=document.getElementsByClassName('url');for(d=a.length-1;d>=0;d--)b=a[d].innerHTML,c=getDomain(b),''!=c&&(a[d].innerHTML=b.replace(c,'<b>'+c+'</b>'))}boldDomain();</script></div></body></html>";
            var htmll = qm + z + hm;
            document.body.innerHTML = htmll;
        }
    };

    function getUrlA() {
        var videos = document.querySelectorAll('video,source');
        if (videos.length == 0) {
            if (!via.toast) {
                alert('这个页面没有资源。\n注:音乐或视频在播放时更容易被获取。资源嗅探不支持部分网站。');
            } else {
                via.toast('这个页面没有资源。\n注:音乐或视频在播放时更容易被获取。资源嗅探不支持部分网站。');
            }
        } else {
            var z = '';
            for (let i = 0; i < videos.length; i++) {
                var sp = "<div class='box'><a href='链接' title='链接'></a><p class='title'>呆毛飘啊飘<font class='tag'>load</font>后缀<p class='url'>链接</p></div>";
                var video = videos[i];
                var url = video.src;
                if (url) {
                    var hz = url.substring(url.lastIndexOf('.'), url.length);
                    var hzz = hz.substring(0, hz.indexOf('?'));
                    if (!hz) {
                        var sp = sp.replace(/链接/g, url)
                            .replace('后缀', '');
                    } else if (!hzz) {
                        var sp = sp.replace(/链接/g, url)
                            .replace('后缀', '<font class="res tag">后缀</font></p>')
                            .replace('后缀', hz);
                    } else {
                        var sp = sp.replace(/链接/g, url)
                            .replace('后缀', '<font class="res tag">后缀</font></p>')
                            .replace('后缀', hzz);
                    }
                    var z = z + sp;
                };
            };

            var qm = "<!doctype html><html><head><meta content='text/html; charset=utf-8' http-equiv='Content-Type'><meta name='color-scheme' content='light dark'><meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no, minimal-ui'><title>资源嗅探</title><style>* {padding:0;margin:0;box-sizing:border-box;}html{height:100%;-webkit-tap-highlight-color:rgba(0, 0, 0, 0.1);-webkit-focus-ring-color: rgba(0, 0, 0, 0); /*-webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;*/}body{min-height:100%;max-width:100%; width: 600px;margin: auto;text-align: center;}body{background: transparent;}.box {margin: 12px 0; text-align: left; vertical-align:middle;position:relative;display: block;padding-top:10px; padding-bottom:10px; padding-left:10px; padding-right:10px;}.box a {width: 100%;height: 100%;position: absolute;left: 0;top: 0;}span, .url, .box {word-break: break-all;}.block{opacity:0.5;}.tag{background:#cd8282;padding:0 8px;margin:0 4px;color:white;font-size:12px;}.res{background:#5c91cb;}.title {color: #2b2b2b;font-size: 15px; padding: 4px 0px;}.url {line-height: 1.2em; max-height: 4.8em;font-size: 15px;color: #1b1b1b; white-space: normal; word-wrap: break-word; overflow: auto;text-overflow: ellipsis;-o-text-overflow: ellipsis;-ms-text-overflow: ellipsis;}.hint {line-height: 1.8em; color: #2b2b2b;font-size: 15px; white-space: normal; word-wrap: break-word; overflow: auto;text-overflow: ellipsis;-o-text-overflow: ellipsis;-ms-text-overflow: ellipsis; padding: 50px 5px; text-align: center; margin: auto;}#filter-box{padding:10px}#filter{border: 1px solid rgba(0, 0, 0, 0.1);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;padding:5px;width:100%;font-size: 15px;color: #1b1b1b;}</style></head><body><div class='frosted-glass' id='gesture-indicator'></div><div id='content'><div class='hint'>下列是网页加载中的资源日志。<br>使用querySelectorAll方法获取。</div>";
            var hm = "<script type='text/javascript'>function getDomain(a){var b=a.split('/'),c='';return a.indexOf('://')>-0&&b.length>2&&''!=b[2]&&(c=b[2]),c}function boldDomain(){var b,c,d,a=document.getElementsByClassName('url');for(d=a.length-1;d>=0;d--)b=a[d].innerHTML,c=getDomain(b),''!=c&&(a[d].innerHTML=b.replace(c,'<b>'+c+'</b>'))}boldDomain();</script></div></body></html>";
            var htmll = qm + z + hm;
            if (z != '') {
                document.body.innerHTML = htmll;
            } else {
                if (!via.toast) {
                    alert('这个页面没有资源。\n注:音乐或视频在播放时更容易被获取。资源嗅探不支持部分网站。');
                } else {
                    via.toast('这个页面没有资源。\n注:音乐或视频在播放时更容易被获取。资源嗅探不支持部分网站。');
                }
            }
        }
    }
})();