魅族社区审核区UBB代码解析

to parse the UBB code to HTML code

当前为 2018-08-21 提交的版本,查看 最新版本

// ==UserScript==
// @name         魅族社区审核区UBB代码解析
// @namespace    https://gf.qytechs.cn/zh-CN/users/188666-gehongyan
// @version      1.2.0
// @description  to parse the UBB code to HTML code
// @author       gehongyan
// @grant        none
// @include      https://bbs.meizu.cn/forum.php?mod=modcp&action=moderate*
// ==/UserScript==

(function() {
    'use strict';
    var allDivs, thisDiv;
    allDivs = document.evaluate(
        "//div[@style=\"overflow: auto; overflow-x: hidden; height:112px; word-break: break-all;\"]",
        document,
        null,
        XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
        null);
    for (var i = 0; i < allDivs.snapshotLength; i++) {
        thisDiv = allDivs.snapshotItem(i);
        var altText = thisDiv.innerHTML;
        console.log(altText);
        // [img]$1[/img]
        var altHTML = altText.replace(/\[img\](.+?)\[\/img\]/ig,"<br><img src=$1 style=\"max-width:60%; max-height:60%;\" ><br>");
        // [img=255,255]$1[/img]
        altHTML = altHTML.replace(/\[img=\d*,\d*\](.*)\[\/img\]/ig, "<br><img src=$1 style=\"max-width:60%; max-height:60%;\" ><br>")
        // [color=#$1]
        altHTML = altHTML.replace(/\[color=#([0-9a-fA-F]{6})\]/ig, "<span style=\"color:#$1;\">");
        // [color=rgb(255,255,255)]
        altHTML = altHTML.replace(/\[color=rgb\((25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9]),\s(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9]),\s(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\)\]/ig, "<span style=\"color:rgb($1, $2, $3);\">");
        // [/color]
        altHTML = altHTML.replace(/\[\/color\]/ig, "</span>");
        // [b]
        altHTML = altHTML.replace(/\[b\]/ig, "<strong>");
        // [/b]
        altHTML = altHTML.replace(/\[\/b\]/ig, "</strong>");
        // [i]
        altHTML = altHTML.replace(/\[i\]/ig, "<em>");
        // [/i]
        altHTML = altHTML.replace(/\[\/i\]/ig, "</em>");
        // [u]
        altHTML = altHTML.replace(/\[u\]/ig, "<span style=\"text-decoration: underline\">");
        // [/u]
        altHTML = altHTML.replace(/\[\/u\]/ig, "</span>");
        // [font=$1]
        altHTML = altHTML.replace(/\[font=([0-9a-zA-Z ,&;]+)\]/ig, "<font face=\"$1\">");
        // [/font]
        altHTML = altHTML.replace(/\[\/font\]/ig, "</font>");
        // [align=(left|right|center)]
        altHTML = altHTML.replace(/\[align=(left|right|center)\]/ig, "<div style=\"text-align: left\">$1</div>");
        // [/align]
        altHTML = altHTML.replace(/\[\/align\]/ig, "<div>");
        // [url=$1]$2[/url]
        altHTML = altHTML.replace(/\[url=(.*)](.*)\[\/url\]/ig, "<a href=\"$1\" target=\"_blank\">$2</a>");
        // [url]$1[/url]
        altHTML = altHTML.replace(/\[url](.*)\[\/url\]/ig, "<a href=\"$1\" target=\"_blank\">$1</a>");
        // 裸露链接
        // altHTML = altHTML.replace(/(https?|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/ig, "<a href=\"$1\" target=\"_blank\">$1</a>");
        // [email=$1]$2[/url]
        altHTML = altHTML.replace(/\[email=(.*)](.*)\[\/email\]/ig, "<a href=\"mailto:$1\">$2</a>");


        //console.log(altHTML);
        var newImgTag = document.createElement("div");
        newImgTag.innerHTML = altHTML;
        thisDiv.parentNode.replaceChild(newImgTag, thisDiv);
        //console.log("========================================================");
    }

    var imgLinks = document.getElementsByTagName('img');
    for (i = 0; i < imgLinks.length; i++) {
        var imgLink = imgLinks[i];
        var altImgLink = imgLink.src.replace(/https:\/\/bbs.meizu.cn\/data\/attachment\/forum\/(.+)/ig, "https://bbsimage.res.meizu.com/forum/$1");
        imgLink.src = altImgLink;
    }

})();

function parseToDOM(str){
   var div = document.createElement("div");
   if(typeof str == "string"){
       div.innerHTML = str;
   }
   return div.childNodes;
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址