Set all chesscom puzzles pieces to king

Show all puzzles as king

  1. // ==UserScript==
  2. // @name Set all chesscom puzzles pieces to king
  3. // @version 20220930
  4. // @description Show all puzzles as king
  5. // @author soup_steward
  6. // @match https://www.chess.com/*
  7. // @match https://chess.com/*
  8. // @require http://code.jquery.com/jquery-latest.js
  9. // @grant none
  10. // @license MIT
  11. // @inject-into content
  12. // @namespace https://greasyfork.org/users/964951
  13. // ==/UserScript==
  14.  
  15. function waitForElm(selector) {
  16. return new Promise(resolve => {
  17. if (document.querySelector(selector)) {
  18. return resolve(document.querySelector(selector));
  19. }
  20.  
  21. const observer = new MutationObserver(mutations => {
  22. if (document.querySelector(selector)) {
  23. resolve(document.querySelector(selector));
  24. observer.disconnect();
  25. }
  26. });
  27.  
  28. observer.observe(document.body, {
  29. childList: true,
  30. subtree: true
  31. });
  32. });
  33. }
  34.  
  35. function setPuzzleStatus(){
  36. $(".bp").addClass("bk");
  37. $(".bn").addClass("bk");
  38. $(".bb").addClass("bk");
  39. $(".br").addClass("bk");
  40. $(".bq").addClass("bk");
  41. $(".bp").removeClass("bp");
  42. $(".bn").removeClass("bn");
  43. $(".bb").removeClass("bb");
  44. $(".br").removeClass("br");
  45. $(".bq").removeClass("bq");
  46. $(".wp").addClass("wk");
  47. $(".wn").addClass("wk");
  48. $(".wb").addClass("wk");
  49. $(".wr").addClass("wk");
  50. $(".wq").addClass("wk");
  51. $(".wp").removeClass("wp");
  52. $(".wn").removeClass("wn");
  53. $(".wb").removeClass("wb");
  54. $(".wr").removeClass("wr");
  55. $(".wq").removeClass("wq");
  56. };
  57.  
  58. waitForElm('.streak-icon-square-x').then((elm) => {
  59.  
  60. setPuzzleStatus();
  61.  
  62. });
  63.  
  64. setPuzzleStatus();
  65.  
  66. $('#board-layout-sidebar').bind('DOMSubtreeModified', function(e) {
  67. setPuzzleStatus();
  68. });