TheWest - No Edge Blink

Stop blinking title on Edge

  1. // ==UserScript==
  2. // @name TheWest - No Edge Blink
  3. // @namespace https://greasyfork.org/en/scripts/35587-thewest-no-edge-blink
  4. // @version 0.25
  5. // @description Stop blinking title on Edge
  6. // @author Adriano
  7. // @license LGPLv3
  8. // @include http*://*.the-west.*/game.php
  9. // @include http*://*.the-west.*.*/game.php*
  10. // @include http*://*.tw.innogames.*/game.php*
  11. // @grant none
  12. // ==/UserScript==
  13.  
  14. function appendScript(fn) {
  15. var newScript = document.createElement('script');
  16. newScript.setAttribute("type", "application/javascript");
  17. newScript.textContent = '(' + fn + ')();';
  18. document.body.appendChild(newScript);
  19. document.body.removeChild(newScript);
  20. }
  21. appendScript(function() {
  22. //'use strict';
  23. var VERSION = 0.25;
  24. var URL_INSTALL = "https://greasyfork.org/en/scripts/35587-thewest-no-edge-blink";
  25. var URL_CODE = "https://greasyfork.org/scripts/35587-thewest-no-edge-blink/code/TheWest%20-%20No%20Edge%20Blink.user.js";
  26. var SCRIPT1 = "https://greasyfork.org/scripts/35553-thewest-tamagotchi-pg";
  27. var SCRIPT2 = "https://greasyfork.org/en/scripts/35587-thewest-no-edge-blink";
  28. var scriptAuthor = "Adriano";
  29. var scriptCredits = '<span style="display: inline-block; vertical-align: middle;">Adriano (Tiger54) for this script<br />.</span>';
  30. var scriptList = '<p style="margin: 8pt;"><b>Adriano\'s Scripts</b>: <span style="display: inline-block; vertical-align: middle;"><a href="' + SCRIPT1 + '">Tamagotchi PG</a><br><a href="' + SCRIPT2 + '">No Edge Blink</a></span></p>';
  31. var scriptName = "No Tab Blink";
  32. var scriptObject = "NoEdgeBlink";
  33. this[scriptObject] = {
  34. localeManager: {
  35. localeDefault: 'en_US',
  36. localeScript: 'en_US',
  37. getMsg: function(msg) {
  38. if(undefined !== this.languages[this.localeScript][msg]) return this.languages[this.localeScript][msg];
  39. if(undefined !== this.languages[this.localeDefault][msg]) return this.languages[this.localeDefault][msg];
  40. return '';
  41. },
  42. checkLanguages: function() {
  43. var langs = Object.keys(this.languages), messages = Object.keys(this.languages[this.localeDefault]), that = this;
  44. $.each(messages, function(i, msg) {
  45. $.each(langs, function(j, lang) {
  46. if(!that.languages[lang].hasOwnProperty(msg)) console.log('Missing '+lang+'.'+msg);
  47. else if(typeof that.languages[that.localeDefault][msg] == "object") {
  48. $.each(Object.keys(that.languages[that.localeDefault][msg]), function(k, msg2) {
  49. if(!that.languages[lang][msg].hasOwnProperty(msg2)) console.log('Missing '+lang+'.'+msg+'.'+msg2);
  50. });
  51. }
  52. });
  53. });
  54. $.each(langs, function(i, lang) {
  55. $.each(Object.keys(that.languages[lang]), function(j, msg) {
  56. if(!messages.includes(msg)) console.log('Obsolete message '+lang+'.'+msg);
  57. else if(typeof that.languages[lang][msg] == "object") {
  58. $.each(Object.keys(that.languages[lang][msg]), function(j, msg2) {
  59. if(!that.languages[that.localeDefault][msg].hasOwnProperty(msg2)) console.log('Obsolete message '+lang+'.'+msg+'.'+msg2);
  60. });
  61. }
  62. });
  63. });
  64. },
  65. setLocale: function(localeSelected) {
  66. this.localeScript = (undefined !== this.languages[localeSelected]) ? localeSelected : this.localeDefault;
  67. },
  68. languages: {
  69. en_US: {
  70. description: '<h1>The West - No Edge Blink</h1><p style="margin: 8pt;">Under Windows 10, in Edge, the title in the tab will fade on each text change. <br>This can be annoying when you are not playing.</p><p style="margin: 8pt;">With this script, the seconds will be removed from the title, so that it blinks only 1 time each minute (every second if the tab is active).</p><p style="margin: 8pt;"><b>Credits</b>: '+scriptCredits+'</p>' + scriptList,
  71. version: 'version',
  72. version_checkFailed: 'Unable to check for updates',
  73. version_checkManual: 'Check manually',
  74. version_ok: 'You already have the latest version',
  75. version_upgrade: 'A new version is available. Do you want to upgrade now?',
  76. refresh: 'Refresh',
  77. },
  78. },
  79. },
  80. script: {
  81. api: null,
  82. listeningSignal: 'game_config_loaded',
  83. loaded: false,
  84. init: function() {
  85. var that = this;
  86. if(this.loaded) return false;
  87. EventHandler.listen(this.listeningSignal, function() {
  88. that.init();
  89. return EventHandler.ONE_TIME_EVENT;
  90. });
  91. if(!!(Game && Game.loaded)) {
  92. this.loaded = true;
  93. NoEdgeBlink.localeManager.setLocale(Game.locale);
  94. this.api = TheWestApi.register(scriptObject, scriptName, VERSION.toString(), Game.version.toString(), scriptAuthor, URL_INSTALL);
  95. NoEdgeBlink.script.api.setGui(NoEdgeBlink.localeManager.getMsg('description'));
  96. if(TitleTicker.tick)
  97. {
  98. TitleTicker.tick = function() {
  99. var title,c;
  100. c=TaskQueue.timeleft;
  101. if(c)
  102. {
  103. if(TitleTicker.isWindowActive)
  104. title=(c.formatDuration()) + ' - ' + TitleTicker.getSuffix();
  105. else
  106. title=(c.formatDuration().substring(0,c.formatDuration().length-3)) + ' - ' + TitleTicker.getSuffix();
  107. }
  108. else
  109. {
  110. title=TitleTicker.getSuffix();
  111. }
  112. if(!TitleTicker.isWindowActive && TitleTicker.notifyMessage)
  113. {
  114. if(TitleTicker.lastNotify > 0)
  115. title=TitleTicker.notifyMessage;
  116. TitleTicker.lastNotify++;
  117. if(TitleTicker.lastNotify>TitleTicker.notifyDuration)
  118. TitleTicker.lastNotify=-TitleTicker.notifyDuration;
  119. }
  120. else
  121. {
  122. TitleTicker.lastNotify=0;
  123. }
  124. if(TitleTicker.lasttitle == title)
  125. return;
  126. TitleTicker.lasttitle=title;
  127. document.title=title;
  128. TitleTicker.setTime(TitleTicker.time-1);
  129. };
  130. }
  131. }
  132. },
  133. },
  134. };
  135. $(function() { try { NoEdgeBlink.script.init(); } catch(x) { console.trace(x); } });
  136. });