초기 세팅
This commit is contained in:
50
bot.js
Normal file
50
bot.js
Normal file
@@ -0,0 +1,50 @@
|
||||
const db = require('./db');
|
||||
const AESCipher = require('./crypto');
|
||||
// const Attendance = require('./attendance'); // 실제 자동화 로직 파일
|
||||
|
||||
async function runBot() {
|
||||
console.log(`[${new Date().toISOString()}] 자동 출석 체크를 시작합니다...`);
|
||||
|
||||
try {
|
||||
const limit = process.env.GET_DOMAIN_COUNT || 5;
|
||||
|
||||
const accountsToProcess = await db.query(`
|
||||
SELECT
|
||||
dl.DOMAIN_ADDRS,
|
||||
dal.*
|
||||
FROM DOMAIN_ACCNT_LIST dal
|
||||
JOIN DOMAIN_LIST dl ON dal.DOMAIN_SEQ_ID = dl.DOMAIN_SEQ_ID
|
||||
WHERE dal.USE_YN = 'Y'
|
||||
AND dl.USE_YN = 'Y'
|
||||
AND dal.ATNDNC_STRT_DTTM < datetime('now', 'localtime')
|
||||
AND dal.ATNDNC_STTS_CD = '1'
|
||||
LIMIT ?
|
||||
`, [limit]);
|
||||
|
||||
if (accountsToProcess.length === 0) {
|
||||
console.log("처리할 계정이 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`총 ${accountsToProcess.length}개의 계정을 처리합니다. (최대 ${limit}개)`);
|
||||
|
||||
const tasks = accountsToProcess.map(account => {
|
||||
account.DECRYPTED_PSWRD = AESCipher.decrypt(account.DOMAIN_ACCNT_PSWRD);
|
||||
|
||||
// TODO: 실제 자동화 로직(Puppeteer)을 실행하는 부분
|
||||
// 예: return new Attendance(account).run();
|
||||
|
||||
console.log(`[작업 실행] 계정: ${account.DOMAIN_ACCNT_ID} / 사이트: ${account.DOMAIN_ADDRS}`);
|
||||
return Promise.resolve(); // 임시로 즉시 완료
|
||||
});
|
||||
|
||||
await Promise.all(tasks);
|
||||
|
||||
console.log("모든 계정 처리가 완료되었습니다.");
|
||||
|
||||
} catch (error) {
|
||||
console.error("봇 실행 중 오류 발생:", error);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { runBot };
|
||||
Reference in New Issue
Block a user