// ==UserScript== // @name ScombZ-Utilities-for-UserScript // @namespace https://twitter.com/yudai1204 // @version 3.1.1 // @description より快適なScombZライフのために、サイドメニュー、テスト、ログイン等を改善します // @author @yudai1204 // @match https://scombz.shibaura-it.ac.jp/* // @match https://adfs.sic.shibaura-it.ac.jp/adfs/ls/* // @match http://syllabus.sic.shibaura-it.ac.jp/* // @match https://scomb.shibaura-it.ac.jp/* // @icon https://scombz.shibaura-it.ac.jp/favicon.ico // @updateURL https://raw.githubusercontent.com/yudai1204/ScombZ-Utilities/dev/scombz-utilities.user.js // @downloadURL https://raw.githubusercontent.com/yudai1204/ScombZ-Utilities/dev/scombz-utilities.user.js // @grant none // @license MIT // ==/UserScript== //defaultOptions const defaultOptions = { year : null, fac : null, clickLoginBtn: true, adfsSkip: true, exitSidemenu: true, styleSidemenu: true, styleExamBtn: true, styleExamImg: false, addSubTimetable: true, changeReportBtn: true, styleDialog: false, hideCompletedReports: true, syllBtn: false, changeLogout: true, setMaxWidth: true, pageTopBtn : true, mouseDown: true, tasklistDisplay: true, styleNowPeriod: true, displayName: false, layoutHome:true, nickname: '', timesBtnValue:'mode1', sliderBarMax: 600, tasklistTranslate: 0, fixHeadShadow: true, deadlinemode: 'relative-absoluteLong', notepadMode: true, ddSubmission: false, headLinkTo: "/portal/home", updateClear: false, maxTaskDisplay: 15, darkmode : 'relative', dadbugFix: true, defaultInputName: 'AA00000_山田太郎', adjustTimetableData : { eraseSat : false, erase6: false, erase7: false, dispClassroom : false, timetableCentering : false }, remomveDirectLink : true, maxWidthPx:{ subj: 1280, lms: 1280 }, TaskGetTime: 1, tasklistData: [], surveyListData: [], specialSubj: 0, tasklistTranslate: 0, deadlinemode: 'absolute-relative', maxTaskDisplay: 16, hiddenTasks: [] }; //localget localset関数 function utlstorageGet(object,func){ const storageData = JSON.parse(decodeURIComponent(localStorage.getItem("scombzUtilities:settings"))); console.log("デフォルトのデータ"); console.log(object); console.log("保存されているのデータ"); console.log(storageData); console.log("結合したデータ"); console.log(Object.assign(object,storageData)); func(Object.assign(object,storageData)); } function utlstorageSet(object,func){ const storageData = JSON.parse(decodeURIComponent(localStorage.getItem("scombzUtilities:settings"))); const newData = encodeURIComponent(JSON.stringify(Object.assign(storageData,object))); localStorage.setItem("scombzUtilities:settings",newData); func(); } /* ======================= メイン ======================= */ const $$version = "3.0.1"; //バージョン const $$reacquisitionMin = 20; //再取得までの時間(分) //初期設定ロード if(localStorage.getItem("scombzUtilities:settings") === null){ localStorage.setItem("scombzUtilities:settings",encodeURIComponent(JSON.stringify(defaultOptions))); console.log("初期化されたデータを読み込みました。"); } utlstorageGet(defaultOptions, function(items){ if(location.hostname == "scomb.shibaura-it.ac.jp"){ console.log("旧Scomb"); scombLogin(); } if(location.hostname == "adfs.sic.shibaura-it.ac.jp"){ console.log("adfs"); //ADFSだったらadfs.jsに飛ばす adfsLoaded(); } if(location.hostname == "syllabus.sic.shibaura-it.ac.jp"){ //シラバスだったらsyllabus.jsに飛ばす syllabusLoaded(items.year , items.fac); } if(location.hostname == 'scombz.shibaura-it.ac.jp'){ //設定ボタン utilitiesSettings(); //帰ってきて芝猫 topShibaneko(); //ページ上部にある固定ヘッダのキモい影を直す if(items.fixHeadShadow === true){ fixHeadShadow(); } //HOMEをレイアウト if(items.layoutHome === true){ layoutHome(); } //ログインボタン自動クリック if(items.clickLoginBtn === true){ clickLoginBtn(); } //サイドメニューを閉じる if(items.exitSidemenu === true){ exitSidemenu(); } //サイドメニューのスタイル変更 if(items.styleSidemenu === true){ styleSidemenu(); //メニューを展開したときの時間割 (オフだった場合はグレーレイヤーだけ表示) , メニュー横に課題一覧を表示 subTimetable(items.addSubTimetable , items.tasklistDisplay , $$version,$$reacquisitionMin); } //課題一覧取得 if( items.tasklistDisplay === true ){ getTaskLists($$reacquisitionMin); surveyLinkScroll(); }; //テストのスタイル変更 if(items.styleExamBtn === true){ styleExam(); styleSurveys(); } if(items.styleExamImg === true){ styleExamImg(); } //完了したレポートをカレンダーに表示しない if(items.hideCompletedReports === true){ hideCompletedReports(); } //ダイアログを大きくする if(items.styleDialog === true){ styleDialog(); } //レポート提出ボタンの変更 if(items.changeReportBtn === true){ changeReportBtn(); } //ログアウト画面の変更 if(items.changeLogout === true){ changeLogout(); } //画面横幅最大値の変更 if(items.setMaxWidth === true){ maxWidthOnSubjPage(); } //ページトップボタンの表示有無 if(items.pageTopBtn === true){ remomvePageTop(); } //ホイールクリックをできる機能 if(items.mouseDown === true){ mouseEvents(); } //シラバスリンクボタンを表示 if(items.syllBtn === true){ //学年、学部が未入力の時はエラー表示 if(items.year !== null && items.fac !== null){ displaySyllabus(items.year , items.fac); }else{ displaySyllabusError(); } } //現在の授業を目立たせる if(items.styleNowPeriod === true){ styleNowPeriod(); } //表示名を変更 if(items.displayName === true){ removeName(); } //メモ機能 if(items.notepadMode === true){ notepad(items.tasklistDisplay); addMarkdownToSubj(); } //LMSの調整 adjustTimetable(items.adjustTimetableData, items.addSubTimetable); //D&Dで課題提出 if(items.ddSubmission === true){ ddSub(); } //通知を削除するボタン if(items.updateClear === true){ updateClear(); } //ダイレクトリンクを消す if(items.remomveDirectLink === true){ remomveDirectLink(); } //D&D状態での課題削除バグの修正 if(items.dadbugFix === true){ submissionBugFix(); } //出席表示の削除 if(items.attendance !== 'none'){ attendanceRemove(items.attendance); } //アンケートに過去のアンケートを表示 if(items.pastSurvey === true){ pastSurvey(); } //ダークモードの適用 darkmodeLayout(items.darkmode); //クリックして名前隠す clickHideName(); console.log('すべての機能の実行が完了しました'); } }); /* ====================================================== */ //SETTINGS PAGE function utilitiesSettings(){ const pageBanner = document.getElementById("page_head"); if(pageBanner){ const spControlMenu = pageBanner.querySelector(".page-head-navi-sp"); const pcControlMenu = pageBanner.querySelector(".page-head-navi"); if(spControlMenu){ spControlMenu.querySelector(".control-menu").insertAdjacentHTML("afterBegin",`
詳細は公式サイトへ
こちらの教科をお探しですか?
${$suggest} `); }, function(){ console.log("読み込み失敗"); } ); }); }else if(location.href.includes("Matrix")){ //見やすくする by とくめいっ! console.log("シラバスのスタイルを変更します"); window.addEventListener('load', function(){ const $list1 = document.querySelector(".table_sticky thead tr td"); if($list1){ $list1.style.position = "static"; let li = document.querySelectorAll(".table_sticky thead:nth-child(2) tr:nth-child(1) th"); for (const l of li){ l.style.position = "static"; } } const $list2 = document.querySelectorAll(".table_sticky thead:nth-child(2) tr:nth-child(2) th"); if($list2[0]){ for (const li2 of $list2){ li2.style.position = "static"; } } console.log("変更が完了しました"); }); } return; } function gakkaIDtoStr(gakkaID) { let str = ""; if(gakkaID.includes('A')){ str += ''+(u?e:D(e,!0))+"
\n":""+(u?e:D(e,!0))+"
\n"},t.blockquote=function(e){return"\n"+e+"\n"},t.html=function(e){return e},t.heading=function(e,t,u,n){return this.options.headerIds?"
"+e+"
\n"},t.table=function(e,t){return""+e+"
"},t.br=function(){return this.options.xhtml?""+D(e.message+"",!0)+"";throw e}}I.options=I.setOptions=function(e){return d(I.defaults,e),e=I.defaults,r.defaults=e,I},I.getDefaults=e,I.defaults=r.defaults,I.use=function(){for(var e=arguments.length,t=new Array(e),u=0;u
"+D(e.message+"",!0)+"";throw e}},I.Parser=R,I.parser=R.parse,I.Renderer=$,I.TextRenderer=S,I.Lexer=z,I.lexer=z.lex,I.Tokenizer=w,I.Slugger=T;var A=(I.parse=I).options,P=I.setOptions,Q=I.use,U=I.walkTokens,M=I.parseInline,N=I,X=R.parse,G=z.lex;r.Lexer=z,r.Parser=R,r.Renderer=$,r.Slugger=T,r.TextRenderer=S,r.Tokenizer=w,r.getDefaults=e,r.lexer=G,r.marked=I,r.options=A,r.parse=N,r.parseInline=M,r.parser=X,r.setOptions=P,r.use=Q,r.walkTokens=U,Object.defineProperty(r,"__esModule",{value:!0})}); JCT11280=Function('var a="zKV33~jZ4zN=~ji36XazM93y!{~k2y!o~k0ZlW6zN?3Wz3W?{EKzK[33[`y|;-~j^YOTz$!~kNy|L1$353~jV3zKk3~k-4P4zK_2+~jY4y!xYHR~jlz$_~jk4z$e3X5He<0y!wy|X3[:~l|VU[F3VZ056Hy!nz/m1XD61+1XY1E1=1y|bzKiz!H034zKj~mEz#c5ZA3-3X$1~mBz$$3~lyz#,4YN5~mEz#{ZKZ3V%7Y}!J3X-YEX_J(3~mAz =V;kE0/y|F3y!}~m>z/U~mI~j_2+~mA~jp2;~m@~k32;~m>V}2u~mEX#2x~mBy+x2242(~mBy,;2242(~may->2&XkG2;~mIy-_2&NXd2;~mGz,{4<6:.:B*B:XC4>6:.>B*BBXSA+A:X]E&E<~r#z+625z s2+zN=`HXI@YMXIAXZYUM8X4K/:Q!Z&33 3YWX[~mB`{zKt4z (zV/z 3zRw2%Wd39]S11z$PAXH5Xb;ZQWU1ZgWP%3~o@{Dgl#gd}T){Uo{y5_d{e@}C(} WU9|cB{w}bzvV|)[} H|zT}d||0~{]Q|(l{|x{iv{dw}(5}[Z|kuZ }cq{{y|ij}.I{idbof%cu^d}Rj^y|-M{ESYGYfYsZslS`?ZdYO__gLYRZ&fvb4oKfhSf^d
rsk0Ym[jrE]RYiZTr*YJ{Ge|%-lf|y(`=[t}E6{k!|3)}Zk} ][G{E~cF{u3U.rJ|a9p#o#ZE|?|{sYc#vv{E=|LC}cu{N8`/`3`9rt[4|He{cq|iSYxY`}V |(Q|t4{C?]k_Vlvk)BZ^r<{CL}#h}R+[<|i=}X|{KAo]|W<`K{NW|Zx}#;|fe{IMr<|K~tJ_x}AyLZ?{GvbLnRgN}X&{H7|x~}Jm{]-| GpNu0}.ok>|c4{PYisrDZ|fwh9|hfo@{H~XSbO]Odv]%`N]b1Y]]|eIZ}_-ZA]aj,>eFn+j[aQ_+]h[J_m_g]%_wf.`%k1e#Z?{CvYu_B^|gk`Xfh^M3`afGZ-Z|[m{L}|k3cp[it ^>YUi~d>{T*}YJ{Q5{Jxa$hg|%4`}|LAgvb }G}{P=|<;Ux{_skR{cV|-*|s-{Mp|XP|$G|_J}c6cM{_=_D|*9^$ec{V;|4S{qO|w_|.7}d0|/D}e}|0G{Dq]Kdp{}dfDi>}B%{Gd|nl}lf{C-{y}|ANZr}#={T~|-(}c&{pI|ft{lsVP}){|@u}!W|bcmB{d?|iW|:dxj{PSkO|Hl]Li:}VYk@|2={fnWt{M3`cZ6|)}|Xj}BYa?vo{e4|L7|B7{L7|1W|lvYO}W8nJ|$Vih|{T{d*_1|:-n2dblk``fT{Ky|-%}m!|Xy|-a{Pz}[l{kFjz|iH}9N{WE{x,|jz}R {P|{D)c=nX|Kq|si}Ge{sh|[X{RF{t`|jsr*fYf,rK|/9}$}}Nf{y!1|