Материализатор


/ Published in: JavaScript
Save to your folder(s)

Скрипт "Материализатор", снабжающий сочным подтекстом любой текст. Выкладываю здесь, поскольку ссылки на [оригинальном сайте](http://lleo.me/dnevnik/2007/05/07.html) не работают. Подключается в браузер как юзер-скрипт.


Copy this code and paste it in your HTML
  1. // ==UserScript==
  2. // @name mat
  3. // @namespace none
  4. // @description mat
  5. // @include *
  6. // @version 1.3
  7. // @homepage http://lleo.aha.ru/mat/
  8. //
  9. // (c) killerstorm, lleo
  10.  
  11.  
  12. (function() {
  13.  
  14. var words =
  15. [' \u043a\u0440\u0430\u0441\u0430\u0432\u0447\u0435\u0433 \u043d\u0430\u0445',
  16. ', \u0441\u0443\u043a\u0430 \u0434\u0440\u0430\u043d\u043d\u0430\u044f',
  17. ', \u043f\u0438\u0437\u0434\u0435\u0446',
  18. ', \u0435\u0431\u0430\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0445\u0443\u044f\u043c',
  19. ', \u043e\u0431\u043e\u0441\u0440\u0430\u0442\u044c\u0441\u044f',
  20. ', \u044f \u0435\u0431\u0443',
  21. ', \u0435\u0431\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u0440\u0430\u0441\u044c',
  22. ', \u0436\u043e\u043f\u0430 \u0441\u0440\u0430\u043d\u0430\u044f',
  23. ' \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0438\u0437\u0434\u0435\u0446',
  24. ', \u0437\u0430\u043b\u0443\u043f\u0430 \u0441 \u0443\u0448\u0430\u043c\u0438',
  25. ' \u0441\u0443\u043a\u0430 \u043d\u0430\u0445',
  26. ' \u043d\u0430\u0445\u0443\u0439',
  27. ', \u0431\u043b\u044f\u0434\u0441\u043a\u0430\u044f \u043f\u0430\u0440\u0430\u0448\u0430',
  28. ', \u0431\u043b\u044f',
  29. ' \u043d\u0430 \u0445\u0443\u0439',
  30. ' \u043d\u0430 \u0445\u0443\u0439',
  31. ' \u043d\u0430 \u0445\u0443\u0439',
  32. ' \u043d\u0430 \u0445\u0443\u0439',
  33. ' \u043d\u0430 \u0445\u0443\u0439',
  34. ' \u043d\u0430 \u0445\u0443\u0439',
  35. ' \u0432 \u043f\u0438\u0437\u0434\u0443',
  36. ' \u0432 \u043f\u0438\u0437\u0434\u0443',
  37. ' \u0432 \u043f\u0438\u0437\u0434\u0443',
  38. ' \u0432 \u043f\u0438\u0437\u0434\u0443',
  39. ' \u0432 \u043f\u0438\u0437\u0434\u0443',
  40. ' \u0434\u043e \u043f\u0438\u0437\u0434\u044b',
  41. ' \u0434\u043e \u043f\u0438\u0437\u0434\u044b',
  42. ' \u0434\u043e \u043f\u0438\u0437\u0434\u044b',
  43. ' \u0435\u0431\u0430\u043d\u044b\u0439 \u0432 \u0440\u043e\u0442',
  44. ' \u0435\u0431\u0430\u043d\u044b\u0439 \u0432 \u0440\u043e\u0442',
  45. ', \u0435\u0431 \u0442\u0432\u043e\u044e \u043c\u0430\u0442\u044c',
  46. ' \u043f\u0438\u0437\u0434\u0435\u0446 \u043d\u0430 \u0445\u0443\u0439',
  47. ', \u043d\u0443 \u0445\u0443\u0439\u043b\u0438',
  48. ' \u0432 \u0436\u043e\u043f\u0443',
  49. ' \u0432 \u0436\u043e\u043f\u0443',
  50. ' \u0432 \u0436\u043e\u043f\u0443',
  51. ' \u0432 \u0436\u043e\u043f\u0443',
  52. ', \u0431\u043b\u044f\u0434\u044c',
  53. ', \u0431\u043b\u044f\u0434\u044c',
  54. ', \u0431\u043b\u044f\u0434\u044c',
  55. ' \u0431\u043b\u044f\u0434\u044c',
  56. ' \u0431\u043b\u044f\u0434\u044c',
  57. ' \u0431\u043b\u044f\u0434\u044c',
  58. ', \u0431\u043b\u044f\u0434\u044c',
  59. ', \u0445\u0443\u044f\u043a \u0437\u043d\u0430\u0447\u0438\u0442',
  60. ' \u043d\u0435\u0445\u0443\u0435\u0432\u043e \u0442\u0430\u043a',
  61. ', \u043a\u043e\u0440\u043e\u0447\u0435',
  62. ', \u043d\u0443 \u0442\u0438\u043f\u0430',
  63. ' \u0432 \u043d\u0430\u0442\u0443\u0440\u0435',
  64. ' \u0431\u0435\u0437 \u0431\u0430\u0437\u0430\u0440\u0430',
  65. ', \u0441 \u043f\u043e\u043d\u0442\u043e\u043c \u0434\u0435\u043b\u0430',
  66. ', \u0437\u043d\u0430\u0447\u0438\u0442',
  67. ', \u0443\u0441\u0441\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e',
  68. ', \u0443\u0441\u0440\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e',
  69. ', \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u043e\u0441\u0440\u0430\u0442\u044c\u0441\u044f',
  70. ', \u044f \u0445\u0443\u0435\u044e',
  71. ', \u044f \u043e\u0445\u0443\u0435\u0432\u0430\u044e',
  72. ' \u043a \u0445\u0443\u044f\u043c',
  73. ' \u043a \u0435\u0431\u0435\u043d\u044f\u043c',
  74. ', \u0435\u0431\u0438 \u043c\u0430\u0442\u044c',
  75. ', \u0435\u0431\u0430\u043d\u0443\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e',
  76. ', \u043f\u0438\u0434\u043e\u0440\u044b \u0435\u0431\u0443\u0447\u0438\u0435',
  77. ', \u0441\u0443\u0447\u044c\u0435 \u0432\u044b\u043c\u044f',
  78. ', \u0441\u0443\u0447\u044c\u0435 \u043f\u043b\u0435\u043c\u044f',
  79. ' \u0431\u0435\u0437 \u043f\u0438\u0437\u0434\u044b',
  80. ', \u0432 \u0433\u043e\u0432\u043d\u0435 \u043f\u043e \u0443\u0448\u0438',
  81. ', \u0437\u0430\u043b\u0443\u043f\u0430 \u043a\u043e\u043d\u0441\u043a\u0430\u044f',
  82. ', \u0441\u0443\u043a\u0438\u043d\u044b \u0434\u0435\u0442\u0438',
  83. ', \u043c\u0430\u0442\u0435\u0440\u044c \u0431\u043e\u0436\u044c\u044f',
  84. ', \u0434\u0435\u0440\u044c\u043c\u043e \u0441\u043e\u0431\u0430\u0447\u044c\u0435',
  85. ', \u043a\u0430\u043a \u0445\u0443\u0439 \u043c\u043e\u0440\u0436\u043e\u0432\u044b\u0439',
  86. ', \u0435\u0431\u0430\u043d\u044b\u0439 \u0441\u0432\u0435\u0442',
  87. ', \u0447\u0442\u043e\u0431 \u043d\u0435 \u043f\u0438\u0437\u0434\u0438\u0442\u044c',
  88. ', \u0431\u043b\u044f \u0431\u0443\u0434\u0443',
  89. ', \u0447\u0442\u043e\u0431 \u043c\u043d\u0435 \u0441\u0434\u043e\u0445\u043d\u0443\u0442\u044c',
  90. ', \u0431\u043b\u044f\u0434\u0441\u043a\u0430\u044f \u043f\u0430\u0440\u0430\u0448\u0430',
  91. ' \u0437\u0430\u0435\u0431\u0438\u0441\u044c \u043d\u0430 \u0445\u0443\u0439',
  92. ', \u043f\u0438\u0437\u0434\u0435\u0446 \u0431\u043b\u044f',
  93. ', \u0445\u0443\u0439\u043b\u043e \u0437\u0430\u043c\u043e\u0440\u0441\u043a\u043e\u0435',
  94. ', \u0435\u0431\u0430\u043b\u043e \u0431\u043b\u044f\u0434\u0441\u043a\u043e\u0435',
  95. ' \u0433\u043e\u0432\u043d\u0430 \u043a\u0443\u0441\u043e\u043a',
  96. ', \u0437\u0430\u043b\u0443\u043f\u0430 \u0441 \u0443\u0448\u0430\u043c\u0438',
  97. ', \u043f\u0438\u0437\u0434\u0430 \u0441 \u0443\u0448\u0430\u043c\u0438',
  98. ' \u0436\u043e\u043f\u0430 \u0441\u0440\u0430\u043d\u043d\u0430\u044f',
  99. ', \u0440\u0430\u0437\u0431\u0435\u0440\u0438 \u0442\u0435\u0431\u044f \u043f\u043e\u043d\u043e\u0441',
  100. ', \u0435\u0431\u0430\u0442\u044c \u043c\u043e\u0438 \u043c\u043e\u0437\u0433\u0438, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044b',
  101. ', \u0435\u0431\u0438\u0441\u044c \u043e\u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u043a\u043e\u043c',
  102. ', \u0436\u043e\u043f\u0430 \u0432\u043e\u043b\u043e\u0441\u0430\u0442\u0430\u044f',
  103. ', \u043c\u0443\u0434\u0438\u043b\u0430 \u0433\u0440\u0435\u0448\u043d\u0430\u044f',
  104. ', \u043c\u0443\u0434\u0438\u043b\u0430 \u0433\u0440\u0435\u0448\u043d\u0430\u044f',
  105. ', \u043c\u0443\u0434\u0438\u043b\u0430 \u0433\u0440\u0435\u0448\u043d\u0430\u044f'];
  106.  
  107.  
  108. function pickRandomWord() {
  109. return words[Math.floor(Math.random() * words.length)];
  110. }
  111.  
  112. function replacer (m, m1, m2) {
  113. if (Math.random() > 0.5) {
  114. return m1 + pickRandomWord() + m2;
  115. } else return m;
  116. }
  117.  
  118. var substRegex = /([\u0410-\u042f\u0430-\u044f]\s*)([.,?!\)]+)/gi;
  119.  
  120. function xform(s) { return s.replace(substRegex, replacer); }
  121.  
  122. // replace in title
  123. if(document.title) document.title = xform(document.title);
  124.  
  125. // replace in body text
  126. if (document.evaluate) {
  127. //with XPath support
  128. var textnodes = document.evaluate( "//body//text()", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  129. for (var i = 0; i < textnodes.snapshotLength; i++) {
  130. node = textnodes.snapshotItem(i);
  131. node.data = xform(node.data);
  132. }
  133. } else {
  134. // no XPath -- do recursive
  135. function processNode(node) {
  136. // is this a text node?
  137. if (node.nodeType == 3) {
  138. node.data = xform(node.data);
  139. } else if (node.nodeType == 1) {
  140. var i;
  141. for (i = 0; i < node.childNodes.length; i++) {
  142. processNode(node.childNodes[i]);
  143. }
  144. }
  145. }
  146. processNode(document.body);
  147. }
  148.  
  149. })();

URL: http://lleo.me/dnevnik/2007/05/07.html

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.