From 9991801e4037d8dc530876584f21c1674c9e3bba Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sat, 23 Sep 2023 10:06:39 +0300 Subject: init: will look at this later --- cmd/parser.go | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) (limited to 'cmd') diff --git a/cmd/parser.go b/cmd/parser.go index cf82529..1b17dce 100644 --- a/cmd/parser.go +++ b/cmd/parser.go @@ -3,15 +3,20 @@ package main import ( "fmt" "os" + "sort" + "strconv" + "strings" "github.com/pektezol/bitreader" "github.com/pektezol/demoparser/pkg/packets" - "github.com/pektezol/demoparser/pkg/writer" + "github.com/pektezol/demoparser/pkg/verification" ) const littleEndian bool = true func main() { + fmt.Println("Portal 2 Run Validity Checker Tool") + fmt.Println() if len(os.Args) != 2 { panic("specify file in command line arguments") } @@ -24,9 +29,27 @@ func main() { reader := bitreader.NewReader(file, littleEndian) demoParserHandler(reader) defer file.Close() - defer fmt.Println(writer.GetString()) + fmt.Println() + fmt.Println("Total Ticks from SAR:", verification.Ticks) + fmt.Println() + if verification.IsContinuous(verification.ServerNumbers) { + fmt.Println("Server Numbers: VALID") + fmt.Println(verification.ServerNumbers) + } else { + fmt.Println("[!] Server Numbers: NOT VALID") + fmt.Println(verification.ServerNumbers) + } + fmt.Scanln() return } + sort.Slice(files, func(i, j int) bool { + // Extract numeric parts from file names + numA := extractNumber(files[i].Name()) + numB := extractNumber(files[j].Name()) + + // Compare the extracted numbers for sorting + return numA < numB + }) for _, fileinfo := range files { // If it is a directory file, err := os.Open(os.Args[1] + fileinfo.Name()) if err != nil { @@ -35,8 +58,18 @@ func main() { reader := bitreader.NewReader(file, littleEndian) demoParserHandler(reader) defer file.Close() - defer fmt.Println(writer.GetString()) } + fmt.Println() + fmt.Println("Total Ticks from SAR:", verification.Ticks) + fmt.Println() + if verification.IsContinuous(verification.ServerNumbers) { + fmt.Println("Server Numbers: VALID") + fmt.Println(verification.ServerNumbers) + } else { + fmt.Println("[!] Server Numbers: NOT VALID") + fmt.Println(verification.ServerNumbers) + } + fmt.Scanln() } func demoParserHandler(reader *bitreader.Reader) { @@ -48,3 +81,17 @@ func demoParserHandler(reader *bitreader.Reader) { } } } + +func extractNumber(filename string) int { + // Split the filename by underscores + parts := strings.Split(filename, "_") + + // Get the last part which should be the number + lastPart := parts[len(parts)-1] + + // Remove any non-digit characters + numStr := strings.TrimSuffix(lastPart, ".dem") // Assuming filenames end with ".txt" + num, _ := strconv.Atoi(numStr) + + return num +} -- cgit v1.2.3