Greasy Fork is available in English.

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

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

  1. // ==UserScript==
  2. // @name 福利吧百家姓磁力链接自动转换
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.14
  5. // @description 自动替换百家姓内容并高亮显示
  6. // @author silviode
  7. // @match https://fuliba2023.net/*
  8. // @match *://f.uliba.net/*
  9. // @match *://fuliba66.net/*
  10. // @match *://fuliba23.net/*
  11. // @icon https://www.google.com/s2/favicons?sz=64&domain=fuliba2023.net
  12. // @license GPLv3
  13. // @grant none
  14. // ==/UserScript==
  15.  
  16. (function () {
  17. 'use strict';
  18.  
  19. const obja = {
  20. "赵": "0", "钱": "1", "孙": "2", "李": "3", "周": "4", "吴": "5",
  21. "郑": "6", "王": "7", "冯": "8", "陈": "9", "褚": "a", "卫": "b",
  22. "蒋": "c", "沈": "d", "韩": "e", "杨": "f", "朱": "g", "秦": "h",
  23. "尤": "i", "许": "j", "何": "k", "吕": "l", "施": "m", "张": "n",
  24. "孔": "o", "曹": "p", "严": "q", "华": "r", "金": "s", "魏": "t",
  25. "陶": "u", "姜": "v", "戚": "w", "谢": "x", "邹": "y", "喻": "z",
  26. "福": "A", "水": "B", "窦": "C", "章": "D", "云": "E", "苏": "F",
  27. "潘": "G", "葛": "H", "奚": "I", "范": "J", "彭": "K", "郎": "L",
  28. "鲁": "M", "韦": "N", "昌": "O", "马": "P", "苗": "Q", "凤": "R",
  29. "花": "S", "方": "T", "俞": "U", "任": "V", "袁": "W", "柳": "X",
  30. "唐": "Y", "罗": "Z", "薛": ".", "伍": "-", "余": "_", "米": "+",
  31. "贝": "=", "姚": "/", "孟": "?", "顾": "#", "尹": "%", "江": "&",
  32. "钟": "*"
  33. };
  34.  
  35. function dict2pattern(dict) {
  36. var cnPattern = ''
  37. for (let i in obja) {
  38. cnPattern += i
  39. }
  40. return new RegExp(`[${cnPattern}]{10,}`, "gm")
  41. }
  42.  
  43. let cnPattern = dict2pattern(obja)
  44. let youtubePattern = /watch\?v=/;
  45.  
  46. let ps = document.querySelectorAll('p')
  47. ps.forEach(e => {
  48. let str = e.innerText
  49. if (str.match(cnPattern)) {
  50. let res = [...str.matchAll(cnPattern)]
  51. res.forEach(r => {
  52. // console.log(r[0])
  53. if (r[0].length === 40) {
  54. e.style.color = "red"
  55. e.innerText = e.innerText.replace(r[0],bjx2mag(r[0]))
  56. } else {
  57. e.style.color = "yellowgreen"
  58. e.innerText = e.innerText.replace(r[0],bjx2mag(r[0]))
  59. }
  60. })
  61.  
  62. }
  63. if (youtubePattern.test(str)) {
  64. const videoId = str.split('?v=')[1];
  65. const aTag = document.createElement('a');
  66. aTag.href = `https://www.youtube.com/watch?v=${videoId}`;
  67. aTag.innerText = "油管链接";
  68. e.appendChild(aTag);
  69. }
  70.  
  71. })
  72.  
  73. function bjx2mag(bjx) {
  74. let str = bjx.replace(/^\s\s*/, '').replace(/\s\s*$/, '').split("");
  75. let c = ""
  76. if (str.length === 40) {
  77. c = "magnet:?xt=urn:btih:"
  78. for (let i of str) {
  79. c += obja[i]
  80. }
  81. } else {
  82. for (let i of str) {
  83. c += obja[i]
  84. }
  85. }
  86.  
  87. return c
  88. }
  89.  
  90. })();