Greasy Fork

Greasy Fork is available in English.

福利吧百家姓磁力链接自动转换

自动替换百家姓内容并高亮显示

目前为 2023-01-17 提交的版本,查看 最新版本

// ==UserScript==
// @name         福利吧百家姓磁力链接自动转换
// @namespace    http://tampermonkey.net/
// @version      0.11
// @description  自动替换百家姓内容并高亮显示
// @author       silviode
// @match        https://fuliba2023.net/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=fuliba2023.net
// @license MIT
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    var obja = {
        "赵": "0", "钱": "1", "孙": "2", "李": "3", "周": "4", "吴": "5",
        "郑": "6", "王": "7", "冯": "8", "陈": "9", "褚": "a", "卫": "b",
        "蒋": "c", "沈": "d", "韩": "e", "杨": "f", "朱": "g", "秦": "h",
        "尤": "i", "许": "j", "何": "k", "吕": "l", "施": "m", "张": "n",
        "孔": "o", "曹": "p", "严": "q", "华": "r", "金": "s", "魏": "t",
        "陶": "u", "姜": "v", "戚": "w", "谢": "x", "邹": "y", "喻": "z",
        "福": "A", "水": "B", "窦": "C", "章": "D", "云": "E", "苏": "F",
        "潘": "G", "葛": "H", "奚": "I", "范": "J", "彭": "K", "郎": "L",
        "鲁": "M", "韦": "N", "昌": "O", "马": "P", "苗": "Q", "凤": "R",
        "花": "S", "方": "T", "俞": "U", "任": "V", "袁": "W", "柳": "X",
        "唐": "Y", "罗": "Z", "薛": ".", "伍": "-", "余": "_", "米": "+",
        "贝": "=", "姚": "/", "孟": "?", "顾": "#", "尹": "%", "江": "&",
        "钟": "*"
    };

    function dict2pattern(dict) {
        var cnPattern = ''
        for (let i in obja) {
            cnPattern += i
        }
        return new RegExp(`[${cnPattern}]{40}`, "g")
    }

    let cnPattern = dict2pattern(obja)

    let ps = document.getElementsByTagName('p')

    for (let p of ps) {
        let bjx = p.innerText
        let getPattern = bjx.matchAll(cnPattern)
        if (cnPattern.test(bjx)) {

            let bjxstr = ''
            let result = getPattern.next()

            while (!result.done) {
                bjxstr += bjx2mag(result.value[0]) + '\n'
                result = getPattern.next()
            }
            p.innerText = '\n' + bjxstr

            // console.log(p.innerText)
            p.style.color = "red"
        }
    }

    function bjx2mag(bjx) {
        let str = bjx.replace(/^\s\s*/, '').replace(/\s\s*$/, '').split("");
        let c = "magnet:?xt=urn:btih:";
        for (let i of str) {
            c += obja[i]
        }
        // console.log('这个是替换完成后的\n' + c)
        return c
    }
})();