cactbot icon indicating copy to clipboard operation
cactbot copied to clipboard

raidemulator: issues with Korean logs

Open quisquous opened this issue 3 years ago • 3 comments

Using the log from @Bing-su on https://github.com/quisquous/cactbot/pull/3964#issuecomment-1004563352, I loaded it in the raidemulator with the change I just landed on #3964.

If I look at the Hero's Gauntlet zone (노르브란트), the initial view of the timeline is at the end of the fight (?) instead of the beginning and it does not show the timeline to start. If I click in earlier in time, I will see the timeline on the left for where in the fight it is.

If I look at the first fight in the Tower at Paradigm's Breach, the timeline doesn't appear at all. Maybe there's something I missed in #3964, or there's some other bug. However, looking at the output of the translation it seems like this sync should work just fine.

npm run util -- translateTimeline -t the_tower_at_paradigms_breach -l ko
1000.0 "--동기화--" sync / 00:0839:15초 후에 봉쇄 구획 A(?:이|가) 봉쇄됩니다/ window 10000,0

From log:
00|2022-01-01T19:12:22.0000000+09:00|0839||15초 후에 봉쇄 구획 A가 봉쇄됩니다.|e010097b65ff55f96167f394006873ee

quisquous avatar Feb 08 '22 19:02 quisquous

I believe that the first issue isn't KR-specific, it's something that happens randomly when switching from one encounter to another where the jump to the beginning of the pull isn't actually called. I haven't been able to nail down exactly why that happens, but I've seen it happen on EN and CN logs as well.

For the second issue, the regex that's generated is expecting a single colon but the conversion code in emulator is generating the double colon from 6.x. Not sure exactly how to handle this.

startRegex = raidEmulator.timelineController.activeTimeline.syncStarts.find(s=>s.end===1000).regex;
line = raidEmulator.emulator.currentEncounter.encounter.logLines.find(l=>l.networkLine.indexOf('15초 후에')>0);
console.log([startRegex,line.convertedLine,startRegex.exec(line.convertedLine)]);
...
0: / 00:0839:15초 후에 봉쇄 구획 A(?:이|가) 봉쇄됩니다/i
1: "[19:12:22.000] ChatLog 00:0839::15초 후에 봉쇄 구획 A가 봉쇄됩니다."
2: null

valarnin avatar Feb 18 '22 18:02 valarnin

For the second issue, the regex that's generated is expecting a single colon but the conversion code in emulator is generating the double colon from 6.x. Not sure exactly how to handle this.

I added some extra replacements in #3964 that maybe aren't applied in raidemulator, somehow?

quisquous avatar Feb 18 '22 18:02 quisquous

I maybe mis-explained? When raidemulator initially parses a network line, it generates the equivalent non-network-line version, aka convertedLine. This generation was updated to match 6.x, so it's always generating the 6.x version of the line regardless. The PR you linked only changes the parsed timeline syncs.

So you end up with KR 6.x chat lines attempting to be matched to KR 5.x timeline syncs.

The equivalent would be to replicate the same for-of loop somewhere in emulator as well to adjust lines there to match the older convention.

valarnin avatar Feb 18 '22 18:02 valarnin

Extremely belatedly, thanks for the explanation. I think for now this is no longer an issue given that KR is no longer on 5.x. I think if this happens again maybe we can prioritize switching timelines to network log lines.

quisquous avatar Apr 23 '23 18:04 quisquous