您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
[NOW]官方双域名 私人镜像请自行修改替换 公共CDN请提供反馈 [TIP]预览 基于 @bluebabes的sehuatang 0.0.4版本
当前为
// ==UserScript== // @name 98T图片预览 // @description [NOW]官方双域名 私人镜像请自行修改替换 公共CDN请提供反馈 [TIP]预览 基于 @bluebabes的sehuatang 0.0.4版本 // @version 1.1.2 // @icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLvcALW92gawt9w0u73lZb2+62vKzu8ryNDpC87S9gDI1dgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArLPYAKuy1g6ts92Esbbj5rq66/u3tuv5x8jy4r3A56e7wOIhur/jAAAAAAAAAAAAAAAAAK6z3QCxt90FqKvbQ52f1XybotWZp67g+Ker5v+ipej/pKbr/7K17/+3uun/vcPpi////wDP1egAAAAAAAAAAAC4uucWuLjvfqmp6O2Xl97/kZfa/4uR3P96gNX/gYnb/46W5v+SmOv/o6js/7i97srDxvUiyc30CMOf/wDH19YAsrDpjraw8/ynovL/jY3l/3l/3P9eYtD/bXTT/5Sc5f+krO7/r7X0/5qg8P+ssvT5w8X818PF+LG0s+9cp6bnF6Ga3t6mnej/lZDo/3Z42/9vd9f/iI3g/6Op7/+ZoPX/k5z3/6mu+v+8wvr/tbz6/7i9+f+1tfL/sa7s+7y676qZktn/l4/h/4mI4P99gd7/q7Dt/5ed8P9weOz/S0/s/zg96/8+R+r/p6/8/7rC+P+nq/X/qafy/7Gu7v+0s+v3pJ/j/5eV4/+doOv/oKXx/6Op+P9OVub/T1nv/1Ra8P9ASOz/W2jz/4+Z/f+wtvj/oafv/6Cj8v+oqO7/ra7q/ael5MmjpOj/qq7x/6Cn9/+Yovv/dID3/1ll9/9kavj/XWj0/36L+P+NmP3/p6v8/7e69v+tr/T/sLPz/73C8r7AwPFBsrXr2auv7/+Ynfj/nqj8/4uW/f9sefz/XGT9/2Jp/f91gP3/eYX//6Om/P/BxPr+wcT45MXJ+Z7V3Psn////ALm+7Ty6u/Xnq6z9/6eu/P+ZoP7/bHb+/3yH/v+Sm/7/kZf+/6Wr/v+vs/v/ur7648rQ+z70/P8F2+L+AM7R+QDO0PgQy8v7w7+//f+ytv3/srf9/6Km/v+ipf//q6z//7a4//+1uv7/srL+/726/dTX2fob1df6AAAAAADCv/gAwLv4CNPQ/bfJyvv/wcP8/77C/f+5vPz/urr8/72//f+7vv7/sLD+/7Cr+//Bvfju1tf4NdTV+QAAAAAAxsj2AMfL9QnZ1fy30cz8/7689v+qpvb/tbT9/8DC/v+6u/7/t7b8/7Sx+P+3sPX/xMD2vNnc9xDV1vcAAAAAANDX9gDt4v8A3Nz8SczK98+wq+3fmZLwq6uo+47Fx/q/vb33+r279v/IxPn/xsH49MfF9Va3r/IA19z3AAAAAAAAAAAAwMz0AMbY/gG2vOsfr7PsKqus+gawtPAAzNHzF8PH8XDR0vi129v9qtPT+3DT1PgW09T4AAAAAAAAAAAA+B8AAPAPAACABwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACAAwAAgAMAAIADAADABwAAwgcAAA== // @author UnfogetMemory // @namespace https://www.sehuatang.net/* // @namespace https://www.sehuatang.org/* // @match https://www.sehuatang.net/forum* // @match https://www.sehuatang.org/forum* // @match https://www.sehuatang.net/forum.php?mod=forumdisplay&fid=103&page=* // @match https://www.sehuatang.org/forum.php?mod=forumdisplay&fid=103&page=* // @require https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js // @grant GM_xmlhttpRequest // @grant GM_addStyle // @license GNU GPLv3 // ==/UserScript== (function () { 'use strict'; const REFERER = document.location.href; const USER_AGENT = window.navigator.userAgent; const ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'; const COOKIE = document.cookie; var elArrayLength = 0; GM_addStyle(` .nep_um_main{ display: flex; flex-flow: wrap; width: 2501px; } .nep_um_title { width: 100%; max-width: 100%; margin: 1rem; font-size: 1.7rem; font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-basis: 100%; } .nep_um_cover { height: auto; margin: 1rem; flex-basis: 100%; } .nep_um_cover > img { width: 100%; height: auto; max-width: 938.667px; } .nep_um_magent { flex-basis: 100%; width: 100%; margin: 1rem; } .nep_um_torrent { flex-basis: 100%; width: 100%; margin: 1rem; font-size: 1.2rem; } .nep_um_divider { flex-basis: 100%; width: 100%; margin: 1rem; font-size: 1.2rem; height: 0.4rem; background-color: black; } `); function getOpenUrl(elBody) { let elUrl = null; if (elBody) { let subUrl = null; let subUrlEl = elBody.querySelector('td > td.icon > a'); if (!subUrlEl) { subUrlEl = elBody.querySelector('tr > th.common > a.s.xst'); } if (!subUrlEl) { subUrlEl = elBody.querySelector('tr > th.new > a.s.xst'); } if (subUrlEl) { subUrl = subUrlEl.href; } if (subUrl) { elUrl = subUrl; } } return elUrl; } function getAllArray() { return Array.from( document.querySelectorAll('[id^="normalthread_"]') ).filter(function (element) { if (/^normalthread_\d+$/.test(element.id)) { return element; } }); } function cutLastArray() { let allArray = getAllArray(); let lastArray = null; if (allArray && allArray.length > 0) { let nowArrayLength = allArray.length; if (elArrayLength <= 0) { lastArray = allArray; } else { lastArray = allArray.slice(elArrayLength); } elArrayLength = nowArrayLength; } return lastArray; } function getSubPageImageEl(subPageHTML) { if (subPageHTML) { let _el = subPageHTML.querySelector('ignore_js_op > img'); if (_el) { return `<img src="${_el.getAttribute( 'zoomFile' )}" style="width:100%; max-with:300px; height: auto;"/>`; } } return null; } function getSubPageMagentEl(subPageHTML) { if (subPageHTML) { let magentEl = subPageHTML.querySelector('.blockcode > div > ol > li'); if (magentEl) { return `<a href="${magentEl.innerText}" style="text-decoration:underline;">${magentEl.innerText}</a>`; } } return null; } function getSubPageTorrentEl(subPageHTML) { if (subPageHTML) { return subPageHTML.querySelector( 'div.pattl > ignore_js_op > dl > dd > p.attnm ' ); } return null; } function getTitle(elBody) { let title = 'Unknown'; if (elBody) { let titleEl = elBody.querySelector('tr > th.common > a.s.xst'); if (!titleEl) { titleEl = elBody.querySelector('tr > th.new > a.s.xst'); } if (titleEl) { title = titleEl.innerText.replace(/<savdiv[^>]*>.*?<\/savdiv>/g, ''); } } return title; } /* toRequestSubURL */ function convertElBody(elBody) { let openPageUrl = getOpenUrl(elBody); if (!openPageUrl) { return null; } GM_xmlhttpRequest({ method: 'GET', url: openPageUrl, headers: { 'User-agent': USER_AGENT, Accept: ACCEPT, cookie: COOKIE, referer: REFERER, }, onerror: function (_error) {}, onload: function (_res) { let parser = new DOMParser(); let subPageHTML = parser.parseFromString( _res.responseText, 'text/html' ); let imgEl = getSubPageImageEl(subPageHTML); let magentEl = getSubPageMagentEl(subPageHTML); let torrentEl = getSubPageTorrentEl(subPageHTML); if (imgEl && (magentEl || torrentEl)) { // main let mainDiv = document.createElement('div'); mainDiv.classList.add('nep_um_main'); mainDiv.id = 'nep_um_main'; // title let title = getTitle(elBody); let titleDiv = document.createElement('div'); titleDiv.classList.add('nep_um_title'); titleDiv.innerText = title; mainDiv.appendChild(titleDiv); // cover let imgDiv = document.createElement('div'); imgDiv.onclick = function () { window.open(openPageUrl, '_blank'); }; imgDiv.classList.add('nep_um_cover'); imgDiv.innerHTML = imgEl; mainDiv.appendChild(imgDiv); // magent let magentDiv = document.createElement('div'); magentDiv.classList.add('nep_um_magent'); magentDiv.innerHTML = magentEl; mainDiv.appendChild(magentDiv); // torrent let torrentDiv = document.createElement('div'); torrentDiv.classList.add('nep_um_torrent'); torrentDiv.innerHTML = torrentEl.outerHTML; mainDiv.appendChild(torrentDiv); // divider let dividerDiv = document.createElement('div'); dividerDiv.classList.add('nep_um_divider'); mainDiv.appendChild(dividerDiv); elBody.innerHTML = ''; elBody.appendChild(mainDiv); } }, }); } function run() { let modifyElArray = cutLastArray(); if (modifyElArray && modifyElArray.length > 0) { modifyElArray.forEach(function (_el) { // try { // convertElBody(_el) // } catch{ // } convertElBody(_el); }); } } var runDebounce = _.debounce(run, 3000, { maxWait: 8000 }); /* mainListen */ const observer_list = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if (mutation.type === 'childList') { runDebounce(); } }); }); const observerConfig_list = { childList: true, subtree: true }; observer_list.observe(document.body, observerConfig_list); /* widthListen */ const wpDiv = document.querySelector('#wp'); const observer_width = new ResizeObserver((entries, observer) => { // 遍历观察结果 for (const entry of entries) { if (entry.target === wpDiv) { const newWidth = wpDiv.clientWidth; const childDivs = wpDiv.querySelectorAll('#nep_um_main'); for (const childDiv of childDivs) { childDiv.style.width = newWidth + 'px'; } } } }); observer_width.observe(wpDiv); // init run(); document.querySelector('#threadlisttableid').style.width = '100%'; })();