InstaSynchP SysMessage Hide

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

  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.2
  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 system messages after a delay',
  25. title: 'Disabling this will show the system messages again',
  26. id: 'sysmessage-hide',
  27. type: 'checkbox',
  28. 'default': true,
  29. section: ['System Messages']
  30. }, {
  31. label: 'Delay to hide the messages in ms',
  32. id: 'sysmessage-hide-timeout',
  33. type: 'int',
  34. 'default': 15000,
  35. size: 6,
  36. section: ['System Messages']
  37. }];
  38. this.hideTimeoutIds = [];
  39. }
  40.  
  41. SysMessageHide.prototype.executeOnce = function () {
  42. "use strict";
  43. var th = this;
  44.  
  45. events.on(th, 'SettingChange[sysmessage-hide]', function (oldVal, newVal) {
  46. $('#chat_messages .text-info').parent()[newVal ? 'hide' : 'show']();
  47. //stop all the outstanding timeouts
  48. for (var i = 0, len = th.hideTimeoutIds.length; i < len; i += 1) {
  49. clearTimeout(th.hideTimeoutIds[i]);
  50. }
  51. th.hideTimeoutIds = [];
  52. //scroll to the bottom
  53. $('#chat_messages').scrollTop($('#chat_messages')[0].scrollHeight);
  54. });
  55.  
  56. events.on(th, 'AddMessage', function (ignore1, ignore2, extraStyles) {
  57. if (extraStyles !== 'text-info' || !gmc.get('sysmessage-hide')) {
  58. return;
  59. }
  60. var lastMessage, timeoutId;
  61.  
  62. lastMessage = $('#chat_messages > :last-child');
  63.  
  64. timeoutId = setTimeout(function () {
  65. lastMessage.hide();
  66. th.hideTimeoutIds.shift();
  67. }, gmc.get('sysmessage-hide-timeout'));
  68.  
  69. th.hideTimeoutIds.push(timeoutId);
  70. });
  71. };
  72.  
  73. window.plugins = window.plugins || {};
  74. window.plugins.sysMessageHide = new SysMessageHide('1.0.2');