ColabHelper

A helper to start and terminate the colab session

  1. // ==UserScript==
  2. // @name ColabHelper
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description A helper to start and terminate the colab session
  6. // @author You
  7. // @match https://colab.research.google.com/drive/*
  8. // @icon https://www.google.com/s2/favicons?domain=colab.research.google.com
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. var zNode = document.createElement ('div');
  13. zNode.innerHTML = '<button id="startButton" type="button">Start</button> <button id="closeButton" type="button">Close</button>';
  14. zNode.setAttribute ('id', 'myContainer');
  15. document.body.appendChild (zNode);
  16.  
  17. //--- Activate the newly added button.
  18. document.getElementById ("startButton").addEventListener (
  19. "click", startButtonClickAction, false
  20. );
  21.  
  22. document.getElementById ("closeButton").addEventListener (
  23. "click", endButtonClickAction, false
  24. );
  25.  
  26. function startButtonClickAction (zEvent) {
  27. /*--- For our dummy action, we'll just add a line of text to the top
  28. of the screen.
  29. */
  30. var zNode = document.createElement ('p');
  31. document.getElementById ("myContainer").appendChild (zNode);
  32. document.querySelector("colab-run-button").click();
  33. }
  34.  
  35. function endButtonClickAction (zEvent) {
  36. end();
  37. }
  38.  
  39. //Sleep function
  40. const sleep = (milliseconds) => {
  41. return new Promise(resolve => setTimeout(resolve, milliseconds))
  42. }
  43.  
  44. //End function
  45. const end = async () => {
  46. //Click on menu button
  47. document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
  48. await sleep(500);
  49.  
  50. //Click on manage sessions
  51. document.querySelector("colab-usage-display").shadowRoot.querySelector("div paper-button").click();
  52. await sleep(2000);
  53.  
  54. //Click on terminate session
  55. //document.querySelector("body > colab-dialog > paper-dialog > colab-sessions-dialog").shadowRoot.querySelector("div.dialog-main-content > div.sessions-content.layout.vertical > div.dialog-table > colab-session > div.button-action-column > paper-icon-button").click()
  56. document.querySelector("body > colab-dialog > paper-dialog > colab-sessions-dialog").shadowRoot.querySelector("div.dialog-main-content > div.sessions-content.layout.vertical > div.dialog-table > colab-session > div.button-action-column > paper-button").click();
  57. await sleep(1000);
  58.  
  59. //Click on okay buttom if prompted
  60. try {
  61. document.querySelector("#ok").click();
  62. // await sleep(1000);
  63. }
  64. catch(err) {
  65. console.log('No okay button')
  66. }
  67.  
  68. document.querySelector("body > colab-dialog > paper-dialog > colab-sessions-dialog").shadowRoot.querySelector("paper-button.dismiss").click()
  69. await sleep(1000);
  70. //document.querySelector("colab-usage-display").shadowRoot.querySelector("div paper-button").click();
  71. }
  72.  
  73.  
  74.  
  75.