hwm_tavern_new_game

Создание заявки в таверне в один клик

当前为 2015-11-02 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name hwm_tavern_new_game
  3. // @author Pahan https://greasyfork.org/uk/users/18377-pahan
  4. // @namespace hwm_pahan
  5. // @description Создание заявки в таверне в один клик
  6. // @include http://*heroeswm.ru/*
  7. // @include http://*lordswm.com/*
  8. // @include http://178.248.235.15/*
  9. // @exclude */rightcol.php*
  10. // @exclude */ch_box.php*
  11. // @exclude */chat*
  12. // @exclude */ticker.html*
  13. // @exclude */frames*
  14. // @exclude */brd.php*
  15. // @homepage https://greasyfork.org/en/users/18377-pahan
  16. // @icon http://dcdn.heroeswm.ru/avatars/30/nc-5/30547.gif
  17. // @version 1.1
  18. // @encoding utf-8
  19. // @grant GM_deleteValue
  20. // @grant GM_getValue
  21. // @grant GM_listValues
  22. // @grant GM_setValue
  23. // @grant GM_addStyle
  24. // @grant GM_log
  25. // @grant GM_openInTab
  26. // @grant GM_xmlhttpRequest
  27. // ==/UserScript==
  28.  
  29. if (typeof GM_deleteValue != 'function') {
  30. this.GM_getValue=function (key,def) {return localStorage[key] || def;};
  31. this.GM_setValue=function (key,value) {return localStorage[key]=value;};
  32. this.GM_deleteValue=function (key) {return delete localStorage[key];};
  33.  
  34. this.GM_addStyle=function (key) {
  35. var style = document.createElement('style');
  36. style.textContent = key;
  37. document.querySelector("head").appendChild(style);
  38. }
  39. }
  40. if (typeof GM_listValues != 'function') {
  41. this.GM_listValues=function () {
  42. var values = [];
  43. for (var i=0; i<localStorage.length; i++) {
  44. values.push(localStorage.key(i));
  45. }
  46. return values;
  47. }
  48. }
  49.  
  50. function addEvent(elem, evType, fn) {
  51. // elem["on" + evType] = fn;
  52. if (elem.addEventListener) {
  53. elem.addEventListener(evType, fn, false);
  54. }
  55. else if (elem.attachEvent) {
  56. elem.attachEvent("on" + evType, fn);
  57. }
  58. else {
  59. elem["on" + evType] = fn;
  60. }
  61. }
  62.  
  63. function $(id) { return document.querySelector(id); }
  64.  
  65. function URLAttrValueGet(attr_name, aurl)
  66. {
  67. attr_name = attr_name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  68. var regexS = "[\\?&]" + attr_name + "=([^&#]*)";
  69. var regex = new RegExp( regexS );
  70. var results = regex.exec( aurl );
  71. if( results == null )
  72. return "";
  73. else
  74. return results[1];
  75. }
  76.  
  77. // -----------------------------------------------
  78.  
  79.  
  80.  
  81. function AddNewGameLink()
  82. {
  83. var Golds = [0, 40, 200, 400, 600, 1000, 2000, 3000,
  84. 4000, 5000, 6000, 7000, 10000, 11000, 12000];
  85. var timeout = GM_getValue('timeout', '30');
  86. var ktype = GM_getValue('ktype', '1');
  87. var gold = GM_getValue('gold', '0');
  88. var Lhref = '/create_card_game.php?timeout=' + timeout + '&ktype=' +
  89. ktype + '&gold=' + gold + '';
  90. var Ltitle =
  91. 'Создать заявку\n' +
  92. 'Время: ' + timeout + '\n' +
  93. 'Тип: ' + (ktype == 1 ? 'Одна колода карт' : 'Бесконечная колода карт') + '\n' +
  94. 'Ставка: ' + Golds[gold];
  95.  
  96. var LLinks = document.querySelectorAll('a[href^="/tavern.php?form=1"]');
  97. if (LLinks && (LLinks.length > 0))
  98. {
  99. var LLink = LLinks[0];
  100. var LNewLotHref = document.createElement('a');
  101. LNewLotHref.href = Lhref;
  102. LNewLotHref.title = Ltitle;
  103. LNewLotHref.innerHTML = '<font color="red"><b>Создать заявку(+)</b></font>';
  104. LLink.parentNode.insertBefore(LNewLotHref, LLink);
  105. var LBR = document.createElement('br');
  106. LLink.parentNode.insertBefore(LBR, LLink);
  107. }
  108. var LLinks = document.querySelectorAll('a[href="tavern.php"]');
  109. if (LLinks && (LLinks.length > 0))
  110. {
  111. var LLink = LLinks[0];
  112. var LNewLotHref = document.createElement('a');
  113. LNewLotHref.href = Lhref;
  114. LNewLotHref.title = Ltitle;
  115. LNewLotHref.innerHTML = '<font color="#ffd875"><b>+</b></font>';
  116. LLink.parentNode.appendChild(LNewLotHref);
  117. }
  118. }
  119.  
  120. function SaveSettings()
  121. {
  122. GM_setValue('timeout', document.forms.create.timeout.options[document.forms.create.timeout.selectedIndex].value);
  123. GM_setValue('ktype', document.forms.create.ktype.options[document.forms.create.ktype.selectedIndex].value);
  124. GM_setValue('gold', document.forms.create.gold.options[document.forms.create.gold.selectedIndex].value);
  125. }
  126.  
  127. function InitOneInput(AInput, AName)
  128. {
  129. var LValue = GM_getValue(AName, '');
  130. for(i = 0; i < AInput.options.length; i++)
  131. {
  132. var LOption = AInput.options[i];
  133. if (LOption.value == LValue)
  134. AInput.selectedIndex = LOption.index;
  135. }
  136. addEvent(AInput, 'change', SaveSettings);
  137. }
  138.  
  139. function InitInputs()
  140. {
  141. InitOneInput(document.forms.create.timeout, 'timeout');
  142. InitOneInput(document.forms.create.ktype, 'ktype');
  143. InitOneInput(document.forms.create.gold, 'gold');
  144. }
  145.  
  146.  
  147. if (URLAttrValueGet('form', location.href) == '1')
  148. InitInputs();
  149. AddNewGameLink();