(3-1) 미디어소스순서 수정 / 이미지 클립 트랜지션 xpath 수정

This commit is contained in:
2025-02-18 17:47:30 +09:00
parent 6937b34bbc
commit 87aadb3764
20 changed files with 1245 additions and 63 deletions

View File

@@ -9,33 +9,38 @@ const { DOMParser } = require('xmldom');
const findSimilarString = require('./findSimilarString');
// --------------------------------------------------------
// const scoringJson = require('./DIC_2521A.json');
const scoringJson = require('./DIC_2521A.json');
// const scoringJson = require('./DIC_2521B.json');
// const scoringJson = require('./DIC_2521C.json');
const scoringJson = require('./DIC_2521D.json');
// const scoringJson = require('./DIC_2521D.json');
// TEST
// const scoringJson = require('./DIC_2521A_TEST.json');
// const scoringJson = require('./DIC_2521B_TEST.json');
// const scoringJson = require('./DIC_2521C_TEST.json');
// const scoringJson = require('./DIC_2521D_TEST.json');
// --------------------------------------------------------
// const answerFilesDir = './output/A/DIC';
const answerFilesDir = './output/A/DIC';
// const answerFilesDir = './output/B/DIC';
// const answerFilesDir = './output/C/DIC';
const answerFilesDir = './output/D/DIC';
// const answerFilesDir = './output/D/DIC';
// TEST
// const answerFilesDir = './output/A/TEST';
// const answerFilesDir = './output/B/TEST';
// const answerFilesDir = './output/C/TEST';
// const answerFilesDir = './output/D/TEST';
// --------------------------------------------------------
// const outputExcelFile = './DIC_2521A_result.xlsx';
const outputExcelFile = './DIC_2521A_result.xlsx';
// const outputExcelFile = './DIC_2521B_result.xlsx';
// const outputExcelFile = './DIC_2521C_result.xlsx';
const outputExcelFile = './DIC_2521D_result.xlsx';
// const outputExcelFile = './DIC_2521D_result.xlsx';
// TEST
// const outputExcelFile = './DIC_2521A_TEST.xlsx';
// const outputExcelFile = './DIC_2521B_TEST.xlsx';
// const outputExcelFile = './DIC_2521C_TEST.xlsx';
// const outputExcelFile = './DIC_2521D_TEST.xlsx';
// --------------------------------------------------------
@@ -180,7 +185,7 @@ function getGmepScore(gmepData, scoringJson, index) {
if (trackListNode) {
// CRTrackClip 요소의 ClipIndex를 참조하여 CRClip 요소의 Path와 Type 출력
const clipIndexes = xpath.select('CRTrackClip/@ClipIndex', trackListNode);
const clipIndexes = xpath.select('CRTrackClip[not(@Type="0")]/@ClipIndex', trackListNode);
clipIndexes.forEach(indexNode => {
const clipIndex = parseInt(indexNode.value, 10) + 1; // XPath는 1-based index를 사용
console.log(`clipIndex: ${clipIndex}`);
@@ -266,7 +271,7 @@ function getGmepScore(gmepData, scoringJson, index) {
}
// [3-9]문제 : 자막 화면 정가운데 아래
// [3-9]문제 : 자막 '화면 정가운데 아래'
// 자막의 글자 갯수, 글자 크기, 폰트에 따라 위치가 유동적으로 바뀌어서
// 예상되는 최소 좌표부터 최대 좌표를 미리 입력하고 (JSON파일 start/end 속성)
// 수험자가 입력한 자막의 좌표값이 범위 안에 들어가면 정답으로 채점
@@ -281,7 +286,7 @@ function getGmepScore(gmepData, scoringJson, index) {
continue;
}
// 수험자 자막 좌표 (x,y)
// 수험자 답안 자막 좌표 (x,y)
const x = parseFloat(result[0].value);
const y = parseFloat(result[1].value);
// 최소 좌표 (x1, y1)
@@ -402,15 +407,12 @@ function getGmepScore(gmepData, scoringJson, index) {
scoringResult[key] = 0;
continue;
}
result = result2;
console.log(`1st isChecked: ${isCheck}, result: ${result}`)
// console.log(`1st isChecked: ${isCheck}, result: ${result}`)
}
// console.log(`result: ${result[0].value}`);
// value와 result[0].value를 비교하여 같으면 점수 point 부여
// console.log(`${(value === result[0].value)}, ${result.length > 0 && value === result[0].value} `)
console.log(`2nd isChecked: ${isCheck}, result: ${result}`)
// console.log(`2nd isChecked: ${isCheck}, result: ${result}`)
totalScore += result.length > 0 ? point : 0;
scoringResult[key] = result.length > 0 ? point : 0;
}