// ==UserScript== // @name 课程视频助手 // @namespace http://tampermonkey.net/ // @version 0.2 // @description 课程视频防止掉线并设置每分钟更新视频观看时间 // @author 零度 // @match *://course.ucas.ac.cn/portal/site/*/tool/*/video/play?id=* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; portal.forever_keep_alive = function forever_keep_alive(){ clearTimeout(sessionTimeOut); keep_session_alive(); $("#videoState").val("1"); checkTime(); portal.forever_keep_alive_timer = setTimeout('portal.forever_keep_alive()', 60000); } portal.forever_keep_alive(); //following code is copied from chrome extension 'Enable Copy' var doc = document; var body = doc.body; var html = doc.documentElement; function allowUserSelect(element) { element.setAttribute('style', '-webkit-user-select: auto !important'); element.setAttribute('style', 'user-select: auto !important'); return element; } function allowUserSelectById(element_id) { return allowUserSelect(doc.getElementById(element_id)); } function allowUserSelectByClassName(element_class) { var elements = doc.getElementsByClassName(element_class); var len = elements.length; for (var i = 0; i < len; ++i) { allowUserSelect(elements[i]); } return elements; } function clearHandlers() { html.onselectstart = html.oncopy = html.oncut = html.onpaste = html.onkeydown = html.oncontextmenu = html.onmousemove = body.oncopy = body.oncut = body.onpaste = body.onkeydown = body.oncontextmenu = body.onmousedown = body.onmousemove = body.onselectstart = body.ondragstart = doc.onselectstart = doc.oncopy = doc.oncut = doc.onpaste = doc.onkeydown = doc.oncontextmenu = doc.onmousedown = doc.onmouseup = window.onkeyup = window.onkeydown = null; allowUserSelect(html); allowUserSelect(body); } clearHandlers(); function defaultHandler(event) { event.returnValue = true; } for (event_type in ['selectstart', 'copy', 'cut', 'paste', 'keydown', 'contextmenu', 'dragstart']) { html.addEventListener(event_type, defaultHandler); body.addEventListener(event_type, defaultHandler); doc.addEventListener(event_type, defaultHandler); } function removeEventAttributes(element) { element.removeAttribute('oncontextmenu'); element.removeAttribute('ondragstart'); element.removeAttribute('onselectstart'); element.removeAttribute('onselect'); element.removeAttribute('oncopy'); element.removeAttribute('onbeforecopy'); element.removeAttribute('oncut'); element.removeAttribute('onpaste'); element.removeAttribute('onclick'); element.removeAttribute('onmousedown'); element.removeAttribute('onmouseup'); } var jQuery = window.jQuery; var $Fn = window.$Fn; if ($Fn) { try { $Fn.freeElement(doc); $Fn.freeElement(body); } catch (e) {} } var jindo = window.jindo; if (jindo) { jindo.$A = null; } function replaceElementEventsWithClone(element) { var clone = element.cloneNode(); while (element.firstChild) { clone.appendChild(element.firstChild); } element.parentNode.replaceChild(clone, element); } function replaceElementsEventsWithClone(elements) { var length = elements.length; for (var i = 0; i < length; ++ i) { replaceElementEventsWithClone(elements[i]); } } var url = doc.URL; var domain_pattern = /^https?:\/\/([^\/]+)/; var result = domain_pattern.exec(url); if (result) { try { var domain = result[1]; if (jQuery) { var $doc = jQuery(doc); var $body = jQuery(body); if ($doc.off) { $doc.off(); $body.off(); jQuery(window).off(); } else { $doc.unbind(); $body.unbind(); jQuery(window).unbind(); } } } catch (e) { console.log(e); } } })();