InstaSynchP SysMessage Hide

Hides system messages after a short time to reduce spam in the chat

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

  1. // ==UserScript==
  2. // @name InstaSynchP SysMessage Hide
  3. // @namespace InstaSynchP
  4. // @description Hides system messages after a short time to reduce spam in the chat
  5.  
  6. // @version 1.0.1
  7. // @author Zod-
  8. // @source https://github.com/Zod-/InstaSynchP-SysMessage-Hide
  9. // @license MIT
  10.  
  11. // @include *://instasync.com/r/*
  12. // @include *://*.instasync.com/r/*
  13. // @grant none
  14. // @run-at document-start
  15.  
  16. // @require https://greasyfork.org/scripts/5647-instasynchp-library/code/InstaSynchP%20Library.js?version=37716
  17. // ==/UserScript==
  18.  
  19. function SysMessageHide(version) {
  20. "use strict";
  21. this.version = version;
  22. this.name = 'InstaSynchP SysMessage Hide';
  23. this.settings = [{
  24. 'label': 'Hide',
  25. 'id': 'sysmessage-hide',
  26. 'type': 'checkbox',
  27. 'default': true,
  28. 'section': ['Chat', 'System Messages']
  29. }, {
  30. 'label': 'Hide Delay(ms)',
  31. 'id': 'sysmessage-hide-timeout',
  32. 'type': 'int',
  33. 'min': 0,
  34. 'max': 100000,
  35. 'default': 15000,
  36. 'size': 8,
  37. 'section': ['Chat', 'System Messages']
  38. }];
  39. this.hideTimeoutIds = [];
  40. }
  41.  
  42. SysMessageHide.prototype.executeOnce = function () {
  43. "use strict";
  44. var th = this;
  45.  
  46. events.on(th, 'SettingChange[sysmessage-hide]', function (oldVal, newVal) {
  47. $('#chat_messages .text-info').parent()[newVal ? 'hide' : 'show']();
  48. //stop all the outstanding timeouts
  49. for (var i = 0, len = th.hideTimeoutIds.length; i < len; i += 1) {
  50. clearTimeout(th.hideTimeoutIds[i]);
  51. }
  52. th.hideTimeoutIds = [];
  53. //scroll to the bottom
  54. $('#chat_messages').scrollTop($('#chat_messages')[0].scrollHeight);
  55. });
  56.  
  57. events.on(th, 'AddMessage', function (ignore1, ignore2, extraStyles) {
  58. if (extraStyles !== 'text-info' || !gmc.get('sysmessage-hide')) {
  59. return;
  60. }
  61. var lastMessage, timeoutId;
  62.  
  63. lastMessage = $('#chat_messages > :last-child');
  64.  
  65. timeoutId = setTimeout(function () {
  66. lastMessage.hide();
  67. th.hideTimeoutIds.shift();
  68. }, gmc.get('sysmessage-hide-timeout'));
  69.  
  70. th.hideTimeoutIds.push(timeoutId);
  71. });
  72. };
  73.  
  74. /*
  75. button to toggle system messages
  76. SysMessageHide.prototype.preConnect = function() {
  77. "use strict";
  78. var th = this;
  79. <a style="
  80. position: absolute;
  81. top: 2px;
  82. right: 17px;
  83. cursor: pointer;
  84. "><img src="http://puu.sh/e1mf9/dd5400a431.png"></a>
  85. $('#chat-messages').before(
  86. $('<a>').append(
  87. $('<img>', {
  88. src: 'http://puu.sh/e1mf9/dd5400a431.png'
  89. })
  90. ).css('cursor', 'pointer').css('top', '2px').css('position', 'absolute').css('right', '17px')
  91. .click(function() {
  92. gmc.set('sysmessage-hide', !gmc.get('sysmessage-hide'));
  93. plugins.settings.save();
  94. })
  95. );
  96. }*/
  97.  
  98. window.plugins = window.plugins || {};
  99. window.plugins.sysMessageHide = new SysMessageHide('1.0.1');