X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fdata%2FchallengeCheck.js;h=fbfb445c2a841170e7648c2bb49f150e645a0bcf;hb=0705a80c63aec2c60ee6a674b982f6a11d2d50bd;hp=e0aa978cda51ba36f589eb2d53da883fa2cb96b6;hpb=dd75774d31a140cabf80790bdade9a40048c38d5;p=vchess.git diff --git a/client/src/data/challengeCheck.js b/client/src/data/challengeCheck.js index e0aa978c..fbfb445c 100644 --- a/client/src/data/challengeCheck.js +++ b/client/src/data/challengeCheck.js @@ -1,39 +1,23 @@ import { extractTime } from "@/utils/timeControl"; -export function checkChallenge(c) -{ - const vid = parseInt(c.vid); - if (isNaN(vid) || vid <= 0) - return "Please select a variant"; +export function checkChallenge(c) { + const vid = parseInt(c.vid); + if (isNaN(vid) || vid <= 0) return "Please select a variant"; - const tc = extractTime(c.timeControl); - if (!tc) - return "Wrong time control"; - // Less than 3 days ==> live game (TODO: heuristic... 40 moves also) - c.liveGame = (tc.mainTime + 40 * tc.increment < 3*24*60*60); + const tc = extractTime(c.cadence); + if (!tc) return "Wrong time control"; - // Basic alphanumeric check for players names - let playerCount = 0; - for (const pname of c.to) - { - if (pname.length > 0) - { - // TODO: slightly redundant (see data/userCheck.js) - if (!pname.match(/^[\w]+$/)) - return "Wrong characters in players names"; - playerCount++; - } - } - - if (playerCount > 0 && playerCount != c.nbPlayers-1) - return "None, or all of the opponent names must be filled" + // Basic alphanumeric check for opponent name + if (c.to) { + // NOTE: slightly redundant (see data/userCheck.js) + if (!c.to.match(/^[\w]+$/)) return "Name: alphanumerics and underscore"; + } // Allow custom FEN (and check it) only for individual challenges - if (c.fen.length > 0 && playerCount > 0) - { - if (!V.IsGoodFen(c.fen)) - return "Bad FEN string"; + if (c.fen.length > 0 && !!c.to) { + if (!V.IsGoodFen(c.fen)) return "Errors in FEN"; } - else - c.fen = ""; + else c.fen = ""; + + return ""; }