fix loop logic

This commit is contained in:
SeungJu Lim 2024-03-20 20:45:27 +09:00
parent 184f455a6c
commit 39b863ed0a
2 changed files with 13 additions and 12 deletions

View File

@ -171,12 +171,12 @@ class cgvGetter {
return result
}
async main_dev(mgCD = '20035290', ymd = null, dateAft = moment('2024-03-09', 'YYYY-MM-DD')) {
async main_dev(mgCD = '20035290', ymd = null, dateAft = moment()) {
const generalSeatCnt = 2;
const retryTime = 60 * 1000;
const retryTime = 50 * 1000;
// const startTime = moment('2024-02-05');
// const endTIme = moment('2024-02-12');
const tmRange = { start: '1700', end: '2000' };
const tmRange = { start: '1600', end: '2000' };
let targetYMD = null;
let targetSchedule = null;
@ -209,23 +209,23 @@ class cgvGetter {
const gScheduleList = JSON.parse(result.d);
// 예외 - CGV 응답 코드 확인
if (gScheduleList.ResultCode !== "00000" || gScheduleList.ResultMessage !== "성공") {
logger['debug'](`>> ResultCode: ${gScheduleList.ResultCode} | ResultMessage: ${gScheduleList.ResultMessage}`);
logger['debug'](`ResultCode: ${gScheduleList.ResultCode} | ResultMessage: ${gScheduleList.ResultMessage}`);
throw new Error(`\t> Invalid schedule response`);
}
// 예외 - 영화 스케줄 존재 여부 확인
if (gScheduleList.ResultSchedule.ListPlayYmd.length === 0 && gScheduleList.ResultSchedule.ScheduleList.length === 0) {
logger['debug'](`>> ResultSchedule: ${gScheduleList.ResultSchedule}`);
logger['debug'](`ResultSchedule: ${gScheduleList.ResultSchedule}`);
throw new Error(`\t> Schedule not found`);
}
// 날짜 추출 - YMD 문자열 moment로 변환
const listPlayYmd = gScheduleList.ResultSchedule.ListPlayYmd.split('|').map(YMD => util.YMDConvert(YMD));
// 예매 가능한 일정만 필터
const filteredDates = util.dayFilter(listPlayYmd);
const filteredDates = util.dayFilter(listPlayYmd); // 우선 주말로 세팅돼있다.
const targetDates = filteredDates.filter(date => date.isSameOrAfter(dateAft));
//==================================================
// requset - 날짜 찾았을 때
// request - 날짜 찾았을 때
//==================================================
if (targetYMD === null && targetDates.length !== 0) {
targetYMD = util.YMDConvert(targetDates[0]);
@ -233,13 +233,13 @@ class cgvGetter {
continue
//==================================================
// requset - 시간표 찾았을 때
// request - 시간표 찾았을 때
//==================================================
} else if (targetYMD !== null && targetSchedule === null) {
/* ++++++++++++ 남은 좌석 수 필터링 추가 'SeatRemainCnt' */
// 상영시간표 추출
const scheduleList = gScheduleList.ResultSchedule.ScheduleList;
const seatFilteredSchedule = scheduleList.filter(schedule => schedule.SeatRemainCnt >= 550);
const seatFilteredSchedule = scheduleList.filter(schedule => schedule.SeatRemainCnt >= 550); // 550석 이상만 필터링.
const tmFilteredSchedule = seatFilteredSchedule.filter(schedule => {
const scheduleTm = moment(schedule.PlayStartTm, 'HHmm');
const t_start = moment(tmRange.start, 'HHmm');
@ -261,7 +261,7 @@ class cgvGetter {
await __INFO__(`\t 조건 - 날짜: ${targetSchedule.PlayYmd} / 시간: ${targetSchedule.PlayStartTm}`);
//==================================================
// requset - 예매 시작
// request - 예매 시작
//==================================================
// 추출한 영화 정보 -> 페이로드로 재구성
const tcktDate = targetSchedule;
@ -313,7 +313,7 @@ class cgvGetter {
const url_seat = this.seatAspx + seatQuery;
//==================================================
// requset - 로그인 쿠키
// request - 로그인 쿠키
//==================================================
// 로그인 세션 쿠키 추출

View File

@ -17,7 +17,8 @@ const YMDConvert = (YYMMDD, format = 'YYYYMMDD') => {
const dayFilter = (dates) => {
return dates.filter(date => {
const day = date.day();
return day === 0 // || day === 1;
// return day === 6 || day === 1;
day === 1;
// sunday: 0 ~ saturday: 6
});
}