Skip to content

Instantly share code, notes, and snippets.

@sohsatoh
Created April 29, 2020 13:37
Show Gist options
  • Save sohsatoh/07be936e7ce7387f5f328f4989745e43 to your computer and use it in GitHub Desktop.
Save sohsatoh/07be936e7ce7387f5f328f4989745e43 to your computer and use it in GitHub Desktop.
UNIVERSAL PASSPORTから、再履修科目の検索、評定一覧が表示できるスクリプト
document.body.appendChild((function(){
var jq = document.createElement("script");
jq.src = '//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js';
return jq;
})());
if(confirm('OKで評定検索、キャンセルで再履修科目の検索')){
searchGrade();
}else{
searchRepeat();
}
function searchGrade() {
var gradeDict = {};
$.each($('.tdHyokaList'), function(i, val) {
var grade = $(val).text();
if(grade != ""){
if(grade in gradeDict) {
gradeDict[grade]['授業数']++;
gradeDict[grade]['単位数'] += Number($(this).parent().find('.tdTaniList').text());
} else {
gradeDict[grade] = {};
gradeDict[grade]['授業数'] = 1;
gradeDict[grade]['単位数'] = Number($(this).parent().find('.tdTaniList').text());
}
}
});
alert(JSON.stringify(gradeDict,null,'\t'));
}
function searchRepeat() {
var classDict = {};
$.each($('.tdKamokuList'), function(i, val) {
if($(this).parents('.kamokuList').parent().find('.tdKyoshokuinNameList').text() != ''){
var className = $(val).text();
var gradeNum = $(this).parents('.kamokuList').parent().find('.tdTaniList').text();
if(gradeNum) {
console.log(className + ' is deleted');
if(className in classDict) delete classDict[className];
}
else classDict[className] = gradeNum;
}
});
console.log(Object.keys(classDict));
alert('※必修かどうかは判定されません!\n' + Object.keys(classDict));
}
@sohsatoh
Copy link
Author

ブックマークレット

javascript:(function()%7Bdocument.body.appendChild((function()%7B%0A%20%20%20%20var%20jq%20%3D%20document.createElement(%22script%22)%3B%0A%20%20%20%20jq.src%20%3D%20'%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fjquery%2F3.2.1%2Fjquery.min.js'%3B%0A%20%20%20%20return%20jq%3B%0A%7D)())%3B%0A%0Aif(confirm('OK%E3%81%A7%E8%A9%95%E5%AE%9A%E6%A4%9C%E7%B4%A2%E3%80%81%E3%82%AD%E3%83%A3%E3%83%B3%E3%82%BB%E3%83%AB%E3%81%A7%E5%86%8D%E5%B1%A5%E4%BF%AE%E7%A7%91%E7%9B%AE%E3%81%AE%E6%A4%9C%E7%B4%A2'))%7B%0A%20%20%20%20searchGrade()%3B%0A%7Delse%7B%0A%20%20%20%20searchRepeat()%3B%0A%7D%0A%0Afunction%20searchGrade()%20%7B%0Avar%20gradeDict%20%3D%20%7B%7D%3B%0A%24.each(%24('.tdHyokaList')%2C%20function(i%2C%20val)%20%7B%0A%20%20%20%20var%20grade%20%3D%20%24(val).text()%3B%0A%20%20%20%20if(grade%20!%3D%20%22%22)%7B%0A%20%20%20%20%20%20%20%20if(grade%20in%20gradeDict)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20gradeDict%5Bgrade%5D%5B'%E6%8E%88%E6%A5%AD%E6%95%B0'%5D%2B%2B%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20gradeDict%5Bgrade%5D%5B'%E5%8D%98%E4%BD%8D%E6%95%B0'%5D%20%2B%3D%20Number(%24(this).parent().find('.tdTaniList').text())%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20gradeDict%5Bgrade%5D%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20gradeDict%5Bgrade%5D%5B'%E6%8E%88%E6%A5%AD%E6%95%B0'%5D%20%3D%201%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20gradeDict%5Bgrade%5D%5B'%E5%8D%98%E4%BD%8D%E6%95%B0'%5D%20%3D%20Number(%24(this).parent().find('.tdTaniList').text())%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D)%3B%0Aalert(JSON.stringify(gradeDict%2Cnull%2C'%5Ct'))%3B%0A%7D%0A%0Afunction%20searchRepeat()%20%7B%0A%20%20%20%20var%20classDict%20%3D%20%7B%7D%3B%0A%20%20%20%20%24.each(%24('.tdKamokuList')%2C%20function(i%2C%20val)%20%7B%0A%20%20%20%20%20%20%20%20if(%24(this).parents('.kamokuList').parent().find('.tdKyoshokuinNameList').text()%20!%3D%20'')%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20className%20%3D%20%24(val).text()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20gradeNum%20%3D%20%24(this).parents('.kamokuList').parent().find('.tdTaniList').text()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if(gradeNum)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log(className%20%2B%20'%20is%20deleted')%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(className%20in%20classDict)%20delete%20classDict%5BclassName%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20classDict%5BclassName%5D%20%3D%20gradeNum%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D)%3B%0A%20%20%20%20console.log(Object.keys(classDict))%3B%0A%20%20%20%20alert('%E2%80%BB%E5%BF%85%E4%BF%AE%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%81%AF%E5%88%A4%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93!%5Cn'%20%2B%20Object.keys(classDict))%3B%0A%7D%7D)()%3B

@sohsatoh
Copy link
Author

大学によって違う気はする

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment