- // ==UserScript==
- // @name 福利吧百家姓磁力链接自动转换
- // @namespace http://tampermonkey.net/
- // @version 0.14
- // @description 自动替换百家姓内容并高亮显示
- // @author silviode
- // @match https://fuliba2023.net/*
- // @match *://f.uliba.net/*
- // @match *://fuliba66.net/*
- // @match *://fuliba23.net/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=fuliba2023.net
- // @license GPLv3
- // @grant none
- // ==/UserScript==
-
- (function () {
- 'use strict';
-
- const 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}]{10,}`, "gm")
- }
-
- let cnPattern = dict2pattern(obja)
- let youtubePattern = /watch\?v=/;
-
- let ps = document.querySelectorAll('p')
- ps.forEach(e => {
- let str = e.innerText
- if (str.match(cnPattern)) {
- let res = [...str.matchAll(cnPattern)]
- res.forEach(r => {
- // console.log(r[0])
- if (r[0].length === 40) {
- e.style.color = "red"
- e.innerText = e.innerText.replace(r[0],bjx2mag(r[0]))
- } else {
- e.style.color = "yellowgreen"
- e.innerText = e.innerText.replace(r[0],bjx2mag(r[0]))
- }
- })
-
- }
- if (youtubePattern.test(str)) {
- const videoId = str.split('?v=')[1];
- const aTag = document.createElement('a');
- aTag.href = `https://www.youtube.com/watch?v=${videoId}`;
- aTag.innerText = "油管链接";
- e.appendChild(aTag);
- }
-
- })
-
- function bjx2mag(bjx) {
- let str = bjx.replace(/^\s\s*/, '').replace(/\s\s*$/, '').split("");
- let c = ""
- if (str.length === 40) {
- c = "magnet:?xt=urn:btih:"
- for (let i of str) {
- c += obja[i]
- }
- } else {
- for (let i of str) {
- c += obja[i]
- }
- }
-
- return c
- }
-
- })();