Skwikker

Mise en forme automatique de Skwikker

当前为 2017-05-31 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Skwikker
  3. // @version 0.1337
  4. // @description Mise en forme automatique de Skwikker
  5. // @author MockingJay
  6. // @match https://www.dreadcast.eu/Forum*
  7. // @grant GM_setValue
  8. // @grant GM_getValue
  9. // @grant GM_deleteValue
  10. // @grant GM_listValues
  11. // @namespace https://greasyfork.org/users/30975
  12. // ==/UserScript==
  13.  
  14. //Lit les variables dans GM à la demande. A utiliser pour chaque déclaration de variable qui est copiée en mémoire.
  15. //initValue: Valeur par défaut de la variable, qu'on lui donne à la déclaration et qu'elle garde si pas d'équivalent en mémoire. localVarName: Valeur GM locale.
  16. function initLocalMemory(defaultValue, localVarName) {
  17. if (GM_getValue(localVarName) === undefined) {
  18. GM_setValue(localVarName, defaultValue);
  19. return defaultValue;
  20. } else {
  21. return GM_getValue(localVarName);
  22. }
  23. }
  24.  
  25. function rgb2hex(orig) {
  26. var rgb = orig.replace(/\s/g,'').match(/^rgba?\((\d+),(\d+),(\d+)/i);
  27. return (rgb && rgb.length === 4) ? "#" +
  28. ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
  29. ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
  30. ("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : orig;
  31. }
  32.  
  33. var userPseudo = initLocalMemory("", "sk_userPseudo");
  34. var userId = initLocalMemory("", "sk_userId");
  35. var userLink = initLocalMemory("", "sk_userLink");
  36. var lastSkNum = initLocalMemory("000", "sk_lastSkNum");
  37.  
  38. var $skBox = $(`
  39. <div id="sk_box" style="display: none; position: fixed; top: 100px; left: 20px; background: aliceblue; border: skyblue 2px solid; padding: 5px; z-index: 99999999999999">
  40. <div id="sk_title" style="width: 380px;height: 20px;">
  41. <h3 style="display: inline; position: absolute;">Skwikker</h3>
  42. <input id="sk_close" type="button" value="X" style="display: inline; right: 0px; position: absolute;" onclick="$('#sk_box').fadeOut()">
  43. </div>
  44. <br/>
  45. <div id="sk_content" style="width: 380px; padding-left: 5px">
  46. <p>Pseudo:</p><input type="text" id="sk_pseudo" class="sk_field">
  47. <p>@ID:</p><input type="text" id="sk_id" class="sk_field">
  48. <p>Lien EDC:</p><input type="text" id="sk_link" class="sk_field">
  49. <p>Date:</p><input type="text" id="sk_date" class="sk_field" value="x/xxx.x">
  50. <p>N° Skwik:</p><input type="text" id="sk_n" class="sk_field" value="000">
  51. <p>Message:</p><textarea id="sk_message" class="sk_field" maxlength="200" style="background: url(&quot;../../../../images/fr/design/forum/fond_message_repeat_x_2.jpg&quot;) repeat-x rgb(233, 233, 233); height: 60px;"></textarea>
  52. <p>Hashtags:</p><input type="text" id="sk_hash" class="sk_field">
  53. <br/>
  54. <div style="text-align: center"><input type="button" id="sk_send" value="Envoyer!"></div>
  55. </div>
  56. </div>
  57. `);
  58.  
  59. var forumTemplate = `[quote][taille=4][b]{#PSEUDO#}[/b] [lien={#LIEN#}][c=A0A0A0]@{#ID#}[/c][/lien][c=A0A0A0] · {#DATE#} · #{#NUM#}[/c][/taille]
  60. {#TEXT#}
  61. [c=bleu]{#HASH#}[/c]
  62.  
  63. [taille=4][c=A0A0A0][b][lien=#new_comment][c=vert]➦[/c][/lien][/b] 0 [invisible] ····· [/invisible] [b][lien=#give_star][c=rouge]❤[/c][/lien][/b] 0 [invisible] ····· [/invisible] [b][c=noir]♺[/c][/b] 0[/c][/taille][/quote]`;
  64.  
  65. $(document).ready(function() {
  66.  
  67. $("body").append($skBox);
  68. $(".sk_field").css({
  69. width: "360px",
  70. padding: "2px 5px",
  71. color: "black",
  72. "margin-bottom": "5px"
  73. });
  74. $("#sk_pseudo").val(userPseudo).change(function() {
  75. userPseudo = $(this).val();
  76. GM_setValue("sk_userPseudo", userPseudo);
  77. });
  78. $("#sk_id").val(userId).change(function() {
  79. userId = $(this).val();
  80. GM_setValue("sk_userId", userId);
  81. });
  82. $("#sk_link").val(userLink).change(function() {
  83. userLink = $(this).val();
  84. GM_setValue("sk_userLink", userLink);
  85. });
  86. $("#sk_n").val(lastSkNum).change(function() {
  87. lastSkNum = $(this).val();
  88. GM_setValue("sk_lastSkNum", lastSkNum);
  89. });
  90. var $skButton = $('<div style="position: absolute;bottom: 0px;right: 0px" class="bouton">Skwikker</div>');
  91. $("#zone_reponse").append($skButton);
  92. $skButton.click(function(){
  93. $('#sk_box').fadeIn();
  94. });
  95. $("#sk_send").click(function() {
  96. $("#zone_reponse_text").val(forumTemplate.replace("{#PSEUDO#}", $("#sk_pseudo").val()).replace("{#LIEN#}", $("#sk_link").val()).replace("{#ID#}", $("#sk_id").val())
  97. .replace("{#DATE#}", $("#sk_date").val()).replace("{#NUM#}", $("#sk_n").val()).replace("{#TEXT#}", $("#sk_message").val()).replace("{#HASH#}", $("#sk_hash").val()));
  98. });
  99.  
  100. });