// ==UserScript==
// @name DAM★とも精密採点データ取得
// @version 1.1
// @description 精密採点AiとDX-Gの採点結果の詳細数値データをテキストファイルで取得
// @author kamken
// @match https://www.clubdam.com/app/damtomo/MyPage.do
// @grant none
// @namespace https://greasyfork.org/users/719226
// ==/UserScript==
'use strict';
function enc(str){
str=str.replaceAll('%','%25');
str=str.replaceAll(' ','%20');
str=str.replaceAll('!','%21');
str=str.replaceAll('#','%23');
str=str.replaceAll('$','%24');
str=str.replaceAll('&','%26');
str=str.replaceAll("'",'%27');
str=str.replaceAll('(','%28');
str=str.replaceAll(')','%29');
str=str.replaceAll('*','%2A');
str=str.replaceAll('+','%2B');
str=str.replaceAll(',','%2C');
str=str.replaceAll('/','%2F');
str=str.replaceAll(':','%3A');
str=str.replaceAll(';','%3B');
str=str.replaceAll('=','%3D');
str=str.replaceAll('?','%3F');
str=str.replaceAll('@','%40');
str=str.replaceAll('[','%5B');
str=str.replaceAll(']','%5D');
return str;
};
(function(){
var tgt=document.getElementById('DamHistory');
tgt.insertAdjacentHTML('beforebegin','<button id=btn_AiDetailSave>Aiりれきデータ取得</button> 現在表示されている履歴の詳細データを保存します。<br>');
document.getElementById('btn_AiDetailSave').addEventListener('click',function(){
var hv=document.getElementById('DamHistoryMarkingAiListResult');
var len=hv.getElementsByClassName('btn_AiDetail').length;
if(len>0){saveai(hv);};
});
tgt.insertAdjacentHTML('beforebegin','<button id=btn_AiSaveDetailSave>Ai保存リストデータ取得</button> 現在表示されている履歴の詳細データを保存します。<br>');
document.getElementById('btn_AiSaveDetailSave').addEventListener('click',function(){
var hv=document.getElementById('DamHistoryMarkingAiSaveListResult');
var len=hv.getElementsByClassName('btn_AiDetail').length;
if(len>0){saveai(hv);};
});
tgt.insertAdjacentHTML('beforebegin','<button id=btn_DxGDetailSave>DX-Gりれきデータ取得</button> 現在表示されている履歴の詳細データを保存します。<br>');
document.getElementById('btn_DxGDetailSave').addEventListener('click',function(){
var hv=document.getElementById('DamHistoryMarkingDxGListResult');
var len=hv.getElementsByClassName('btn_DxGDetail').length;
if(len>0){savedxg(hv);};
});
tgt.insertAdjacentHTML('beforebegin','<button id=btn_DxGSaveDetailSave>DX-G保存リストデータ取得</button> 現在表示されている履歴の詳細データを保存します。<br>');
document.getElementById('btn_DxGSaveDetailSave').addEventListener('click',function(){
var hv=document.getElementById('DamHistoryMarkingDxGSaveListResult');
var len=hv.getElementsByClassName('btn_DxGDetail').length;
if(len>0){savedxg(hv);};
});
tgt.insertAdjacentHTML('beforebegin','<button id=btn_AiComment>Aiコメント一覧取得</button> 精密採点Aiで表示されるコメントの一覧を取得します。<br>');
document.getElementById('btn_AiComment').addEventListener('click',function(){
jQuery.ajax({
type:'GET',
url:'/damtomo/shared/xml/analysisReportCommentAi.xml',
dataType:'html',
success:function(data,textStatus){
var a=document.createElement('a');
a.href='data:text,'+enc(data);
a.download="analysisReportCommentAi.txt";
a.click();
}
});
});
tgt.insertAdjacentHTML('beforebegin','<button id=btn_DxGComment>DX-Gコメント一覧取得</button> 精密採点DX-Gで表示されるコメントの一覧を取得します。<br>');
document.getElementById('btn_DxGComment').addEventListener('click',function(){
jQuery.ajax({
type:'GET',
url:'/damtomo/shared/xml/analysisReportComment.xml',
dataType:'html',
success:function(data,textStatus){
var a=document.createElement('a');
a.href='data:text,'+enc(data);
a.download="analysisReportComment.txt";
a.click();
}
});
});
function saveai(hv){
var i=-1;
var si=setInterval(function(){
i++;
var obj=hv.getElementsByClassName('btn_AiDetail')[i];
jQuery.ajax({
type:'POST',
url:'/app/damtomo/scoring/GetScoringAiListXML.do',
data:'scoringAiId='+obj.href.substr(36)+'&cdmCardNo='+jQuery('#cdmCardNo').val()+'&cdmToken='+jQuery('#cdmToken').val()+'&detailFlg=1&enc='+encname,
dataType:'html',
success:function(xml){
var a=document.createElement('a');
a.href='data:text,'+enc(xml);
a.download='ai_'+obj.href.substr(36)+'.txt';
a.click();
}
});
if(i>=hv.getElementsByClassName('btn_AiDetail').length-1){
clearInterval(si);
};
},10);
};
function savedxg(hv){
var i=-1;
var si=setInterval(function(){
i++;
var obj=hv.getElementsByClassName('btn_DxGDetail')[i];
jQuery.ajax({
type:'POST',
url:'/app/damtomo/scoring/GetScoringDxgListXML.do',
data:'scoringDxgId='+obj.href.substr(36)+'&cdmCardNo='+jQuery('#cdmCardNo').val()+'&cdmToken='+jQuery('#cdmToken').val()+'&detailFlg=1&enc='+encname,
dataType:'html',
success:function(xml){
var a=document.createElement('a');
a.href='data:text,'+enc(xml);
a.download='dxg_'+obj.href.substr(36)+'.txt';
a.click();
}
});
if(i>=hv.getElementsByClassName('btn_DxGDetail').length-1){
clearInterval(si);
};
},10);
};
})();