您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
视频评论黑名单屏蔽词、收藏夹备注、音视频下载、评论区时间跳转、显示评分投票、标题封面完整显示、禁用动态头像、
// ==UserScript== // @name 爱上ASMR - Plus // @namespace https://www.asasmr.top/ // @version 6.1 // @description 视频评论黑名单屏蔽词、收藏夹备注、音视频下载、评论区时间跳转、显示评分投票、标题封面完整显示、禁用动态头像、 // @author 真是一坨大的根本看不懂<( _ _ )> // @include /https?\:\/\/.*\.asasmr\d\.com\/.*/ // @match http*://*.asasmr0.com/* // @match http*://*.aisasmr.com/* // @icon https://asmrscj.com/assets/images/logos/as111.png // @run-at document-body // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @license MIT // ==/UserScript== (function() { 'use strict'; // jquery const jqUrl = "https://code.jquery.com/jquery-3.7.1.min.js" function loadScript(url){ var script = document.createElement("script"); script.type = "text/javascript"; script.src = url; document.body.appendChild(script); } //loadScript(jqUrl) // 初始化 let notes = GM_getValue('notes', {}); let hmdList = GM_getValue('hmdList', []); let regexList = GM_getValue('regexList', [ '(?<![^\\s])第[一二三四五六七八九十](?![^\\s])' ]); // 储存屏蔽词列表 function sethmdList(list) { GM_setValue('hmdList', list); } // 储存屏蔽词列表 function setRegexList(list) { GM_setValue('regexList', list); } // 储存备注 function setNotes(id, value) { notes[id] = value.split('\n'); GM_setValue('notes', notes); } // 渲染备注 function getNotes(id) { if (!notes[id]) { notes[id] = []; } return notes[id].join('\n'); } GM_addStyle(` /* 用户菜单 */ .user-dashboard-dropdown,.user-dashboard-dropdown.show {transition: all 0.2s ease-out;box-shadow: -2px 4px 12px 0 rgb(0 0 0 / 20%);;} .user-dashboard-dropdown ul {display: flex;flex-direction: column;align-items: center;justify-content: space-between;} .user-dashboard-dropdown ul li:first-child {height: 60px;} .user-dashboard-dropdown ul li:last-child {box-shadow: none;} .user-dashboard-dropdown ul li { width: 100%;height: 50px;display: flex;align-items: center;justify-content: center;position: relative;align-self: stretch;} .user-dashboard-dropdown a.top-my-home {background: 0;} .user-dashboard-dropdown a {border: 0 !important;align-items: center;display: flex;justify-content: center;} .user-dashboard-dropdown a i.asmr {position: absolute;left: 20px;} .user-dashboard-dropdown p span.top-user-link-des {display: none !important;} .iconk-tongzhi:before {zoom: 1.3;} .iconk-tongzhi {left: 15px !important;} /* 分割线 */ .separator {height: 1px;align-self: stretch;margin: 5px 15px;background: rgba(0, 0, 0, 0.1);} /* 左侧栏 */ .cban {text-align: center;position: fixed;top: 45%;left: 0;transform: translateY(-95%);font-family: asmr;z-index: 99999;} .cban i:before { content: "\u{e678}"; cursor: pointer; display: flex; width: 40px; height: 40px; background-color: #66666666; box-shadow: 0px 0px 12px 0px #66666699; position: absolute; border-radius: 6px; transition: all 0.2s; flex-direction: column; justify-content: center; transform: translateX(-65%); } .cban i {position: fixed;top: 45%;z-index: 1002;} .cban i:hover::before {transform: translateX(0%);transition: transform 0.3s ease-out, opacity 0.3s ease-out;} .mobile-nav.active {box-shadow: 2px 0px 12px 0px rgb(0 0 0 / 30%);} .mobile-nav .genres {display: none;} /* 备注 */ .hmd-save-notes-button {float: right;margin-top: 20px;} .hmd-notes-area {width: 100%;padding: 8px;max-width: 75%;height: 60px;border: 1px solid rgb(204, 204, 204);font-size: 14px;color: rgb(51, 51, 51);} .archive-excerpt > p {height: 48px;} /* 黑名单 */ .hmd-add-to-blacklist {font-size: 11px !important;padding: 5px !important;border-radius: 4px !important;float: right !important; margin-left: 5px !important; color: #eeeeeeee !important; } /* 屏蔽词 */ #regex-input:focus {box-shadow: 0 0 0 1px #00a0d8, 0 0 0 3px #00a0d833;} #regex-input {padding: 4px 6px;margin: 0 0 10px 0;border-radius: 4px;outline: none !important;color: black; border: 1px solid rgba(136, 136, 136, 0.2666666667); } .pbcan {border: 1px solid #00000022;padding: 4px 10px;border-radius: 3px;font-size: 12px;margin: 0 5px 0;} /* 自定sidemenu列表 */ #hmd-list > li, #regex-list > li { background-color: #eee; margin: 0 0 5px 0; display: flex; align-items: center; justify-content: space-between; border-radius: 4px; font-size: 12px; border: 1px solid rgba(136, 136, 136, 0.2666666667); } #hmd-list > li > span, #regex-list > li > span {padding: 0 6px;color: #000;text-overflow: ellipsis;white-space: nowrap; overflow: hidden; width: 150px; } #hmd-list > li > span {color: #0693e3;text-decoration: underline;cursor: pointer;} /* 顶栏 */ .responsive .form-control:focus {border-color: #66afe9;box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);} .responsive .form-control {border-radius: 20px 0 0 20px;border-right: 0 !important;border: 1px solid #ccc;padding: 6px 12px;width: 40vw;} .responsive > #advc-menu > form > button { border-radius: 0 20px 20px 0; border: 1px solid #ccc; border-left: 1px solid #ddd; padding: 8px 12px 8px 8px; background-color: #fff; } .responsive .search a.search-resp:before {content: "\ue633" !important;font-family: 'asmr' !important;} .responsive .search {padding: 14px 13px 11px 13px;} #form-search-resp {display:none !important;} .responsive .logo {display:none !important;} /* 底栏 */ .touchy-search-button.touchy-toggle-search {display: none !important;} .touchy-by-bonfire-wrapper.mobile-show.touchy-menu-active {display: none !important;} /* 音视频下载 */ .button-container { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; padding: 20px; margin: auto; width: fit-content; } .button-container > button{ padding: 4px 6px; border-radius: 4px; /* padding:10px 20px; border:2px solid transparent; border-radius:20px; background:#f8f9fa; color:#343a40; font-size:16px; font-family:'Arial',sans-serif;cursor:pointer; transition:background-color .3s,transform .3s; box-shadow:0 2px 4px rgba(0,0,0,.1) */ } .button:hover{background:#e9ecef;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.2)} .button:active{background:#dee2e6;transform:translateY(0);box-shadow:0 2px 4px rgba(0,0,0,.1)} #copy-video-link{border-color:#dc3545;color:#dc3545} #copy-video-linkb{border-color:#6c757d;color:#6c757d} #copy-audio-link{border-color:#17a2b8;color:#17a2b8} #download-video-with-1dm{border-color:#ffc107;color:#ffc107} #download-video-with-1dmb{border-color:#e83e8c;color:#e83e8c} #download-audio-with-1dm{border-color:#28a745;color:#28a745} #copy-video-link:hover{color:#dc3545} #copy-video-linkb:hover{color:#6c757d} #copy-audio-link:hover{color:#17a2b8} #download-video-with-1dmb:hover{color:#e83e8c} #download-video-with-1dm:hover{color:#ffc107} #download-audio-with-1dm:hover{color:#28a745} .button:hover, #copy-video-link:hover, #copy-video-linkb:hover, #copy-audio-link:hover, #download-video-with-1dm:hover, #download-video-with-1dmb:hover, #download-audio-with-1dm:hover { background:#fff } /* 音视频页面 */ /* 简介区 */ /* 评论区 */ #wpcomm .wc-comment-footer .wc-footer-left {float: left !important;} #wpcomm .wc-comment-footer .wc-footer-right {float: right !important;} .daoyan.blcss,#breadcrumbs {display: none !important;} #section > li:nth-child(2) {display: none !important;} #single > div.content > div.sheader > div.data > div.sgeneros {display: none !important;} #aplload {background: #666;border: solid 2px #444;border-radius: 22px;color: #fff;padding: 2px 22px;font-weight: bold;} #aplload:hover {background: #888888;} .testBtn-a {background: #666;} .timeauto {padding: 20px 10px;margin-bottom: 10px;} .starstruck-wrap {display: block;} #single > .content > .sheader > .data {margin: 0;width: auto;} #single > .content > .sheader > .poster {width: auto;padding-bottom: 8px;background: 0;} #single > .content > .sheader > .poster > img {max-width: 100%;width: auto;} #single > .content > .sheader {display: flex;flex-direction: column;} #info > .wp-content > a {padding-right: 8px;} /* 等级颜色 */ .level-0,.level-1 {background: #C0C0C0;} .level-2 {background: #8BD29B;} .level-3 {background: #7BCDEF;} .level-4 {background: #FEBB8B;} .level-5 {background: #EE672A;} .level-6 {background: #F04C49;} .level-7 {background: #821CF9;} .level-8 {background: #dddddd;color: #000;} .level-admin {background: #FF1111;} .level {opacity: .8 !important;} /* 深色模式 */ .dark .single_menu.sidblock {background: #232627;} .dark .sidemenu h1 a {color:#fff;} .dark .sidemenu .td-link-element-after .td-element-after,.dark .sidemenu .td-link-element-after {color:#fff !important;} .dark .hmd-blacklist {background: #222;} .dark .hmdclosebutton {background: #111;} .dark .hmd-notes-area {color: #bbb;background: #333;} body.dark::before {content: "";position: fixed;inset: 0;;background-color: rgba(0, 0, 0, 0.3);z-index: 9999;pointer-events: none;} .dark p#breadcrumbsmove {background: #292b2c;color: #bbb;display: block !important;border-bottom: 1px solid #666;} .dark p#breadcrumbsmove a {color: #888;} .dark .hmd-popup-content {background: #292b2c;color: #bbb;} .dark .cban i:before {background-color: #333;border: solid 1px #3f3f3f;} .dark .responsive > #advc-menu > form > button {background-color: #232627;border-color: #666;color: #aaa;} .dark .responsive .form-control {border-color: #666;color: #ccc !important;} .dark input::placeholder {color: #ccc !important;} /* 其他 */ input::-webkit-outer-spin-button,input::-webkit-inner-spin-button {-webkit-appearance: none !important;margin: 0;} input[type="number"] {-moz-appearance: textfield;} /* 媒体卡片 */ .iconk-play:before {content: "";} .iconk-yinpin3:before {content: "";} .poster:hover i.iconk-play:before {content: "\ue604";} .poster:hover i.iconk-yinpin3:before {content: "\ue60c";} .poster a.thumb-link:hover {background-color: #00000022;} body .module .content .items .item .poster .rating,body .fittobox .item .poster .rating { background: linear-gradient(180deg,transparent,rgba(0,0,0,.5) 99.32%) !important; height: 40px!important;position: absolute!important;padding-top: 18px!important;inset: auto 0 0 0!important; } body .item-in .rating span {color: #fff!important;} .vidtime {bottom: 5px;top: auto;background: 0 !important;} .quality {inset: 0 0 auto auto !important;border-radius: 0 0 0 5px !important;} .yz-project-text {display: flex;flex-direction: column;align-items: center;} `) // 简介 function 简介() { // 简介封面 const $dateSpan = $('#single > .content > .sheader > .data > .extra > .date'); $dateSpan.after('<br><br>'); // 完整封面 const ogImageMeta = $('meta[property="og:image"]').attr('content') || ''; const $dplayerVideo = $('#single > .content > .sheader > .poster > img'); if ($dplayerVideo.length && ogImageMeta) { $dplayerVideo.attr('src', ogImageMeta); } // youtube超链接 const paragraphs = document.querySelectorAll('.wp-content p'); paragraphs.forEach((p) => { if (p.textContent.includes('油管:')) { // 匹配"油管:"后面的所有视频ID const regex = /油管:([\w-]+(?:\s+[\w-]+)*)/g; const newContent = p.textContent.replace(regex, (match, videoIds) => { const ids = videoIds.split(/\s+/).filter(id => id.trim() !== ''); const replacements = ids.map(videoId => `油管: <a href="https://www.youtube.com/watch?v=${videoId}" target="_blank">${videoId}</a>`); return replacements.join(' ').trim(); }); p.innerHTML = newContent; } }); } // 视频功能 // 评论区时间跳转 function 时间跳转() { const paragraphs = document.querySelectorAll('.wc-comment-right > .wc-comment-text > p'); paragraphs.forEach((p) => { const regex = /([0-9]|[1-9][0-9])[::;;.。分]([0-5][0-9])/g; p.innerHTML = p.innerHTML.replace(regex, (match) => { const [hours, minutes] = match.split(/[::;;.。分]/); const totalSeconds = parseInt(hours) * 60 + parseInt(minutes); return `<a href="javascript:dp.seek(${totalSeconds});">${match}</a>`; }); }); // 将视图定位到 播放器 const linkElements = document.querySelectorAll('.wc-comment-right > .wc-comment-text > p > a'); linkElements.forEach((linkElement) => { linkElement.addEventListener('click', () => { const dplayerElement = document.querySelector('#dplayer'); window.scrollTo({ top: dplayerElement.offsetTop, behavior: 'smooth' // 可以选择平滑滚动效果 }); }); }); } function 替换动态头像() { const images = document.querySelectorAll('#wcThreadWrapper img'); images.forEach(image => { if (image.src.includes('.gif')) { const fileName = image.src.split('/').pop(); const letters = 'abcdefghijklmnopqrstuvwxyz'; const randomLetter = letters[Math.floor(Math.random() * letters.length)]; const newSrc = window.location.origin + `/wp-content/plugins/wp-first-letter-avatar/images/default/96/latin_${randomLetter}.png`; image.src = newSrc; } }); } // 创建列表 function createRegexListItem(item, index) { const listItem = document.createElement('li'); const span = document.createElement('span'); const button = document.createElement('button'); let removeFunction; if (typeof item === 'object' && item !== null) { span.textContent = item.name; span.addEventListener('click', function () { var url = `/author/${item.id}`; window.open(url, '_blank'); }); removeFunction = removehmd; } else { span.textContent = item; span.title = item; removeFunction = removeRegex; } button.className = 'pbcan'; button.textContent = '删除'; button.addEventListener('click', function () { listItem.style.display = 'none'; removeFunction(index); }); listItem.appendChild(span); listItem.appendChild(button); return listItem; } function getDirectTextContent(element) { return Array.from(element.childNodes) .filter(node => node.nodeType === Node.TEXT_NODE) .map(node => node.nodeValue.trim()) .join(''); } // 评论区 // 黑名单 function 加入黑名单按钮() { const commentHeaders = document.querySelectorAll('.wc-comment-header'); commentHeaders.forEach((header) => { const addToBlacklistButton = header.querySelector('.hmd-add-to-blacklist'); if (addToBlacklistButton) return; const commentLink = header.querySelector('.wc-comment-link'); const authorLink = header.querySelector('.wc-comment-author > a'); const button = document.createElement('button'); button.textContent = '黑'; button.classList.add('hmd-add-to-blacklist'); commentLink.appendChild(button); button.addEventListener('click', () => { const authorName = getDirectTextContent(authorLink); const authorIdMatch = authorLink.href.match(/\/author\/(\d+)/); const authorId = authorIdMatch ? authorIdMatch[1] : null; if (authorId) { Swal.fire({ title: '确定要添加吗?', html: `Name:${authorName}<br>ID:${authorId}`, icon: 'question', showCancelButton: true, confirmButtonText: '确定', cancelButtonText: '取消' }).then((result) => { if (result.isConfirmed) { header.parentElement.parentElement.style.display = 'none'; const hmdStr = {name: authorName, id: authorId} hmdList.push(hmdStr); const regexListElement = document.getElementById('hmd-list'); const lastIndex = regexList.length - 1; const listItem = createRegexListItem(hmdStr, lastIndex); regexListElement.appendChild(listItem); GM_setValue('hmdList', hmdList); /* Swal.fire({ title: '成功添加 ' + authorName + ' 加入黑名单', text: '1秒后自动关闭', timer: 1500, timerProgressBar: true, }) */ } }); } }); }); } // 删除指定的黑名单用户 function removehmd(index) { hmdList.splice(index, 1); sethmdList([...hmdList]); } function 屏蔽黑名单用户的评论() { const comments = document.querySelectorAll('.wc-comment .wc-comment-author > a'); comments.forEach(authorLink => { const authorid = authorLink.href.match(/\/author\/(\d+)/)[1]; const hmdListItem = hmdList.find(item => item.id === authorid); if (hmdListItem) { authorLink.closest('.wc-comment').style.display = 'none'; } }); } // 屏蔽词 // 添加新的屏蔽词到列表 function addRegex(regexStr) { try { new RegExp(regexStr); if (!regexList.includes(regexStr)) { regexList.push(regexStr); setRegexList([...regexList]); const regexListElement = document.getElementById('regex-list'); const lastIndex = regexList.length - 1; const listItem = createRegexListItem(regexStr, lastIndex); regexListElement.appendChild(listItem); } } catch (error) { console.error("Invalid regular expression: ", regexStr); Swal.fire({ title: "请输入有效的正则表达式", timer: 10000, timerProgressBar: true, }) } } // 删除指定的屏蔽词 function removeRegex(index) { regexList.splice(index, 1); setRegexList([...regexList]); } // 检查文本是否应该被屏蔽 function isBlocked(text) { return regexList.some(regexStr => { try { const pattern = new RegExp(regexStr.replace(/^\/|\/g?i?m?$/, ''), 'gi'); return pattern.test(text); } catch (error) { console.error(`Invalid regular expression: ${regexStr}`, error); return false; } }); } function 屏蔽词屏蔽评论() { const commentTexts = document.querySelectorAll('.wc-comment-text > p'); commentTexts.forEach(commentText => { //console.log(commentText.textContent); // 输出每个评论的文本内容 const parentElement = commentText.parentElement.parentElement.parentElement; if (isBlocked(commentText.textContent)) { // 输出被屏蔽的评论内容 console.log('%cBlocking:', 'color: #f33;', commentText.textContent); parentElement.style.display = 'none'; } }); } // 加载更多评论后执行相关函数 function 加载更多评论相关函数() { const threadWrapper = document.getElementById('wcThreadWrapper'); const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.type === 'childList') { 替换动态头像(); 时间跳转(); 加入黑名单按钮(); 屏蔽黑名单用户的评论(); 屏蔽词屏蔽评论(); } }); }); if (threadWrapper instanceof Node) { observer.observe(threadWrapper, { childList: true }); console.log('%c可以执行评论相关函数', 'color: white; background-color: #4CAF50; padding: 10px; font-size: 16px;'); } else { console.log('%c评论相关函数不可执行', 'color: white; background-color: #f33; padding: 10px; font-size: 16px;'); } } function 签到(element) { // 签到页面 const apiUrl = window.location.origin + '/mission' document.querySelectorAll('.asmr.iconk-qiandao').forEach(function(element) { element.parentElement.addEventListener('click', function(event) { event.preventDefault(); }); }); document.querySelector(element).addEventListener('click', () => { const currentDate = new Date().toISOString().slice(0, 10); let lastSignInDate = localStorage.getItem('lastSignInDate') || '1970-01-01'; if (currentDate === lastSignInDate) { Swal.fire({ title: '今日已签到', text: '是否前往签到页面?', showCancelButton: true, confirmButtonText: '是', cancelButtonText: '否' }).then((result) => { if (result.isConfirmed) { window.open(apiUrl, '_blank'); } }); } else { Swal.fire({ title: '是否签到?', showCancelButton: true, confirmButtonText: '是', cancelButtonText: '否' }).then((result) => { if (result.isConfirmed) { 请求签到(apiUrl); localStorage.setItem('lastSignInDate', currentDate); } }); } }); } async function 请求签到(apiUrl) { try { const response = await fetch(apiUrl); if (!response.ok) throw new Error('未能从服务器获取数据'); const html = await response.text(); const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); const elements = doc.querySelector('#dt_reset_api-js-extra'); if (!elements) throw new Error('未能找到目标元素'); const wpnonceMatch = elements.textContent.match(/"wp_rest":"([a-zA-Z0-9]+)"/); const wpnonce = wpnonceMatch ? wpnonceMatch[1] : null; if (!wpnonce) throw new Error('未能获取_wpnonce'); const missionResponse = await fetch(`/wp-json/as/v1/userMission?_wpnonce=${wpnonce}`, { headers: { accept: "application/json, text/javascript, */*; q=0.01", }, referrer: apiUrl, method: "POST", }); if (!missionResponse.ok) throw new Error('签到请求失败'); const data = await missionResponse.json(); console.log(data); Swal.fire({ title: '签到成功', icon: 'success' }); } catch (error) { console.error(error); Swal.fire({ title: '签到失败', text: error.message, icon: 'error' }); } } // 设置移动设备侧栏开关状态 function toggleActiveClass() { // 移动设备侧栏开关 var mobileNav = document.querySelector('.mobile-nav'); var mobileoverlay = document.querySelector('.mobile-overlay'); mobileNav.classList.toggle('active'); mobileoverlay.classList.toggle('active'); } function mobileMain() { GM_addStyle(` #regex-list > li > span {white-space: normal !important;} `) // 用户菜单 $('.responsive .iconk-bianji').eq(1).removeClass('iconk-bianji').addClass('iconk-dingyue'); // 顶栏 var $qiandaolement = $('.responsive > .search > .search-resp'); const head = document.querySelector('.top-my-home').href; $qiandaolement.attr('href', head + '?tab=SC'); var $divElement = $('<div>').attr('id', 'advc-menu').addClass('searchs') .css({ 'float': 'left', 'padding': '10px 0px 8px 5px' }); // 搜索框 var $formElement = $('<form>', {id: 'searchform',action: window.location.origin,method: 'get'}).css('display', 'flex'); var $inputElement = $('<input>', {type: 'text',class: 'form-control',placeholder: '搜索...',name: 's',id: 's'}).val(''); // 搜索按钮 var $buttonElement = $('<button>').attr('type', 'submit'); var $spanElement = $('<span>').addClass('olam').text('\uE73B').css('font-family', "'olam' !important"); $buttonElement.append($spanElement); $formElement.append($inputElement); $formElement.append($buttonElement); $divElement.append($formElement); $('.responsive').append($divElement); // 底栏 // 底部"首页" var $homedibu = $('<a>', {href: window.location.origin,class: 'touchy-home-button'}); var $homedibuspan = $('<span>', {class: 'touchy-call-text-label-offset'}); var $homedibuicon = $('<i>', {class: 'fa fa-home'}); var $homedibub = $('<b>').text('首页'); $homedibuspan.append($homedibuicon); $homedibu.append($homedibuspan); $homedibu.append($homedibub); $('.touchy-search-button').after($homedibu); // 底部"菜单" var touchymenu = document.querySelector('.touchy-menu-button.touchy-toggle-menu'); var newElement = touchymenu.cloneNode(true); touchymenu.parentNode.replaceChild(newElement, touchymenu); newElement.addEventListener('click', toggleActiveClass); } function main() { // 引入 // 通知功能 let sw2css = document.createElement('link'); sw2css.rel = 'stylesheet'; sw2css.href = 'https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/limonte-sweetalert2/10.15.2/sweetalert2.min.css?ver=6.1.7'; document.head.appendChild(sw2css); let sw2js = document.createElement('script'); sw2js.src = 'https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/limonte-sweetalert2/10.15.2/sweetalert2.min.js?ver=9.17.0'; document.head.appendChild(sw2js); // 左侧栏 // 默认打开周热门 $('#menu-item-22769 > a').attr('href', '/rmen?timeframe=week'); var $srementargetElement = $('#arch-menu > div > div:nth-child(2) > ul > li:nth-child(4) > a'); if ($srementargetElement.length) { $srementargetElement.attr('href', '/rmen?timeframe=week'); } // 检查是否是电脑 var $header = $('#header'); var headerDisplay = $header.css('display') if (headerDisplay === 'block') { // 悬浮按钮使用移动设备侧栏 $('<div class="cban"><i></i></div>').prependTo('body') .on('click', toggleActiveClass); 签到('.headitemss .dt_user > div > ul > li:nth-child(4)') }else { 签到('.responsive .dt_user > div > ul > li:nth-child(4)') mobileMain(); } const $sidemenu = $('.mobile-nav > .sidemenu:last'); // 创建添加屏蔽词区 const $container = $('<div>', { id: 'blocker-controls', class: 'sidemenu' }); const $label = $('<h2>', { for: 'regex-input', text: '屏蔽词' }); const $input = $('<input>', { type: 'text', id: 'regex-input', placeholder: '支持正则表达式' }); const $addButton = $('<button>', { id: 'add-regex', text: '添加', class: 'pbcan' }); const $regexList = $('<ul>', { id: 'regex-list' }); $container.append($label, $input, $addButton, $regexList); $addButton.on('click', function () { const regexStr = $input.val().trim(); if (regexStr) { addRegex(regexStr); $input.val(''); } }); $sidemenu.after($container); // 创建屏蔽词列表 const regexListElement = document.getElementById('regex-list'); regexList.forEach((regexStr, index) => { const listItem = createRegexListItem(regexStr, index); regexListElement.appendChild(listItem); }); // 创建黑名单列表 const $hmdcontainer = $('<div>', { id: 'hmd-controls', class: 'sidemenu' }); const $hmdlabel = $('<h2>', { text: '黑名单' }); const $hmdList = $('<ul>', { id: 'hmd-list' }); $hmdcontainer.append($hmdlabel, $hmdList); $sidemenu.after($hmdcontainer); const hmdListElement = document.getElementById('hmd-list'); hmdList.forEach((hmdStr, index) => { const listItem = createRegexListItem(hmdStr, index); hmdListElement.appendChild(listItem); }); // 用户菜单 // 分割线 const firstListItems = document.querySelectorAll('.user-dashboard-dropdown ul li:first-child'); firstListItems.forEach((firstListItem) => { const separator = document.createElement('div'); separator.classList.add('separator'); firstListItem.insertAdjacentElement('afterend', separator); }); } // 音频链接复制 function copyAudioLink(url) { if (!ap || ap.audio.length === 0) { Swal.fire({ title: '无音频链接', text: '当前页面没有找到任何音频链接。', icon: 'info', confirmButtonText: '好的' }); return; } if (ap.audio.length === 1) { var element = document.getElementById('copy-audio-link'); navigator.clipboard.writeText(url).then(() => { element.textContent = '音频链接已复制'; }).catch(err => { element.textContent = '无法复制音频链接';console.error('复制音频链接失败:', err); }); return; } else if (ap.audio.length >= 2) { let audioLinksMessage = '请选择要复制的链接:\n点击复制\n'; let urls = ap.audio.map(audio => audio.url).join('\n'); let urlsHtml = ap.audio.map(audio => { let encodedUrl = audio.url; let decodedUrl = decodeURIComponent(encodedUrl); return `<a href="https:${encodedUrl}">${decodedUrl}</a><br>`; }).join('\n'); audioLinksMessage += urlsHtml; Swal.fire({ title: '当前页面有多个音频', html: `<pre style="white-space: pre-wrap; word-wrap: break-word; height: 80vh; overflow-y: scroll;">${audioLinksMessage}</pre>`, showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: '复制全部链接', cancelButtonText: '取消' }).then((result) => { if (result.isConfirmed) { navigator.clipboard.writeText(urls).then(() => { Swal.fire('已复制!', '所有音频链接已复制到剪贴板。', 'success'); }).catch(err => { Swal.fire('错误', '无法复制链接到剪贴板。', 'error'); }); } }); } } function 音视频下载() { var activityBtn = document.querySelector('.activity-btn'); if (activityBtn) { var title = encodeURIComponent(document.querySelector('.data > h1').textContent || document.title); if (window.location.href.includes("video")) { var video_urla = line[0]; var video_urlb = line[1]; console.log("视频页"); } else { console.log("音频页"); } var audio_url = ap.audio[0]?.url; var buttonContainer = document.createElement('div'); buttonContainer.className = 'button-container'; [ {id: 'copy-video-link', text: '点击复制视频链接1'}, {id: 'copy-video-linkb', text: '点击复制视频链接2'}, {id: 'download-video-with-1dm', text: '使用1dm+下载视频1'}, {id: 'download-video-with-1dmb', text: '使用1dm+下载视频2'}, {id: 'copy-audio-link', text: '点击复制音频链接'}, {id: 'download-audio-with-1dm', text: '使用1dm+下载音频'} ].forEach(function(buttonInfo) { var button = document.createElement('button'); button.id = buttonInfo.id; button.textContent = buttonInfo.text; button.addEventListener('click', function () { let url, intentUrl; switch (buttonInfo.id) { case 'copy-video-link': url = video_urla; navigator.clipboard.writeText(url).then(() => {this.textContent = '视频链接1已复制';}) .catch((err) => {this.textContent = '无法复制视频链接1';console.error('复制视频链接1失败:', err);}); break; case 'copy-video-linkb': url = video_urlb; navigator.clipboard.writeText(url).then(() => {this.textContent = '视频链接1已复制';}) .catch((err) => {this.textContent = '无法复制视频链接1';console.error('复制视频链接1失败:', err);}); break; case 'download-video-with-1dm': if (video_urla) { intentUrl = `intent:${video_urla}#Intent;package=idm.internet.download.manager.plus;scheme=idmdownload;S.title=${title}.mp4;end`; window.open(intentUrl, '_blank'); } else { this.textContent = "没有找到视频"; } break; case 'download-video-with-1dmb': if (video_urlb) { intentUrl = `intent:${video_urlb}#Intent;package=idm.internet.download.manager.plus;scheme=idmdownload;S.title=${title}.mp4;end`; window.open(intentUrl, '_blank'); } else { this.textContent = "没有找到视频"; } break; case 'copy-audio-link': url = audio_url; copyAudioLink(url); break; case 'download-audio-with-1dm': if (audio_url) { intentUrl = `intent:${audio_url}#Intent;package=idm.internet.download.manager.plus;scheme=idmdownload;S.title=${title}.mp3;end`; window.open(intentUrl, '_blank'); } else { this.textContent = "没有找到音频"; } break; } }); buttonContainer.appendChild(button); }); activityBtn.parentNode.insertBefore(buttonContainer, activityBtn); } } function 备注() { console.log('收藏页执行一切正常!'); // 添加备注区域 const archiveContainers = document.querySelectorAll('#author-page .archive'); archiveContainers.forEach(container => { const articleLink = container.querySelector('article > a'); const noteid = articleLink.href.match(/\/(video|sound)\/([\w-]+\.html)/)[0];// 提取ID const notesArea = document.createElement('textarea'); notesArea.classList.add('hmd-notes-area'); notesArea.placeholder = '添加备注'; notesArea.value = getNotes(noteid) || ''; const saveNotesButton = document.createElement('button'); saveNotesButton.textContent = '保存备注'; saveNotesButton.classList.add('hmd-save-notes-button'); saveNotesButton.addEventListener('click', () => { setNotes(noteid, notesArea.value); Swal.fire({ title: "备注已保存", timer: 10000, timerProgressBar: true, }) }); container.appendChild(notesArea); container.appendChild(saveNotesButton); }); } // 页面加载完毕时执行一次 window.onload = function() { main(); // 媒体页 if (window.location.href.match(/https:\/\/.*\/(video|sound)\/(\d+)\.html.*/)) { 简介(); 替换动态头像(); 时间跳转(); 加载更多评论相关函数(); 音视频下载(); 加入黑名单按钮(); 屏蔽黑名单用户的评论(); 屏蔽词屏蔽评论(); if (window.location.href.includes("sound")) { if (ap.audio.length >= 2) { var yc = document.getElementById('download-audio-with-1dm'); yc.style.display = 'none'; } const styleElement = document.createElement('style'); styleElement.textContent = ` #copy-video-link, #copy-video-linkb, #download-video-with-1dm, #download-video-with-1dmb { display: none; } `; document.head.appendChild(styleElement); } setTimeout(function() { console.log('%c媒体页执行一切正常!', 'color: white; background-color: #4CAF50; padding: 10px; font-size: 16px;'); }, 1000); } // 收藏页 if (window.location.href.match(/^https:\/\/.*\/author\//) && window.location.href.match(/\?tab=collect.*/)) { 备注(); } // 空间 // 查成分 if (window.location.href.match(/^https:\/\/.*\/author\/.*/)) { var elements = document.querySelectorAll('.um-widget'); for (var i = 0; i < elements.length; i++) { var element = elements[i]; if (element.classList.contains('follow-widget')) { element.classList.remove('follow-widget'); } } } // 收藏页 // 播放列表 if (window.location.href.match(/^https:\/\/.*\/author\//) && window.location.href.match(/\?tab=SC/)) { let apcss = document.createElement('link'); apcss.rel = 'stylesheet'; apcss.href = '/wp-content/plugins/Hermit-X-master/assets/css/APlayer.min.css?ver=2.8.0'; document.head.appendChild(apcss); let apjs = document.createElement('script'); apjs.src = '/wp-content/plugins/Hermit-X-master/assets/js/APlayer.min.js?ver=2.8.0'; document.head.appendChild(apjs); GM_addStyle(` #cover, #ai {display: none !important;} #tab-bar li {margin-right: 0 !important;} #tab-bar li a {padding: 0 6px;} `) } } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址