원신 자동 출석체크
let data = new Array(0);
let cnt = 0;
let set_check = false;
const FS = FileStream;
const path = "sdcard/DataBase/genshin/";
function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {
if (!set_check){
setBasic();
set_check = true;
}
if(msg.startsWith("!등록 ")){ //ltoken값과 ltuid값 등록
try {
let temp = msg.substr(4).split("//");
let pw = temp[0];
let ltoken = temp[1];
let ltuid = temp[2];
data.push({pw:pw,ltoken:ltoken,ltuid:ltuid});
cnt += 1;
FS.write(path+"data.txt", JSON.stringify({data:data}));
replier.reply("등록이 완료되었습니다"+data[cnt-1].pw);
}
catch(e){}
}
if (msg.startsWith("!출석체크 ")){ //출석체크 (OK : 출석체크 성공 | 그 외 : 이미 출석체크 완료 or 토큰이 일치하지 않는 등의 오류)
try {
let pw = msg.substr(6);
let pw_check = -1;
for (let i=0; i<cnt; i++){
if (data[i].pw == pw){
pw_check = i;
break;
}
}
if (pw_check == -1){
replier.reply("존재하지 않는 비밀번호 입니다");
return;
}
let ltoken = data[pw_check].ltoken;
let ltuid = data[pw_check].ltuid;
let check = org.jsoup.Jsoup.connect("https://hk4e-api-os.mihoyo.com/event/sol/sign?act_id=e202102251931481&lang=ko-kr")
.ignoreHttpErrors(true)
.ignoreContentType(true)
.header("Cookie", "ltoken="+ltoken+";ltuid="+ltuid+";")
.post()
.text();
replier.reply(JSON.parse(check).message);
}
catch(e){
replier.reply("출석 체크를 실패하였습니다 "+e.name+":"+e.message);
}
finally{
return;
}
}
}
function setBasic(){
try {
let temp = JSON.parse(FS.read(path+"data.txt"));
cnt = temp.data.length;
data = new Array(cnt);
for (let i=0; i<cnt; i++){
data[i] = temp.data[i];
}
}
catch(e) {
data = new Array(0);
cnt = 0;
}
}
작동 모습
출석체크가 완료된 모습