Chess Com Live Hide Usernames

Hides Usernames

  1. // ==UserScript==
  2. // @name Chess Com Live Hide Usernames
  3. // @namespace http://userstyles.org
  4. // @description Hides Usernames
  5. // @author 636597
  6. // @include *://*.chess.com/live*
  7. // @run-at document-start
  8. // @version 0.1
  9. // ==/UserScript==
  10.  
  11. function delay_call( function_pointer , delay_time ) {
  12. setTimeout( function() {
  13. function_pointer();
  14. } , delay_time );
  15. }
  16.  
  17. var css_selectors_hide = [
  18. "a.username" ,
  19. "span.username"
  20. ];
  21.  
  22. function hide_stuff() {
  23. try {
  24. for ( var i = 0; i < css_selectors_hide.length; ++i ) {
  25. //console.log( "Hiding: " + css_selectors_hide[ i ] );
  26. var elements = document.querySelectorAll( css_selectors_hide[ i ] );
  27. for ( var j = 0; j < elements.length; ++j ) {
  28. elements[ j ].innerText = "";
  29. }
  30. }
  31. }
  32. catch( error ) { /* console.log( error ); */ }
  33. }
  34.  
  35. var events_table_element = false;
  36. var top_players_table_element = false;
  37. var events_table_observer = false;
  38. var top_players_table_observer = false;
  39. var observerConfig = {
  40. childList: true,
  41. attributes: true,
  42. characterData: true,
  43. subtree: true,
  44. attributeOldValue: true,
  45. characterDataOldValue: true
  46. };
  47.  
  48. function observe_events_table() {
  49. hide_stuff();
  50. events_table_element = document.querySelector( "div[data-tab-content='events']" );
  51. if ( !events_table_element ) {
  52. console.log( "No Events Table ??" );
  53. return;
  54. }
  55. events_table_observer = new MutationObserver( function( mutations ) {
  56. mutations.forEach( function( mutation , index ) {
  57. if ( mutation.type === "childList" ) {
  58. if ( mutation.addedNodes ) {
  59. if ( mutation.addedNodes[ 0 ] ) {
  60. if ( mutation.addedNodes[ 0 ].className ) {
  61. if ( mutation.addedNodes[ 0 ].className === "events-list-row" ) {
  62. //console.log( "New User Added" );
  63. // var children = mutation.addedNodes[ 0 ].children;
  64. // var white = black = false;
  65. // for ( var i = 0; i < children.length; ++i ) {
  66. // if ( children[ i ].className === "events-list-black" ) {
  67. // black = children[ i ]
  68. // }
  69. // if ( children[ i ].className === "events-list-white" ) {
  70. // white = children[ i ]
  71. // }
  72. // }
  73. // if ( white ) {
  74. // white.childNodes[ 0 ].innerText = "";
  75. // }
  76. // if ( black ) {
  77. // black.childNodes[ 0 ].innerText = "";
  78. // }
  79. hide_stuff();
  80. }
  81. }
  82. }
  83. }
  84. }
  85. //console.log( mutation );
  86. });
  87. });
  88. events_table_observer.observe( events_table_element , observerConfig );
  89. console.log( "Observing Events Table" );
  90. }
  91.  
  92. function observe_top_players_table() {
  93. hide_stuff();
  94. top_players_table_element = document.querySelector( "div[data-tab-content='players']" );
  95. if ( !top_players_table_element ) {
  96. console.log( "No Top Players Table ??" );
  97. return;
  98. }
  99. top_players_table_observer = new MutationObserver( function( mutations ) {
  100. mutations.forEach( function( mutation , index ) {
  101. // if ( mutation.type === "childList" ) {
  102. // if ( mutation.addedNodes ) {
  103. // if ( mutation.addedNodes[ 0 ] ) {
  104. // if ( mutation.addedNodes[ 0 ].className ) {
  105. // if ( mutation.addedNodes[ 0 ].className === "events-list-row" ) {
  106. // console.log( "New User Added" );
  107. // // var children = mutation.addedNodes[ 0 ].children;
  108. // // var white = black = false;
  109. // // for ( var i = 0; i < children.length; ++i ) {
  110. // // if ( children[ i ].className === "events-list-black" ) {
  111. // // black = children[ i ]
  112. // // }
  113. // // if ( children[ i ].className === "events-list-white" ) {
  114. // // white = children[ i ]
  115. // // }
  116. // // }
  117. // // if ( white ) {
  118. // // white.childNodes[ 0 ].innerText = "";
  119. // // }
  120. // // if ( black ) {
  121. // // black.childNodes[ 0 ].innerText = "";
  122. // // }
  123. // hide_stuff();
  124. // }
  125. // }
  126. // }
  127. // }
  128. //}
  129. //console.log( mutation );
  130. hide_stuff();
  131. });
  132. });
  133. top_players_table_observer.observe( top_players_table_element , observerConfig );
  134. console.log( "Observing Top Players Table" );
  135. }
  136.  
  137. var events_button_element = false;
  138. var top_players_button_element = false;
  139. function hook_button_clicks() {
  140. events_button_element.addEventListener( "click" , function() {
  141. hide_stuff();
  142. events_table_observer = false;
  143. delay_call( observe_events_table , 500 );
  144. });
  145. top_players_button_element.addEventListener( "click" , function() {
  146. hide_stuff();
  147. top_players_table_observer = false;
  148. delay_call( observe_top_players_table , 500 );
  149. });
  150. }
  151.  
  152. function init() {
  153. hide_stuff();
  154. hook_button_clicks();
  155. }
  156.  
  157. var wait_for_buttons_interval = false;
  158. function wait_for_buttons() {
  159. wait_for_buttons_interval = setInterval( function() {
  160. events_button_element = document.querySelector( "li[data-tab='events'" );
  161. top_players_button_element = document.querySelector( "li[data-tab='players'" );
  162. console.log( events_button_element );
  163. console.log( top_players_button_element );
  164. if ( events_button_element && top_players_button_element ) {
  165. clearInterval( wait_for_buttons_interval );
  166. // Button Observers Are Now Ready To Be Loaded
  167. init();
  168. //events_button_element.click();
  169. //delay_call_wait_events_table();
  170. }
  171. } , 500 );
  172. setTimeout( function() {
  173. clearInterval( wait_for_buttons_interval );
  174. }, 10000 );
  175. }
  176.  
  177. ( function() {
  178. window.addEventListener ( "load" , wait_for_buttons );
  179. })();