2505회 채점기준표 / 채점자료 추가 / xapth전처리 코드수정

This commit is contained in:
2025-05-28 17:35:53 +09:00
parent e95ec9c050
commit 3a708a28dc
36 changed files with 4321 additions and 57 deletions

View File

@@ -11,12 +11,12 @@ const getGpdpScore = require('./gpdpScoring.js');
const getToday = require('./getToday.js');
const todayDate = getToday();
const examRound = '2504';
// const dic_or_dpi = 'DIC'
const dic_or_dpi = 'DPI'
const examRound = '2505';
const dic_or_dpi = 'DIC'
// const dic_or_dpi = 'DPI'
const examTypes = [
// 'A',
'B',
'A',
// 'B',
// 'C',
// 'D'
];
@@ -191,6 +191,8 @@ function getGmepScore(gmepData, scoringJson, index) {
const videoStartTime = scoringData.videoStartTime;
const openingStartTime = scoringData.openingStartTime;
const image = scoringData[key].image;
console.log(`example number: ${key}`)
// xpath 전처리
@@ -199,13 +201,24 @@ function getGmepScore(gmepData, scoringJson, index) {
const clipIndex = getClipIndexBySubtitle(gmepXmlDoc, search);
// const subtitleOrder = type === 'video' ? 2 : type === 'opening' ? 1 : null;
// 2503회 문제오류 처리를 위한 임시 변경
const subtitleOrder = (type === 'video' || type === 'videoIsExist') ? 2 : (type === 'opening' ? 1 : null);
const subtitleOrder = type === 'video' ? 2 : type === 'opening' ? 1 : null;
const startTime = type === 'video' ? videoStartTime : type === 'opening' ? openingStartTime : null;
[ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{subtitleIndex}/g, subtitleIndex));
[ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{subtitleOrder}/g, subtitleOrder));
[ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{startTime}/g, startTime));
[ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{clipIndex}/g, clipIndex));
let xpathList = [ele, ele2, ele3, existEle];
xpathList = xpathList.map(e => e?e
.replace(/{subtitleIndex}/g, subtitleIndex)
.replace(/{subtitleOrder}/g, subtitleOrder)
.replace(/{startTime}/g, startTime)
.replace(/{clipIndex}/g, clipIndex)
.replace(/{image}/g, image)
:e
);
[ele, ele2, ele3, existEle] = xpathList;
// [ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{subtitleIndex}/g, subtitleIndex));
// [ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{subtitleOrder}/g, subtitleOrder));
// [ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{startTime}/g, startTime));
// [ele, ele2, ele3] = [ele, ele2, ele3].map(e => e?.replace(/{clipIndex}/g, clipIndex));
// search 값이 undefined 아니면 ele의 {search}부분을 search로 치환
/**
@@ -511,23 +524,6 @@ function getGmepScore(gmepData, scoringJson, index) {
scoringResult[key] = 0;
}
}
else if (type == "videoIsExist") {
const result = ele ? xpath.select(ele, gmepXmlDoc) : [];
const result2 = ele2 ? xpath.select(ele2, gmepXmlDoc) : [];
const allResults = [...[result], ...[result2]];
// 정답이 존재하는지 확인
const isMatch = allResults.some(result => rightAnswer.includes(result));
if (isMatch) {
totalScore += point;
scoringResult[key] = point;
console.log(`🚀 ~ result.forEach ~ 정답:${rightAnswer} / 작성답안:${allResults}`);
}
else {
scoringResult[key] = 0;
console.log("🚀 ~ result.forEach ~ 오답:", rightAnswer)
}
}
else {
try {