您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This script let you save the content of the reading chapter on bachngocsach.vip (vip.bachngocsach.com) from clipboard
当前为
// ==UserScript== // @name bachngocsach vip chapter content copy // @name:en bachngocsach vip chapter content copy // @namespace Violentmonkey Scripts // @match https://bachngocsach.net.vn/* // @grant GM.setClipboard // @version 1.0.1 // @author Me // @run-at document-idle // @description This script let you save the content of the reading chapter on bachngocsach.vip (vip.bachngocsach.com) from clipboard // @description:en This script let you save the content of the reading chapter on bachngocsach.vip (vip.bachngocsach.com) from clipboard // ==/UserScript== let observeTimes = 1; let oldURL = ''; (async function () { let observer = new MutationObserver(async (mList) => { mList.forEach(async (m) => { if (m.target.className?.includes('published-content') && window.location.href != oldURL) { oldURL = window.location.href; ///?? xac định ddee ơ dau. await getChapterContent(); } }); }); observer.observe(document.querySelector('body'), { childList: true, subtree: true }); })(); async function getChapterContent() { let arrEl = document.querySelectorAll('div.published-content'); let goodText = arrEl[0].previousElementSibling?.innerText; let bad = arrEl[0]; let badPara = Array(bad.children.length); let style = {}; for (const eights of bad.children) { let className = eights.className.toLowerCase(); style[className] = parseInt(getComputedStyle(eights).order); let badLine = Array(eights.children.length); for (const sixes of eights.children) { let tagName = sixes.tagName.toLowerCase(); if (!style[tagName]) style[tagName] = parseInt(getComputedStyle(sixes).order); badLine[style[tagName]] = sixes.textContent; } badPara[style[className]] = badLine.join(''); } let txt = (goodText.trim() + badPara.join('\n\n')).replaceAll(/\n{3,}/g, '\n\n'); GM.setClipboard(txt); console.log(txt); return txt; } async function startDownload() { GM.setValue('downloading', true); if (/^https:\/\/bachngocsach\.net\.vn\/truyen\/[a-z\-\d]+\/?$/.test(window.location.href)) window.location.assign(window.location.href + '/chuong-1'); else window.location.reload(); } function sleep(ms = 10) { return new Promise(rs => setTimeout(rs, ms)) } function waitForKeyElement(sel = 'body', ms = 2000) { const delay = 100; const tries = Math.floor(ms / delay) + 1; return new Promise(async (rs, rj) => { let start = (new Date()).getTime(); for await (const i of Array(tries)) { let result = document.querySelectorAll(sel); if (result.length > 0) rs(result); await sleep(delay); } rj('Khong có element'); }); }