no * anywhere

none

目前为 2025-03-28 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name no * anywhere
  3. // @version 10
  4. // @description none
  5. // @run-at document-start
  6. // @author rssaromeo
  7. // @include *://scribblehub.com/*
  8. // @include *://*.scribblehub.com/*
  9. // @include *://novelupdates.com/*
  10. // @include *://*.novelupdates.com/*
  11. // @exclude /^[^:/#?]*:\/\/([^#?/]*\.)?scratch\.mit\.edu(:[0-9]{1,5})?\/editor.*$/
  12. // @exclude *://*/*.mjs
  13. // @exclude *://*/*.js
  14. // @exclude *://*/*.css
  15. // @exclude /^https?:\/\/[^\/]*livereload.net\/files\/ffopen\/index\.html$/
  16. // @exclude /^https?:\/\/[^\/]*stackblitz.com/
  17. // @exclude /^https?:\/\/[^\/]*webcontainer.io/
  18. // @exclude /^https?:\/\/[^\/]*regexr.com/
  19. // @exclude /^https?:\/\/[^\/]*regex101.com/
  20. // @license GPLv3
  21. // @exclude /greasyfork\.org\/.*\/versions/
  22. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAHJQTFRFAAAAEIijAo2yAI60BYyuF4WaFIifAY6zBI2wB4usGIaZEYigIoiZCIyrE4igG4iYD4mjEomhFoedCoqpDIqnDomlBYyvE4efEYmiDYqlA42xBoytD4mkCYqqGYSUFYidC4qoC4upAo6yCoupDYqmCYur4zowOQAAACZ0Uk5TAO////9vr////1+/D/+/L+/Pf/////+f3///////H4////////+5G91rAAACgUlEQVR4nM2Y22KjIBCGidg1264liZqDadK03X3/V2wNKHMC7MpF/xthHD5mgERAqZhWhfYqH6K+Qf2qNNf625hCoFj9/gblMUi5q5jLkXLCKudgyiRm0FMK82cWJp1fLbV5VmvJbCIc0GCYaFqqlDJgADdBjncqAXYobm1xh72aFMflbysteFfdy2Yi1XGOm5HGBzQ1dq7TzEoxjeNTjQZb7VA3e1c7+ImgasAgQ9+xusNVNZIo5xmOMgihIS2PbCQIiHEUdTvhxCcS/kPomfFI2zHy2PkWmA6aNatIJpKFJyekyy02xh5Y3DI9T4aOT6VhIUrsNTFp1pf79Z4SIIVDegl6IJO6cHiL/GimIZDhgTu/BlYWCQzHMl0zBWT/T3KAhtxOuUB9FtBrpsz0RV4xsjHmW+UCaffcSy/5viMGer0/6HdFNMZBq/vjJL38H9Dqx4Fuy0Em12DbZy+9pGtiDijbglwAehyj11n0tRD3WUBm+lwulE/8h4BuA+iWAQQnteg2Xm63WQLTpnMnpjdge0Mgu/GRPsV4xdjQ94Lfi624fabhDkfUqIKNrM64Q837v8yL0prasepCgrtvw1sJpoqanGEX7b5mQboNW8eawXaWXTMfMGxub472hzWzHSn6Sg2G9+6TAyRruE71s+zAzjWaknoyJCQzwxrghH2k5FDT4eqWunuNxyN9QCGcxVod5oADbYnIUkDTGZEf1xDJnSFteQ3KdsT8zYDMQXcHxsevcLH1TrsABzkNPyA/L7b0jg704viMMlpQI96WsHknCt/3YH0kOEo9zcGkwrFK39ck72rmoehmKqo2RKlilzSy/nJKEV45CT38myJp456fezktHjN5aeMAAAAASUVORK5CYII=
  23. // @grant none
  24. // @namespace https://greasyfork.org/users/1184528
  25. // ==/UserScript==
  26.  
  27. // @match *://*/*
  28. // @include *
  29.  
  30.  
  31. var replace = `fuck
  32. pornstar
  33. sucked
  34. bisexual
  35. cumdump
  36. vagina
  37. crap
  38. shitload
  39. shithole
  40. stupidness
  41. fuckery
  42. retardation
  43. horshit
  44. smut
  45. bitching
  46. stupids
  47. bumfucks
  48. bumblefuck
  49. fuckin
  50. fucktard
  51. licked
  52. crotch
  53. hitler
  54. crotchless
  55. incestuous
  56. batshit
  57. penis
  58. masturbate
  59. Goddamn
  60. enslave
  61. slavery
  62. socked
  63. enslavement
  64. murderess
  65. molest
  66. molestation
  67. dicks
  68. cockblock
  69. scrape
  70. perverts
  71. cock
  72. stupidest
  73. boobs
  74. stupidity
  75. slavery
  76. sadist
  77. stupid
  78. trashest
  79. fag
  80. bitchybitchy
  81. erotic
  82. cockroach
  83. tits
  84. murdering
  85. bitchy
  86. trashing
  87. trashiest
  88. bullshitting
  89. cocky
  90. cockiness
  91. murderous
  92. Hancock
  93. trashy
  94. trashcan
  95. horny
  96. suicide
  97. retard
  98. clicked
  99. incestual
  100. basement
  101. rapes
  102. thorny
  103. fucks
  104. virgin
  105. murderers
  106. murderer
  107. murder
  108. virgins
  109. assholes
  110. rapest
  111. whore
  112. slut
  113. bitchest
  114. raped
  115. morons
  116. amusement
  117. cocks
  118. incest
  119. fingerfuck
  120. molested
  121. murders
  122. trash
  123. cockroaches
  124. monsterfucker
  125. intersex
  126. Futanari
  127. trashhero
  128. fucked
  129. motherfucker
  130. bitches
  131. bastard
  132. fucking
  133. hell
  134. nasty
  135. scum
  136. pissed
  137. bastards
  138. raping
  139. bitch
  140. shit
  141. bitch
  142. bastard
  143. fucker
  144. bitch
  145. scumbag
  146. shitless
  147. ass
  148. badass
  149. shit
  150. virginity
  151. slave
  152. pervert
  153. futanari
  154. sex
  155. futa
  156. Impregnating
  157. Impregnated
  158. trashes
  159. murderfest
  160. Impregnate
  161. rapey
  162. retards
  163. fuckk
  164. Cunnilingus
  165. slaves
  166. sexual
  167. edgefuckfests
  168. anal
  169. stupider
  170. assed
  171. Intercourse
  172. Fallatio
  173. Handjob
  174. Masturbation
  175. Masturbating
  176. Orgy
  177. Prostitutes
  178. rape
  179. enslaved
  180. perverted
  181. stupidly
  182. prostitution
  183. sexually
  184. bullshits
  185. shits
  186. porn
  187. dick
  188. shitty
  189. dicking
  190. bullshit
  191. sexuality
  192. retardedness
  193. Futadomworld
  194. asshole
  195. pussy
  196. sexy
  197. murdered
  198. cocktail
  199. trAshed
  200. virginal
  201. retarded
  202. hentai
  203. dogshit
  204. fricking
  205. frick
  206. fricker
  207. webtoon`
  208. .toLowerCase()
  209. .split("\n")
  210. .map((a) => [
  211. new RegExp(
  212. `(?<=[^a-z0-9@#$%^&\\*x♥]|^)${a
  213. .split("")
  214. .map((e) => `[${e}%#*♥]`)
  215. .join(" ?")}(?=[^a-z0-9@#$%^&\\*x♥]|$)`,
  216. "ig"
  217. ),
  218. `${a}`,
  219. ])
  220.  
  221. const replacementLookup = Object.fromEntries(
  222. replace.map(([regex, replacement]) => [regex.source, replacement])
  223. )
  224. const combinedRegex = new RegExp(
  225. replace.map(([regex]) => `(${regex.source})`).join("|"),
  226. "gi"
  227. )
  228. //log(combinedRegex)
  229. replace = []
  230. //replace.push([/([a-z]+)\.([a-z]+)\.(?:([a-z]+)\.)?(?:([a-z]+)\.)?(?:([a-z]+)\.)?(?:([a-z]+)\.)?(?:([a-z]+)\.)?([a-z]+)/gi, "$1$2$3$4$5$6$7$8"])
  231. replace.push([/(?<=^|[^\d\w])\*(\w+( \w+)*)\*(?=[^\w\d]|$)/gi, "$1"])
  232. replace.push([/what( ?ever)? the duck/gi, "what$1 the fuck"])
  233. replace.push([/duck(ed)? up/gi, "fuck$1 up"])
  234. replace.push([/R4P3/gi, "rape"])
  235. // replace.push([/(?<!\w)minf\*+k(s|(?:ed|er|ing)(?:s)?|)(?!\w)/gi, "mindfuck$1"]) - broken???
  236. replace.push([/(?<!\w)minf\*+ks(?!\w)/gi, "mindfucks"])
  237. replace.push([/(?<!\w)asspull(?!\w)/gi, "asshole"])
  238. replace.push([/\bfriggin\b/gi, "fucking"])
  239. replace.push([/(?<!\w)fupping(?!\w)/gi, "fucking"])
  240. replace.push([/.*░.*/gi, ""])
  241. replace.push([/.*THIS IS BOB.*/gi, ""])
  242. replace.push([/F\**CK/gi, "fuck"])
  243. replace.push([/.*\@\#\$\&.*/gi, ""])
  244. replace.push([/(?<!\w)friking?(?!\w)/gi, "fucking"])
  245. replace.push([/(?<!\w)shyt(?!\w)/gi, "shit"])
  246. replace.push([/(?<!\w)arse?(?!\w)/gi, "ass"])
  247. replace.push([/f\*ing(?!\w)/gi, "fucking"])
  248. replace.push([/motherf\*(?!\w)/gi, "motherfucker"])
  249. replace.push([/b\*\*\*/gi, "bitch"])
  250. replace.push([
  251. /(?<=[^a-z0-9@#$%^&\*x♥]|^)[h%#*♥] ?[e%#*♥] ?[c%#*♥] ?[k%#*♥](?=[^a-z0-9@#$%^&\*x♥]|$)/gi,
  252. "hell",
  253. ])
  254. replace.push([/(?<!\w)prosti\*ion(?!\w)/gi, "prostitution"])
  255. replace.push([/(?<!\w)Ayaponzu\*(?!\w)/gi, "Ayaponzu"])
  256. replace.push([/(?<!\w)DECO\*27(?=[^\w\d]|$)/gi, "DECO27"])
  257. replace.push([/(?<!\w)freakin'?(?!\w)/gi, "fucking"])
  258. replace.push([/(?<!\w)(?:pron|p0rn)(?!\w)/gi, "porn"])
  259. replace.push([/(?<!\w)fricking(?!\w)/gi, "fucking"])
  260. replace.push([/(?<!\w)frick(?!\w)/gi, "fuck"])
  261. replace.push([/(?<!\w)fricker(?!\w)/gi, "fucker"])
  262.  
  263. function replaceText(text) {
  264. text = text.replace(combinedRegex, (match) => {
  265. for (const [source, replacement] of Object.entries(
  266. replacementLookup
  267. )) {
  268. if (new RegExp(source, "i").test(match)) {
  269. return replacement
  270. }
  271. }
  272. return match // Fallback if no replacement found
  273. })
  274. for (var r of replace) {
  275. text = text.replace(r[0], r[1])
  276. }
  277. return text
  278. }
  279. const observer = new MutationObserver(updateTitle)
  280. window.navigation.addEventListener("navigate", updateTitle)
  281. function updateTitle() {
  282. off()
  283. var t = document.title
  284. t = t.replace(/(^| )\[URL\] .*/gi, "")
  285. if (t!=replaceText(t))
  286. document.title=replaceText(t)
  287. on()
  288. }
  289. reload()
  290. document.addEventListener("DOMContentLoaded", reload)
  291. function reload() {
  292. try {
  293. updateTitle()
  294. } catch (e) {}
  295. }
  296. function off(){
  297. observer.disconnect()
  298. }
  299. function on(){
  300. observer.observe(document.querySelector("title")||(document.head.appendChild(document.createElement("title"))), {
  301. childList: true,
  302. })
  303. }
  304. setTimeout(reload, 1000)
  305. loadlib("textjack")(replaceText)