원신 자동 출석체크

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;

}

}

작동 모습

출석체크가 완료된 모습