introduce turn-based log parser
This commit is contained in:
parent
36c16aa8c7
commit
a70689faa9
2 changed files with 14 additions and 24 deletions
|
@ -1,34 +1,21 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { parsePlayerLog, PlayerLog } from "$lib/log_parser";
|
||||||
|
|
||||||
export let matchLog: string;
|
export let matchLog: string;
|
||||||
|
let playerLog: PlayerLog;
|
||||||
|
|
||||||
function getStdErr(botId: number, log?: string): string {
|
$: if (matchLog) {
|
||||||
if (!log) {
|
playerLog = parsePlayerLog(1, matchLog);
|
||||||
return "";
|
} else {
|
||||||
|
playerLog = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
let output = [];
|
|
||||||
log
|
|
||||||
.split("\n")
|
|
||||||
.slice(0, -1)
|
|
||||||
.forEach((line) => {
|
|
||||||
let message = JSON.parse(line);
|
|
||||||
if (message["type"] === "stderr" && message["player_id"] === botId) {
|
|
||||||
output.push(message["message"]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return output.join("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
$: botStdErr = getStdErr(1, matchLog);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="output">
|
<div class="output">
|
||||||
{#if botStdErr.length > 0}
|
<h3 class="output-header">Player log</h3>
|
||||||
<h3 class="output-header">stderr:</h3>
|
<div class="output-text stderr-text">
|
||||||
<div class="output-text">
|
{playerLog.flatMap((turn) => turn.stderr).join("\n")}
|
||||||
{botStdErr}
|
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
@ -41,6 +28,9 @@
|
||||||
|
|
||||||
.output-text {
|
.output-text {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stderr-text {
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue