您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
ユニットの達成状況を追加
当前为
// ==UserScript== // @name UnipaForFI // @namespace https://twitter.com/akameco // @description ユニットの達成状況を追加 // @include https://portal.sa.dendai.ac.jp/up/faces/up/jg/Jga00201A.jsp // @include https://portal.sa.dendai.ac.jp/up/faces/up/co/Com02501A.jsp // @include https://portal.sa.dendai.ac.jp/up/faces/up/po/Poa00601A.jsp // @include https://portal.sa.dendai.ac.jp/up/faces/up/km/Kmd00201A.jsp // @include https://portal.sa.dendai.ac.jp/up/faces/up/km/Kma00401A.jsp // @include https://portal.sa.dendai.ac.jp/up/faces/up/km/Kma00203A.jsp // @version 1 // @grant none // ==/UserScript== (function ($) { var units = { cg: { now: 0, complete: 0, count: 0, list: [ 'CGモデリングおよび演習', 'CGレンダリングおよび演習', '形状処理および演習', 'コンピュータアニメーションおよび演習' ] }, vs: { now: 0, complete: 0, count: 0, list: [ '画像処理', '画像処理演習', '音声・音響情報処理', 'コンピュータ音楽作品制作演習', 'バーチャルリアリティ', '音声・音響情報処理' ] }, mi: { now: 0, complete: 0, count: 0, list: [ 'ヒューマンインタラクション及び演習', '人間情報システムおよび演習', 'メディア情報学', 'インタラクションデザイン' ] }, wi: { now: 0, complete: 0, count: 0, list: [ 'サーバ設計論', '情報アクセスと知的処理', 'サーバプログラミング演習', 'Web情報システム演習', 'データベースプログラミング演習' ] }, sn: { now: 0, complete: 0, count: 0, list: [ '情報セキュリティの基礎と暗号技術', 'ネットワークプログラミング', 'ネットワークプログラミング演習', 'ネットワークセキュリティおよび演習' ] }, st: { now: 0, complete: 0, count: 0, list: [ 'サーバ設計論', 'メディア情報学', 'サーバプログラミング演習', 'ソフトウェア設計', '情報システム論', 'ソフトウェア分析・モデリング' ] } }; // 科目を取得 var myUnitList = $("td .tdKamokuList"); // 評価を取得 var hyokaList = $("td .tdHyokaList"); // 単位を習得 var taniList = $("td .tdTaniList"); // 単位認定可能な評価範囲 var hyoka = ["S","A","B","C","RS","RA","RB","RC","RN"]; for(var unitKey in units){ var unit = units[unitKey]; var unitList = unit["list"]; for (var i=0; i < unitList.length; ++i) { for(var j=0; j < myUnitList.size(); ++j){ var myUnitText = myUnitList[j].textContent; var myHyokaText = hyokaList[j].textContent; if(unitList[i] == myUnitText){ // 単位数 var n = parseInt(taniList[i].textContent); // 合計単位 units[unitKey]["count"] += n; // 取得済み単位 if(hyoka.indexOf(myHyokaText) >= 0){ units[unitKey]["complete"] += n; // 履修中の単位 }else if(myHyokaText == ""){ units[unitKey]["count"] += n; } } } } } // 要素の追加 var table = $("table.outline tbody")[0]; // unipaは本当に最悪なのでtdを追加しなくちゃレイアウトが崩れる var titleText = "<tr><td></td><td class='subTitleArea'>ユニット達成度</td><td></td><tr>"; var tableText = "\ <tr>\ <td></td>\ <td>\ <table class='singleTableLine'>\ <tbody>\ <tr>\ <th class='headTaniShutoku'>ユニット分類</th>\ <td class='dataTaniShutokuKamoku'>CG</th>\ <td class='dataTaniShutokuKamoku'>VS</th>\ <td class='dataTaniShutokuKamoku'>MI</th>\ <td class='dataTaniShutokuKamoku'>WI</th>\ <td class='dataTaniShutokuKamoku'>ST</th>\ <td class='dataTaniShutokuKamoku'>SN</th>\ </tr>\ <tr>\ <th class='headTaniShutoku'>履修済単位</th>\ <td class='dataTaniShutokuKamoku'>" + units.cg.complete + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.vs.complete + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.mi.complete + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.wi.complete + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.st.complete + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.sn.complete + "</th>\ </tr>\ <tr>\ <th class='headTaniShutoku'>履修中単位</th>\ <td class='dataTaniShutokuKamoku'>" + units.cg.now + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.vs.now + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.mi.now + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.wi.now + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.st.now + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.sn.now + "</th>\ </tr>\ <tr>\ <th class='headTaniShutoku'>ユニット合計</th>\ <td class='dataTaniShutokuKamoku'>" + units.cg.count + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.vs.count + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.mi.count + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.wi.count + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.st.count + "</th>\ <td class='dataTaniShutokuKamoku'>" + units.sn.count + "</th>\ </tr>\ </tbody>\ </table>\ </td>\ <td></td>\ </tr>\ "; var link = "<tr><td></td><td><a href='http://www.im.dendai.ac.jp/curriculum.html' target='_blank'>ユニット詳細(学科ページ)</a></td></tr>" $(table).append(titleText); $(table).append(tableText); $(table).append(link); // 動作確認 var check = function () { for(var unitKey in units){ var unit = units[unitKey]; var unitList = unit["list"]; var unitComplete = unit["complete"]; var unitNow = unit["now"]; console.log(unitList); console.log("履修済み" + unitComplete); console.log("履修中" + unitNow); } }; })(jQuery);