fix: use PgnExporter for SAN pgn field, fix status priority in GameMapper
This commit is contained in:
@@ -4,6 +4,7 @@ import de.nowchess.api.board.Color
|
||||
import de.nowchess.api.move.{Move, MoveType, PromotionPiece}
|
||||
import de.nowchess.backcore.dto.*
|
||||
import de.nowchess.io.fen.FenExporter
|
||||
import de.nowchess.io.pgn.PgnExporter
|
||||
import de.nowchess.rules.sets.DefaultRules
|
||||
|
||||
object GameMapper:
|
||||
@@ -51,9 +52,9 @@ object GameMapper:
|
||||
|
||||
private def computeLiveStatus(session: GameSession): (String, Option[String]) =
|
||||
val ctx = session.context
|
||||
if session.drawOfferedBy.isDefined then ("drawOffered", None)
|
||||
if DefaultRules.isCheck(ctx) then ("check", None)
|
||||
else if session.drawOfferedBy.isDefined then ("drawOffered", None)
|
||||
else if DefaultRules.isFiftyMoveRule(ctx) then ("fiftyMoveAvailable", None)
|
||||
else if DefaultRules.isCheck(ctx) then ("check", None)
|
||||
else ("started", None)
|
||||
|
||||
def moveToUci(move: Move): String =
|
||||
@@ -69,7 +70,5 @@ object GameMapper:
|
||||
case _ => base
|
||||
|
||||
private def buildPgn(moves: List[Move]): String =
|
||||
moves.zipWithIndex.map { (move, i) =>
|
||||
val prefix = if i % 2 == 0 then s"${i / 2 + 1}. " else ""
|
||||
prefix + moveToUci(move)
|
||||
}.mkString(" ")
|
||||
// Use PgnExporter with no headers to get move-text only (SAN notation)
|
||||
PgnExporter.exportGame(Map.empty, moves)
|
||||
|
||||
Reference in New Issue
Block a user