ZJU Tronclass Helper

Download Tronclass Courseware

当前为 2020-06-26 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name ZJU Tronclass Helper
  3. // @namespace ncj.wiki
  4. // @version 2.3.5
  5. // @license MIT
  6. // @description Download Tronclass Courseware
  7. // @author NCJ
  8. // @match *://courses.zju.edu.cn/course/*
  9. // @grant none
  10. // @require https://cdn.bootcss.com/jquery/3.5.0/jquery.min.js
  11. // ==/UserScript==
  12.  
  13. function nice_comment() {
  14. var good_words = ['挺好的', '很不错', '技术上还可以完善一下', '挺棒的', '看好你们', '视频还有改进的空间', '点子很赞', '加油'];
  15. good_words.sort(() => Math.random() - 0.5);
  16. var cnt = Math.floor(Math.random() * (good_words.length - 1)) + 1;
  17. return good_words.slice(0, cnt).join(' ') + '!';
  18. }
  19.  
  20. $(document).bind('DOMSubtreeModified', function() {
  21. if ($('#Tronclass_Downloader').length == 0 && $('#file-previewer-with-note > div > div > div.header.clearfix').length) {
  22. $('#file-previewer-with-note > div > div > div.header.clearfix').append('<input type="button" value="Download" id="Tronclass_Downloader">');
  23. $("#Tronclass_Downloader").css("position", "relative").css("left", 10);
  24. $('#Tronclass_Downloader').click(function(){
  25. window.open(decodeURIComponent(document.getElementById('pdf-viewer').src.split("?file=")[1]));
  26. });
  27. }
  28.  
  29. if ($('#Tronclass_Downloader_video').length == 0 && $('video').length && $('video')[0].children.length == 3 && $('video')[0].children[0].getAttribute('src').indexOf('/api') == 0) {
  30. var v=$('video')[0];
  31. for (var i of v.children) {
  32. $(v.parentNode.parentNode).prepend(`<a href="${i.getAttribute('src')}" id="Tronclass_Downloader_video">\t${i.getAttribute('label')}\t</a>`);
  33. }
  34. }
  35.  
  36. if ($('#Tronclass_Random_Nice_Comment').length == 0 && $('.comment').length) {
  37. $('#give-score > div > div.main-area > div.main-content > div.right-section > form > div.form-title.ng-scope').append('<input type="button" value="随机生成" id="Tronclass_Random_Nice_Comment">');
  38. $('#Tronclass_Random_Nice_Comment').click(function() {
  39. $('textarea').val(nice_comment());
  40. angular.element($('textarea')[1]).triggerHandler('input');
  41. $('input[name="score"]').val(Math.floor(Math.random() * (100 - 85))+ 85);
  42. angular.element($('input[name="score"]')).triggerHandler('change');
  43. });
  44. }
  45. });