Capytale : Restart & clear outputs in just 1 button

Parce que j'en avais marre d'avoir à cliquer systématiquement sur "Noyau, Redémarrer & tout exécuter, Valider, puis encore Noyau, Redémarrer & effacer les sorties"

  1. // ==UserScript==
  2. // @name Capytale : Restart & clear outputs in just 1 button
  3. // @namespace http://tampermonkey.net/
  4. // @version 2024-10-31
  5. // @description Parce que j'en avais marre d'avoir à cliquer systématiquement sur "Noyau, Redémarrer & tout exécuter, Valider, puis encore Noyau, Redémarrer & effacer les sorties"
  6. // @author James Web (in the area)
  7. // @include https://capytale2.ac-paris.fr/p/basthon/**
  8. // @icon https://www.favicon.studio/favicon.ico
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. // Fonction qui redémarre le noyau, exécute tout, efface les sorties
  17. function restartAndClean() {
  18. // Redémarrer et tout exécuter
  19. document.querySelector('#restart_run_all').click();
  20. setTimeout(()=>{
  21. document.querySelector('.modal-footer .btn-danger').click();
  22. // Redémarrer et effacer les sorties
  23. setTimeout(()=>{
  24. document.querySelector('#restart_clear_output').click();
  25. setTimeout(()=>{
  26. document.querySelector('.modal-footer .btn-danger').click();
  27. }, 500)
  28. }, 500)
  29. }, 500)
  30. }
  31.  
  32. // Créer un nouveau bouton
  33. let btnEl = document.createElement('button');
  34. btnEl.className = 'btn btn-default';
  35. btnEl.title = 'Tout exécuter + Effacer les sorties';
  36. btnEl.innerHTML = '<i class="fa-truck fa"></i>';
  37. btnEl.addEventListener('click', restartAndClean);
  38.  
  39. // On attend le bon moment pour ajouter notre bouton
  40. let ticTac;
  41. function myCallback() {
  42. if (document.querySelector('#MathJax_Message')) {
  43. clearInterval(ticTac);
  44. document.querySelector('#RISE').insertAdjacentElement('afterend', btnEl);
  45. }
  46. }
  47. ticTac = setInterval(myCallback, 500);
  48.  
  49.  
  50. })();