Moodle AutoConnect

Автоматически присоединяется к конференциям на Moodle

安装此脚本
作者推荐脚本

您可能也喜欢Moodle AutoPilot

安装此脚本
  1. // ==UserScript==
  2. // @name Moodle AutoConnect
  3. // @namespace https://t.me/johannmosin
  4. // @version 0.1.2.1
  5. // @description Автоматически присоединяется к конференциям на Moodle
  6. // @author Johann Mosin
  7. // @match https://edu.vsu.ru/mod/bigbluebuttonbn/view.php?*
  8. // @match https://*.edu.vsu.ru/html5client/join?sessionToken=*
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. // Function to handle "bigbluebuttonbn" pages
  17. function handleBigBlueButtonPage() {
  18. const checkInterval = setInterval(() => {
  19. console.log("Checking for session link...");
  20. const sessionLink = Array.from(document.querySelectorAll('a')).find(td => td.textContent.includes("Подключиться к сеансу"));
  21. if (sessionLink) {
  22. const href = sessionLink.href;
  23. console.log("Found session link:", href);
  24. window.open(href, '_blank');
  25. clearInterval(checkInterval); // Stop checking
  26. } else {location.reload();}
  27. }, 10000);
  28. }
  29.  
  30. // Function to handle "html5client" pages
  31. function handleHtml5ClientPage() {
  32. const buttonInterval = setInterval(() => {
  33. console.log("Checking for buttons...");
  34. const joinButton = document.querySelector('button[aria-label="Только слушать"]');
  35. if (joinButton) {
  36. joinButton.click();
  37. console.log("Clicked button: Только слушать");
  38. }
  39. const connectButton = document.querySelector('button[aria-label="Проиграть звук"]');
  40. if (connectButton) {
  41. connectButton.click();
  42. console.log("Clicked button: Проиграть звук");
  43. clearInterval(buttonInterval); // Stop checking
  44. }
  45. }, 2000);
  46. }
  47.  
  48. // Main logic to determine which handler to use
  49. if (window.location.href.includes("bigbluebuttonbn")) {
  50. console.log("Detected bigbluebuttonbn page.");
  51. handleBigBlueButtonPage();
  52. } else if (window.location.href.includes("html5client")) {
  53. console.log("Detected html5client page.");
  54. handleHtml5ClientPage();
  55. }
  56. })();