您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically apply customizations to Canvas modules: check 'mark done' checkbox before navigating to the next video in Canvas; reduce the size of large images; increase the size of Kaltura video player.
当前为
- // ==UserScript==
- // @name Automated Modules Customization
- // @version 1.0.1
- // @namespace http://tampermonkey.net/
- // @description Automatically apply customizations to Canvas modules: check 'mark done' checkbox before navigating to the next video in Canvas; reduce the size of large images; increase the size of Kaltura video player.
- // @author Kyle Nakamura
- // @match https://gatech.instructure.com/courses/*/pages/*
- // @icon https://www.google.com/s2/favicons?domain=instructure.com
- // ==/UserScript==
- // Quick note about delays (timeouts):
- // Canvas loads the video player and images last, so customizations to
- // those elements must be delayed. You can adjust the delay if your elements
- // seem to load slower or faster than the pre-set 1.5 seconds.
- (() => {
- 'use strict';
- // Enable auto-checkbox toggle with a delay of 500ms
- setTimeout(enableAutoCheckboxToggle, 500);
- // Reduce the size of images with a delay of 1500ms
- setTimeout(reduceTranscriptImageSizes, 1500);
- // Increase the size of the Kaltura video player with a delay of 1500ms
- setTimeout(increaseKalturaSize, 1500);
- })();
- function enableAutoCheckboxToggle() {
- try {
- const checkbox = $('button#mark-as-done-checkbox'),
- checkboxIconClass = $(checkbox).find('i')[0].className,
- buttonNext = $('span.module-sequence-footer-button--next').find('a');
- buttonNext.on('click', () => {
- if (checkboxIconClass === 'icon-empty') checkbox.click();
- });
- } catch (err) {
- console.error('Tampermonkey script "Auto Checkbox Toggle" failed.\nDetails:', err);
- }
- }
- function reduceTranscriptImageSizes() {
- try {
- $('.user_content img').each(function() {
- $(this).css('max-width', '30%');
- });
- } catch (err) {
- console.error('Tampermonkey script "Reduce Transcript Image Sizes" failed.\nDetails:', err);
- }
- }
- function increaseKalturaSize() {
- try {
- const kalturaPlayer = $('iframe[src^="https://gatech.instructure.com"')[0];
- kalturaPlayer.width = '';
- kalturaPlayer.height = '';
- kalturaPlayer.style.width = '100%';
- helperFuncApplyNewHeight(kalturaPlayer);
- let resizeTimer;
- $(window).on('resize', e => {
- clearTimeout(resizeTimer);
- resizeTimer = setTimeout(() => {
- helperFuncApplyNewHeight(kalturaPlayer);
- }, 250);
- });
- } catch (err) {
- console.error('Tampermonkey script "Increase Kaltura Size" failed.\nDetails:', err);
- }
- }
- // Helper function for `increaseKalturaSize()`
- const helperFuncApplyNewHeight = player => {
- // Calculate the new width after window size changed
- const newWidth = parseInt(window.getComputedStyle(player).width.split('px')[0]);
- let divider = 1.5;
- if (newWidth < 600) divider = 1.8;
- player.style.height = newWidth / divider + 'px';
- }