您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
fix Matryoshka div
// ==UserScript== // @name fix Matryoshka div for BH bbcode beta // @description fix Matryoshka div // @namespace baha_bbcode_div_fix // @author Covenant // @version 0.9 // @license MIT // @homepage // @match https://home.gamer.com.tw/artwork.php?sn=* // @match https://webcache.googleusercontent.com/search?q=cache:https://home.gamer.com.tw/artwork.php* // @match https://web.archive.org/web/*/*home.gamer.com.tw/artwork.php?sn=* // @match https://guild.gamer.com.tw/about.php?gsn=* // @icon data:image/x-icon;base64,AAABAAIAICAAAAEACACoCAAAJgAAABAQAAABAAgAaAUAAM4IAAAoAAAAIAAAAEAAAAABAAgAAAAAAIAEAAAAAAAAAAAAAAABAAAAAAAA////APb29gDw8PAA4+PjAN3d3ADMzMwAxsbGALu7uwCysrIAqqqqAKOjowCZmZkAiIiIAHh4dgBvb28AZmZmAFhYWABSUlEASkpKAEFBQQAzMzMAJycoAAUFBQAAAAAAAgH+AFpNLABwaT8AkIAtAK6aLwCzokkAoJZjAMGzZQDPxpYA49y3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcMDBMMBxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcIERAIFxcXBBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCBERFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwgQDxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXEBIIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwgQEBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCBASFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcIEBAXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwgQEAkXFxcXFxcXFxcEFxcXFxcXFxcXFxcXFxcXFxcXFxAQDBcXFxcXFxcXFwwXFxcXFxcXFxcXFxcXFxcXFxcXCA4QCBcXFxcXFwkOFxcXFxcXFxcXFxcXFxcXFxcXFxcXCA8SEAwXFwwODBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCBISEw4MDwgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFw4QFxcXFxcXFxcXFxcXChEREQoXFxcJCQ4OEhIRERMXFw4QEQkXFxcXFxcXFxcXFxcKEREREREREwkXCQkJERAQCgoREBcXFxcXFxcXFxcXFxcXChcKFwoXFxcXFxcJChERERERDBcMCRcMEhcXFxcXFxcXFxcXFxcXFxcRFxcXCQoRERERDBMSEhEcFxcXFxcXFxcXFxcXFxcXFwoRCRcXAwoREREREBocFxcXFxcXFxcXFxcXCRECFxcXChMTEREREBERHBERCRcXFxcXFxcXFxcXFxcXChEJCQkREREREREREREcAgsPCRIXFxcXFxcXFxcXFxcXChERERERERERERERExwXFwwSCRIXFxcXFxcXFxcXFxcNERERERERERERERERHBcKEgoSFxcXFxcXFxcXFxcXChEREREREREREREREREUERcXFxcXFxcXFxcXFxcXCg0NERERERERERERERERDQ0cCBIXFxcXFxcXFwoKDRERERERERERERERERENDQ0cHBwdIRcXFwoTEhEQERESEhINDQ0NDQ0NDQ0NDQ0cHBwdFxcXFxcXFxcXFxcXFxchHBwcHBweHh4eHBwcHBwhFxcXFxcXFxcXFxcXFxchHBwcHBwcHBwcHBwcHCEXFxcXFxcXFxcXFx8fHhwcHBwcHBwcHBweHyEhFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxf////////wf///w7///4////8f////H////j////4////+P////h/3//8f9///D8///4Mf///AP///8//BwBh/+AIAf/6vwCT//3AA//8YA//HAAf/4AAB//AAMP/wACH/4AAf/4AAB/gAAAcAAAA//wAA//wAB/8AAH///////ygAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAEAAAAAAAD///8A////APDw8ADj4+MA3d3cAMzMzADGxsYAu7u7ALKysgCqqqoAo6OjAJmZmQCIiIgAeHh2AG9vbwBmZmYAWFhYAFJSUQBKSkoAQUFBADMzMwAnJygABQUFAAAAAAACAf4AWk0sAHBpPwCQgC0ArpovALOiSQCglmMAwbNlAM/GlgDj3LcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcXFxcXFxcGDAgIFxcXFxcXFxcXFxcEERcXFwgXFxcXFxcXFxcEEAUXFxcXFxcXFxcXFxcXCBAXFxcXFxcXFxcXFxcXFwgQFxcXFxcGFxcXFxcXFxcEEAwXFxcMFxcXFxcXFxcXFwgSDA8OBBcXFwwXFxcXFxcXCBAPFxcXBhcXCgwLDA0NDQoIEQ8IBQ0XFxcGFwkXFw0PDxEREwwXFxcXFxcXFwwKFw8RHBEJFxcXFxcXDAkXDxEREREXEgcSFxcXFxcMEREREREPFwgSFwYODRERERERDxwcHBwPFxcXFyEfHxwcHBwcICEXFxcXIRwcHBwcHCAhFxcXFxcXF/8P///+d////H////z////8+////Hf///4H//9/Hf//gAH//9YD///8g///8gj///gJ//8AA///wA///wB///8= // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_setClipboard // @run-at document-end // @noframes // ==/UserScript== async function fn_clipboard_w(str){ try{ await navigator.clipboard.writeText(str); }catch(e){alert(e.message);} finally{} } function fn_url(url){ let obj_url=new URL(url); let params=obj_url.searchParams; return [obj_url,params]; } function fn_htmlToBBCode(html){//soyuka/6183947 html = html.replace(/<pre(.*?)>(.*?)<\/pre>/gmi, "[code]$2[/code]"); html = html.replace(/<h[1-7](.*?)>(.*?)<\/h[1-7]>/, "\n[h]$2[/h]\n"); //paragraph handling: //- if a paragraph opens on the same line as another one closes, insert an extra blank line //- opening tag becomes two line breaks //- closing tags are just removed // html += html.replace(/<\/p><p/<\/p>\n<p/gi; // html += html.replace(/<p[^>]*>/\n\n/gi; // html += html.replace(/<\/p>//gi; /*html = html.replace(/<br>/gi, "\n");//*/ html = html.replace(/<textarea(.*?)>(.*?)<\/textarea>/gmi, "\[code]$2\[\/code]"); html = html.replace(/<b>/gi, "[b]"); html = html.replace(/<i>/gi, "[i]"); html = html.replace(/<u>/gi, "[u]"); html = html.replace(/<\/b>/gi, "[/b]"); html = html.replace(/<\/i>/gi, "[/i]"); html = html.replace(/<\/u>/gi, "[/u]"); html = html.replace(/<em>/gi, "[b]"); html = html.replace(/<\/em>/gi, "[/b]"); html = html.replace(/<strong>/gi, "[b]"); html = html.replace(/<\/strong>/gi, "[/b]"); html = html.replace(/<cite>/gi, "[i]"); html = html.replace(/<\/cite>/gi, "[/i]"); html = html.replace(/<font color="(.*?)">(.*?)<\/font>/gmi, "[color=$1]$2[/color]"); html = html.replace(/<font color=(.*?)>(.*?)<\/font>/gmi, "[color=$1]$2[/color]"); html = html.replace(/<link(.*?)>/gi, ""); html = html.replace(/<li(.*?)>(.*?)<\/li>/gi, "[*]$2"); html = html.replace(/<ul(.*?)>/gi, "[list]"); html = html.replace(/<\/ul>/gi, "[/list]"); html = html.replace(/<div>/gi, "\n"); html = html.replace(/<\/div>/gi, "\n"); /*html = html.replace(/<td(.*?)>/gi, " "); html = html.replace(/<tr(.*?)>/gi, "\n");//*/ /*html = html.replace(/<img(.*?)src="(.*?)"(.*?)>/gi, "[img]$2[/img]");//*/ html = html.replace(/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/gi, "[url=$2]$4[/url]"); html = html.replace(/<head>(.*?)<\/head>/gmi, ""); html = html.replace(/<object>(.*?)<\/object>/gmi, ""); html = html.replace(/<script(.*?)>(.*?)<\/script>/gmi, ""); html = html.replace(/<style(.*?)>(.*?)<\/style>/gmi, ""); html = html.replace(/<title>(.*?)<\/title>/gmi, ""); html = html.replace(/<!--(.*?)-->/gmi, "\n"); /*custom baha🚚*/ html = html.replace(/<img(.*?)src="(.*?)"(.*?)width="(.*?)"(.*?)>/gi, "[img=$2 width=$4]"); html = html.replace(/<img(.*?)src="(.*?)"(.*?)>/gi, "[img=$2]"); html = html.replace(/<font face="(.*?)">(.*?)<\/font>/gi, "[font=$1]$2[/font]"); html = html.replace(/<font face="(.*?)">\n<\/font>/gi, "[font=$1]\n[/font]"); html = html.replace(/<font size="(.*?)">(.*?)<\/font>/gi, "[size=$1]$2[/size]"); html = html.replace(/<strike>/gi, "[s]"); html = html.replace(/<\/strike>/gi, "[/s]"); html = html.replace(/<iframe(.*?)data-src="(.*?)"(.*?)>/gi, "[movie=$2]"); html = html.replace(/<table(.*?)>/gi, "[table$1]"); html = html.replace(/width="(.*?)"/gi, "width=$1"); html = html.replace(/border="(.*?)"/gi, "border=$1"); html = html.replace(/cellspacing="(.*?)"/gi, "cellspacing=$1"); html = html.replace(/cellpadding="(.*?)"/gi, "cellpadding=$1"); html = html.replace(/<\/table>/gi, "[/table]"); html = html.replace(/<tbody>/gi, "[tbody]"); html = html.replace(/<tr>/gi, "[tr]"); html = html.replace(/<td>/gi, "[td]"); html = html.replace(/<\/tbody>/gi, "[/tbody]"); html = html.replace(/<\/tr>/gi, "[/tr]"); html = html.replace(/<\/td>/gi, "[/td]"); html = html.replace(/<hr>/gi, "[hr]"); html = html.replace(/<br>/gi, "[br]"); /*html = html.replace(/\/\//gi, "/"); html = html.replace(/http:\//gi, "http://"); html = html.replace(/https:\//gi, "https://");//*/ html = html.replace(/<(?:[^>'"]*|(['"]).*?\1)*>/gmi, ""); html = html.replace(/\r\r/gi, ""); html = html.replace(/\[img]\//gi, "[img]"); html = html.replace(/\[url=\//gi, "[url="); html = html.replace(/(\S)\n/gi, "$1 "); ////html = html.replace(/\[br]/gi, "\n"); return html; } //console.log("break"); function copy(selectors){ let article=document.querySelectorAll(selectors)[0].cloneNode(true); let script=article.querySelectorAll('script'); for(let i = 0; i<script.length; i++){script[i].remove();} let iframe=article.querySelectorAll('iframe'); for(let i = 0; i<iframe.length; i++){ let url=fn_url(iframe[i].getAttribute("data-src")); iframe[i].setAttribute("data-src","https://"+url[0].host+url[0].pathname.replace(/embed\//gi, "watch?v=")); } let innerHTML=article.innerHTML; let tmp=fn_htmlToBBCode(innerHTML); console.log("copy"); return tmp; } function menu_01(selectors){ let tmp=copy(selectors); let ary_str=tmp.split('\n'); let str_bbcode=""; for(let i = 0; i<ary_str.length; i++){ if(ary_str[i]==""){ str_bbcode+="[div]\n[/div]"; }else{ str_bbcode+="[div]"+ary_str[i]+"[/div]"; } } GM_setClipboard(str_bbcode.replace(/\[br]/gi, "\n").replace(/] \[/gi, "]["), "text"); } function menu_02(selectors){ let tmp=copy(selectors); GM_setClipboard(tmp.replace(/\[br]/gi, "\n"), "text"); } (function() { 'use strict'; let url=fn_url(document.location); if(url[0].host.search(new RegExp("web.archive.org", "i"))==0){ if(url[0].pathname.search(/\/web\/\d+\*\//i)==0)return; } /*if(url[0].host.search(new RegExp("guild.gamer.com.tw", "i"))==0&&url[0].pathname.search(/\/about/i)==0){//guild GM_registerMenuCommand("sidebar_section_about-box", () => { menu_01('div.sidebar_section_about-box'); }); GM_registerMenuCommand("sidebar_section_announcement", () => { menu_02('div.sidebar_section_announcement'); }); }else{//artwork*/ GM_registerMenuCommand("copy", () => { menu_01('div#article_content'); }); GM_registerMenuCommand("copy without [div]", () => { menu_02('div#article_content'); }); //} })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址