Edenya-Script

Addon Edenya

当前为 2017-03-14 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Edenya-Script
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.100012
  5. // @description Addon Edenya
  6. // @author Valkazaar
  7. // @match http://www.edenya.net/_vahal/*
  8. // @grant none
  9. // @include http://www.edenya.net/_vahal/*
  10. // @include https://www.edenya.net/_vahal/*
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. 'use strict';
  15. // Vérification de la présence de la variable localStorage EdenyaColor
  16. // et instanciation de base si nécessaire
  17. var localColor = localStorage.getItem('EdenyaColor');
  18. if (localColor === null) {
  19. localColor = {};
  20. localColor.cadre2 = '#dda0dd';
  21. localColor.ligneA = '#000000';
  22. localColor.dialogue = '#ffffff';
  23. localColor.narration = '#ffd700';
  24. localColor.cri = '#9acd32';
  25. localColor.hj = '#FFDAB9';
  26. localColor.BlackDate = '#B09070';
  27. localStorage.setItem('EdenyaColor', JSON.stringify(localColor));
  28. localColor = localStorage.getItem('EdenyaColor');
  29. }
  30.  
  31. var localColorParsed = JSON.parse(localColor);
  32. if (localColorParsed.BlackDate === undefined) {
  33. localColorParsed.BlackDate = '#B09070';
  34. localStorage.setItem('EdenyaColor', JSON.stringify(localColorParsed));
  35. }
  36.  
  37. // Remplacement des dates écrites en noir dans les forums.
  38. var x = document.getElementsByTagName("font");
  39. for (var i = 0; i < x.length; i++) {
  40. if (x[i].getAttribute('color') !== null) {
  41. x[i].setAttribute('color', (x[i].getAttribute('color')).replace('#000000', localColorParsed.BlackDate));
  42. x[i].setAttribute('color', (x[i].getAttribute('color')).replace('\\"', ''));
  43. x[i].setAttribute('color', (x[i].getAttribute('color')).replace('\\"', ''));
  44. }
  45. }
  46.  
  47. // Colorisation des éléments
  48. for (var item in localColorParsed) {
  49. x = document.getElementsByClassName(item);
  50. for (var j = 0; j < x.length; j++) {
  51. x[j].style.color = localColorParsed[item];
  52. }
  53. }
  54.  
  55. if (window.location.pathname == "/_vahal/index.php"){
  56. // Positionnement sur la colone de gauche pour y ajouter les éléments (raccourcis et gestion des couleurs)
  57. x = document.querySelector(".menu");
  58. if (x !== null) {
  59. var divScript = document.createElement("div");
  60. var localShortcut = localStorage.getItem('EdenyaShortcut');
  61. if (localShortcut === null) {
  62. var shortcut = { 'accueil': 'https://www.edenya.net/_vahal/' };
  63. localStorage.setItem('EdenyaShortcut', JSON.stringify(shortcut));
  64. localShortcut = localStorage.getItem('EdenyaShortcut');
  65. }
  66. var localShortcutParsed = JSON.parse(localShortcut);
  67.  
  68. var titre = document.createElement("p");
  69. var linkToAdd = document.createElement("span");
  70.  
  71. linkToAdd.innerHTML = "<a href='#'> Ajouter </a>";
  72. linkToAdd.setAttribute("onclick", "var nom=prompt('Nom du shortcut ?');if (nom!==null){var z = localStorage.getItem('EdenyaShortcut');z = JSON.parse(z);z[nom]=document.URL;localStorage.setItem('EdenyaShortcut',JSON.stringify(z));location.href = location.href;}");
  73. titre.innerText = "Raccourcis : ";
  74. titre.appendChild(linkToAdd);
  75. divScript.appendChild(titre);
  76. for (item in localShortcutParsed) {
  77. var linkToDelete = document.createElement("img");
  78. linkToDelete.setAttribute('src', '../images/bad.gif');
  79. linkToDelete.setAttribute('onclick', 'var z = localStorage.getItem("EdenyaShortcut");z = JSON.parse(z);delete z["' + item + '"];localStorage.setItem("EdenyaShortcut",JSON.stringify(z));location.href = location.href;');
  80. var ligneShortcut = document.createElement("span");
  81. ligneShortcut.setAttribute('style', 'display:block;');
  82. var linkShortcut = document.createElement("a");
  83. linkShortcut.setAttribute('href', localShortcutParsed[item]);
  84. linkShortcut.innerText = item + " ";
  85. ligneShortcut.appendChild(linkShortcut);
  86. ligneShortcut.appendChild(linkToDelete);
  87. divScript.appendChild(ligneShortcut);
  88. }
  89. divScript.className = "cadre";
  90. divScript.style = "width:200";
  91. x.appendChild(divScript);
  92. titre = document.createElement("p");
  93. titre.innerText = "Couleurs utilisées :";
  94. divScript.appendChild(titre);
  95.  
  96. var localTips = localStorage.getItem('EdenyaTips');
  97. if (localTips === null) {
  98. localTips = {};
  99. localTips.cadre2 = "Couleur générale titre, panneau PJ,...";
  100. localTips.ligneA = "Couleur texte hors balises RP";
  101. localTips.dialogue = "Texte d'un dialogue";
  102. localTips.narration = "Texte de narration";
  103. localTips.cri = "Texte crié";
  104. localTips.hj = "descriptions HJ";
  105. localTips.BlackDate = "couleur des dates dans les forums";
  106. localStorage.setItem('EdenyaTips', JSON.stringify(localTips));
  107. localTips = localStorage.getItem('EdenyaTips');
  108. }
  109. var localTipsParsed = JSON.parse(localTips);
  110.  
  111. for (item in localColorParsed) {
  112. var inputColor = document.createElement("input");
  113. inputColor.setAttribute("id", item);
  114. inputColor.setAttribute("type", "color");
  115. inputColor.setAttribute("class", "bouton");
  116. inputColor.setAttribute("value", localColorParsed[item]);
  117. inputColor.setAttribute("style", "width:25;padding:0");
  118. inputColor.setAttribute("onChange", "var z = localStorage.getItem('EdenyaColor');z = JSON.parse(z);z['" + inputColor.getAttribute("id") + "'] = document.getElementById('" + inputColor.getAttribute("id") + "').value; localStorage.setItem('EdenyaColor',JSON.stringify(z));location.href = location.href;");
  119. inputColor.setAttribute("onMouseOver", "ShowHelpTab('<b>Usage :</b><br>"+localTipsParsed[item]+"')");
  120. inputColor.setAttribute("onMouseOut", "HideHelp()");
  121. inputColor.title = localTipsParsed[item];
  122. divScript.appendChild(inputColor);
  123. }
  124. }
  125. }
  126. if (window.location.pathname == "/_vahal/vide.php" && ((document.getElementsByClassName("titre"))[0]).innerText == "Nouveau message"){
  127. var boutonSubmit = document.getElementsByName('Submit')[0];
  128. var pParent = boutonSubmit.parentElement;
  129. //boutonSubmit.disabled = true;
  130. var boutonPreview = document.createElement('button');
  131. boutonPreview.innerText = "Prévisualiser";
  132. boutonPreview.className = "bouton";
  133. boutonPreview.setAttribute("type", "button");
  134. pParent.appendChild(boutonPreview);
  135. var toAddTextarea = (document.getElementsByName('message')[0]).parentElement;
  136. var lineToDivide = document.createElement('hr');
  137. toAddTextarea.appendChild(lineToDivide);
  138. var elementToAdd = document.createElement('div');
  139. elementToAdd.setAttribute('id','previewText');
  140. elementToAdd.setAttribute("style","text-align:left;");
  141. toAddTextarea.appendChild(elementToAdd);
  142. boutonPreview.setAttribute("onclick","(document.getElementsByName('Submit')[0]).disabled = false;var initial_texte = ((document.getElementsByName('message'))[0]).value;var regexpOpen = /\\[(narration|dialogue|cri|hj|ecriture)\\]/g;var regexpClose = /\\[\\/(narration|dialogue|cri|hj|ecriture)\\]/g;var previsu_texte = initial_texte.replace(regexpOpen, '<span class=\\'$1\\'>');previsu_texte = previsu_texte.replace(regexpClose, '</span><!--$1-->');var regexpImg = /\\[img\\]([^\\[]*)\\[\\/img\\]/g;previsu_texte = previsu_texte.replace(regexpImg, '<img src=\\'$1\\' border=\\'0\\'\\/>');previsu_texte = previsu_texte.replace(/\\n/g, '<'+'br/>');document.getElementById('previewText').innerHTML = previsu_texte;");
  143. // boutonPreview.setAttribute("onclick","(var initial_texte = ((document.getElementsByName('message'))[0]).value;var regexpOpen = /\\[(narration|dialogue|cri|hj|ecriture)\\]/g;var regexpClose = /\\[\\/(narration|dialogue|cri|hj|ecriture)\\]/g;var previsu_texte = initial_texte.replace(regexpOpen, '<span class=\\'$1\\'>');previsu_texte = previsu_texte.replace(regexpClose, '</span><!--$1-->');var regexpImg = /\\[img\\]([^\\[]*)\\[\\/img\\]/g;previsu_texte = previsu_texte.replace(regexpImg, '<img src=\\'$1\\' border=\\'0\\'\\/>');previsu_texte = previsu_texte.replace(/\\n/g, '<'+'br/>');document.getElementById('previewText').innerHTML = previsu_texte;");
  144. }
  145. })();