diff --git a/00_DIC_2504B_TEST.xlsx b/00_DIC_2504B_TEST.xlsx index 16d9669..13f48bb 100644 Binary files a/00_DIC_2504B_TEST.xlsx and b/00_DIC_2504B_TEST.xlsx differ diff --git a/00_DPI_2504B_TEST.xlsx b/00_DPI_2504B_TEST.xlsx index 285f08b..c8d8b9a 100644 Binary files a/00_DPI_2504B_TEST.xlsx and b/00_DPI_2504B_TEST.xlsx differ diff --git a/250512_DPI_2504B_채점결과.xlsx b/250512_DPI_2504B_채점결과.xlsx new file mode 100644 index 0000000..454e698 Binary files /dev/null and b/250512_DPI_2504B_채점결과.xlsx differ diff --git a/DIC_2504B.json b/DIC_2504B.json index e0efb43..7e216a7 100644 --- a/DIC_2504B.json +++ b/DIC_2504B.json @@ -205,8 +205,10 @@ }, "5": { "ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name", + "ele2": "//CRCUnitArr[@Name='{search}']/@Name", "type": "video", "value": "화단의 꽃들", + "search": "화단의 꽃들", "point": 3 }, "6": { @@ -350,7 +352,9 @@ }, "22": { "ele": "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name", + "ele2": "//CRCUnitArr[@Name='{search}']/@Name", "type": "opening", + "search": "아름다운 꽃 축제 (Happy Flower Festival)", "value": "아름다운 꽃 축제 (Happy Flower Festival)", "point": 3 }, @@ -512,7 +516,7 @@ "반사", "80" ], - "point": 5, + "point": 6, "desc": "혼합모드(색 회피율, 불투명도 : 80)" }, "11": { diff --git a/gpdpScoring.js b/gpdpScoring.js index dc87b43..0c2fa11 100644 --- a/gpdpScoring.js +++ b/gpdpScoring.js @@ -215,6 +215,11 @@ function getGpdpScore(gpdpData, scoringJson, index) { else if (type == "exists") { const result = xpath.select(ele, gpdpXmlDoc); const isMatch = result.some(v => { + + // 문자열 앞뒤 공백 제거 + v.value = typeof v.value === 'string' ? v.value.trim() : v.value + rightAnswer = typeof rightAnswer === 'string' ? rightAnswer.trim() : rightAnswer + if (v.value === rightAnswer) { totalScore += point; scoringResult[key] = point; diff --git a/psdExport_2.js b/psdExport_2.js index c2b2719..8a580a1 100644 --- a/psdExport_2.js +++ b/psdExport_2.js @@ -12,8 +12,8 @@ const getToday = require('./getToday.js'); const todayDate = getToday(); const examRound = '2504'; -const dic_or_dpi = 'DIC' -// const dic_or_dpi = 'DPI' +// const dic_or_dpi = 'DIC' +const dic_or_dpi = 'DPI' const examTypes = [ // 'A', 'B', @@ -677,8 +677,8 @@ function getTrackClipNode(xmlDoc, type, videoStartTime, openingStartTime) { const startTime = type === 'video' ? videoStartTime : openingStartTime; // xpath 구문을 통해 CRTrackClip 요소의 ClipIndex를 찾음 - const trackClipNode1 = xpath.select1(`//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][${subtitleOrder}]`, xmlDoc); - const trackClipNode2 = xpath.select1(`//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[sum(preceding-sibling::CRTrackClip/@Length) = ${startTime}]`, xmlDoc); + const trackClipNode1 = xpath.select1(`//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[sum(preceding-sibling::CRTrackClip/@Length) = ${startTime}]`, xmlDoc); + const trackClipNode2 = xpath.select1(`//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[not(@ClipIndex='-1')][${subtitleOrder}]`, xmlDoc); return trackClipNode = trackClipNode1 ?? trackClipNode2; } diff --git a/z.xbook b/z.xbook index e28d40e..5c62274 100644 --- a/z.xbook +++ b/z.xbook @@ -1 +1 @@ -[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape[*[starts-with(name(), 'gradient')]]"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Flower']]/Effects/Item/Name/@value | //Layer[Name[@value='Flower']]/Effects/Item/EffectData/VibranceValue/@value"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='{layer}']]/Effects/Item[EffectData/{option}]/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='{layer}']]/Effects/Item/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value\r\n"},{"kind":2,"language":"xpath","value":"//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']"},{"kind":2,"language":"xpath","value":"//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']"}] \ No newline at end of file +[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"sum(//CRTrackList[@Name='텍스트' or @Name='비디오2']/CRTrackClip[@ClipIndex=0]/preceding-sibling::CRTrackClip/@Length)"},{"kind":2,"language":"xpath","value":"//CROwneUnit/CRCUnitArr[@Name=\"아름다운 꽃 축제 (Happy Flower Festival)\"]/@Name"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='{layer}']]/Effects/Item[EffectData/{option}]/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value"},{"kind":2,"language":"xpath","value":"//Layer[Name[@value='{layer}']]/Effects/Item/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value\r\n"},{"kind":2,"language":"xpath","value":"//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']"},{"kind":2,"language":"xpath","value":"//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='이미지3.jpg']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='이미지3.jpg']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='16']/@*[name()='ID' or name()='Range' or name()='Type']"}] \ No newline at end of file diff --git a/회차별채점자료/2504/요청사항/0508.txt b/회차별채점자료/2504/요청사항/0508.txt index c131346..68c3aea 100644 --- a/회차별채점자료/2504/요청사항/0508.txt +++ b/회차별채점자료/2504/요청사항/0508.txt @@ -1,47 +1,29 @@ -광일 김, [May 8, 2025 at 13:44:23]: - -001912 문성빈 -문구 (서울국제도서박람회) - 견고딕, 25pt, 가운데정렬 맞는데 오답처리 - -000076 박다은 -특수문자 ① ◆, ② ◆, ③ ※ - ◆ 행사안내 ◆ 인데 1점 - -001419 김사랑 -차트 X,Y,범례 기울임 없느데 정답처리됨 - -000076 박다은 -000285 문예슬 -001345 조수빈 -000203 이지운 -글맵시 있는데 오답처리 - -001473 노이솜 -문구 (◆ 행사안내 ◆) - 궁서/가운데정렬 맞는데 오답처리(띄어쓰기 때문인듯) - -001473 노이솜 -문제1 줄간격 180% 맞는데 오답처리(마지막 엔터값 때문인듯) - - 002016-조승연 001464-이주아 000047-전지인 .gmep가 아니라 .gmdp라서 0점 +>> 수정완 + 001662-노연우 "화단의 꽃들" 자막 텍스트 맞는데 오답처리 "아름다운 꽃 축제(Happy Flower Festival)" 자막 텍스트 맞는데 오답처리 +>> 자막 텍스트는 순서나 시작시간에 상관없이 텍스트만 맞으면 정답처리 +>> 수정완 + 1-10문제 배점이 6점인데 5점으로 잘못기재한거죠? -001682-노연우 -"화단의 꽃들" 자막 텍스트 맞는데 오답처리 +>> 수정완 + 000400-서보길 "흰 꽃 사이 노란 꽃 " <- 마지막에 띄어쓰기때문에 오답처리 됨/trim한 텍스트로 비교할 수 있을까요? +>> 수정완 다 수정 채점 해뒀습니다!