hwmangryworker

помощник в устройстве на работу, скрипт для ГВД

当前为 2015-03-23 提交的版本,查看 最新版本

  1. // (c) 2015, Ded Moroz
  2. //
  3. // ==UserScript==
  4. // @name hwmangryworker
  5. // @namespace ded_moroz
  6. // @description помощник в устройстве на работу, скрипт для ГВД
  7. // @version 1.0.1
  8. // @homepage https://greasyfork.org/users/7571-ded-moroz
  9. // @include http://www.heroeswm.ru/object-info.php*
  10. // @include http://www.heroeswm.ru/object_do.php*
  11. // @include http://www.lordswm.com/object-info.php*
  12. // @include http://www.lordswm.com/object_do.php*
  13. // @grant GM_getValue
  14. // @grant GM_setValue
  15. // @grant GM_deleteValue
  16. // ==/UserScript==
  17.  
  18. if (typeof GM_getValue != 'function')
  19. {
  20. this.GM_getValue = function (key, def) {return localStorage[key] || def;};
  21. this.GM_setValue = function (key, value) {return localStorage[key] = value;};
  22. this.GM_deleteValue = function (key) {return delete localStorage[key];};
  23. }
  24.  
  25. var eng = location.hostname.contains('lordswm') ? true : false;
  26.  
  27. var coop = '<center style="font-size:10px;">&#169; <a href="mailto:ded_moroz@mail.com" style="font-size:10px;" target="_top">Ded Moroz</a> <a href="https://greasyfork.org/users/7571-ded-moroz" style="font-size:10px;">hwm angry worker</a> v. ' + GM_info.script.version + '</center>';
  28.  
  29. /* get player's id */
  30. var player_id = '';
  31. links = document.getElementsByTagName('a');
  32. for (i = 0; i < links.length; i++)
  33. {
  34. if (links[i].getAttribute('href').contains('pl_hunter_stat'))
  35. {
  36. player_id = links[i].getAttribute('href').split('=')[1];
  37. break;
  38. }
  39. }
  40.  
  41. var GM_ARGS = 'hwm_angry_worker_args' + player_id;
  42.  
  43. if (eng)
  44. {
  45. var pass_msg1 = 'gold'; // 'Not enough gold in facility'
  46. var pass_msg2 = 'No vacancies'; // 'No vacancies'
  47. var fail_msg1 = 'You'; // 'You have successfully enrolled' && 'You are already employed'
  48. var fail_msg2 = 'Invalid code'; // 'Invalid code. Please try again'
  49. }
  50. else
  51. {
  52. var pass_msg1 = 'недостаточно золота';
  53. var pass_msg2 = 'Нет рабочих мест';
  54. var fail_msg1 = 'устроены';
  55. var fail_msg2 = 'неправильный код';
  56. }
  57.  
  58. if (location.toString().contains('object_do'))
  59. {
  60. // get the result string
  61. msg = document.getElementsByTagName('center');
  62. msg = msg[msg.length - 2];
  63. if (msg.innerHTML.contains(pass_msg1) || msg.innerHTML.contains(pass_msg2))
  64. {
  65. // save url with captcha to use later
  66. GM_setValue(GM_ARGS, location.search);
  67. }
  68. else if (msg.innerHTML.contains(fail_msg1) || msg.innerHTML.contains(fail_msg2))
  69. {
  70. // url is no longer valid
  71. GM_deleteValue(GM_ARGS);
  72. }
  73. console.log(msg.innerHTML);
  74. console.log(GM_getValue(GM_ARGS));
  75. }
  76. else if (location.toString().contains('object-info'))
  77. {
  78. args = GM_getValue(GM_ARGS);
  79. if (args)
  80. {
  81. code_id = '';
  82.  
  83. // get new code_id
  84. flash = document.getElementsByTagName('embed');
  85. for (i = 0; i < flash.length; i++)
  86. {
  87. if (flash[i].getAttribute('src').contains('workcode'))
  88. {
  89. code_id = flash[i].getAttribute('FlashVars').split('|')[2];
  90. break;
  91. }
  92. }
  93.  
  94. // quit if cant work here
  95. if (code_id == '') return;
  96.  
  97. arg_pair = args.split('&');
  98. arg = [];
  99.  
  100. // get url arguments from saved url
  101. for (i = 0; i < arg_pair.length; i++)
  102. {
  103. arg[i] = arg_pair[i].split('=');
  104. }
  105. // set new code_id
  106. if (arg[2][0] != 'code_id') return;
  107. arg[2][1] = code_id;
  108.  
  109. // make new url
  110. url = 'http://' + location.hostname + '/object_do.php' + location.search;
  111. for (i = 1; i < arg_pair.length; i++)
  112. {
  113. url += '&' + arg[i][0] + '=' + arg[i][1];
  114. }
  115. // apply for work
  116. location.href = url;
  117. }
  118. }
  119.  
  120. // insert copyright
  121. var div = document.createElement('div');
  122. div.innerHTML = '<br>' + coop;
  123. links[links.length - 1].parentNode.appendChild(div);