aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-08-12 04:34:01 +0900
committernsfisis <nsfisis@gmail.com>2024-08-12 04:34:01 +0900
commit545d86085f927bded852dd5a8ee8341f60f24d84 (patch)
treed4df8771749b7d1f82414bcfe1ada3f576d4c8ff /backend
parentc6629900f3a4965ceca0f42e90648937bf51dfb5 (diff)
downloadiosdc-japan-2024-albatross-545d86085f927bded852dd5a8ee8341f60f24d84.tar.gz
iosdc-japan-2024-albatross-545d86085f927bded852dd5a8ee8341f60f24d84.tar.zst
iosdc-japan-2024-albatross-545d86085f927bded852dd5a8ee8341f60f24d84.zip
feat(backend): change calculation of code size
Diffstat (limited to 'backend')
-rw-r--r--backend/game/hub.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/backend/game/hub.go b/backend/game/hub.go
index d19c12d..e08ed4a 100644
--- a/backend/game/hub.go
+++ b/backend/game/hub.go
@@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"log"
+ "regexp"
"strings"
"time"
@@ -86,7 +87,7 @@ func (hub *gameHub) run() {
// TODO: assert game state is gaming
log.Printf("submit: %v", message.message)
code := msg.Data.Code
- codeSize := len(code) // TODO: exclude whitespaces.
+ codeSize := calcCodeSize(code)
codeHash := calcHash(code)
if err := hub.taskQueue.EnqueueTaskCreateSubmissionRecord(
hub.game.gameID,
@@ -663,3 +664,8 @@ func isTestcaseResultCorrect(expectedStdout, actualStdout string) bool {
func calcHash(code string) string {
return fmt.Sprintf("%x", md5.Sum([]byte(code)))
}
+
+func calcCodeSize(code string) int {
+ re := regexp.MustCompile(`\s+`)
+ return len(re.ReplaceAllString(code, ""))
+}