aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-23 10:06:39 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-23 10:06:39 +0300
commit9991801e4037d8dc530876584f21c1674c9e3bba (patch)
treeefa20cd6aa6556cfdea81f4c99251e0688847ca6 /cmd
parentorganize packets and classes (#9) (diff)
downloadsdp.go-9991801e4037d8dc530876584f21c1674c9e3bba.tar.gz
sdp.go-9991801e4037d8dc530876584f21c1674c9e3bba.tar.bz2
sdp.go-9991801e4037d8dc530876584f21c1674c9e3bba.zip
init: will look at this laterverification
Diffstat (limited to 'cmd')
-rw-r--r--cmd/parser.go53
1 files changed, 50 insertions, 3 deletions
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
3import ( 3import (
4 "fmt" 4 "fmt"
5 "os" 5 "os"
6 "sort"
7 "strconv"
8 "strings"
6 9
7 "github.com/pektezol/bitreader" 10 "github.com/pektezol/bitreader"
8 "github.com/pektezol/demoparser/pkg/packets" 11 "github.com/pektezol/demoparser/pkg/packets"
9 "github.com/pektezol/demoparser/pkg/writer" 12 "github.com/pektezol/demoparser/pkg/verification"
10) 13)
11 14
12const littleEndian bool = true 15const littleEndian bool = true
13 16
14func main() { 17func main() {
18 fmt.Println("Portal 2 Run Validity Checker Tool")
19 fmt.Println()
15 if len(os.Args) != 2 { 20 if len(os.Args) != 2 {
16 panic("specify file in command line arguments") 21 panic("specify file in command line arguments")
17 } 22 }
@@ -24,9 +29,27 @@ func main() {
24 reader := bitreader.NewReader(file, littleEndian) 29 reader := bitreader.NewReader(file, littleEndian)
25 demoParserHandler(reader) 30 demoParserHandler(reader)
26 defer file.Close() 31 defer file.Close()
27 defer fmt.Println(writer.GetString()) 32 fmt.Println()
33 fmt.Println("Total Ticks from SAR:", verification.Ticks)
34 fmt.Println()
35 if verification.IsContinuous(verification.ServerNumbers) {
36 fmt.Println("Server Numbers: VALID")
37 fmt.Println(verification.ServerNumbers)
38 } else {
39 fmt.Println("[!] Server Numbers: NOT VALID")
40 fmt.Println(verification.ServerNumbers)
41 }
42 fmt.Scanln()
28 return 43 return
29 } 44 }
45 sort.Slice(files, func(i, j int) bool {
46 // Extract numeric parts from file names
47 numA := extractNumber(files[i].Name())
48 numB := extractNumber(files[j].Name())
49
50 // Compare the extracted numbers for sorting
51 return numA < numB
52 })
30 for _, fileinfo := range files { // If it is a directory 53 for _, fileinfo := range files { // If it is a directory
31 file, err := os.Open(os.Args[1] + fileinfo.Name()) 54 file, err := os.Open(os.Args[1] + fileinfo.Name())
32 if err != nil { 55 if err != nil {
@@ -35,8 +58,18 @@ func main() {
35 reader := bitreader.NewReader(file, littleEndian) 58 reader := bitreader.NewReader(file, littleEndian)
36 demoParserHandler(reader) 59 demoParserHandler(reader)
37 defer file.Close() 60 defer file.Close()
38 defer fmt.Println(writer.GetString())
39 } 61 }
62 fmt.Println()
63 fmt.Println("Total Ticks from SAR:", verification.Ticks)
64 fmt.Println()
65 if verification.IsContinuous(verification.ServerNumbers) {
66 fmt.Println("Server Numbers: VALID")
67 fmt.Println(verification.ServerNumbers)
68 } else {
69 fmt.Println("[!] Server Numbers: NOT VALID")
70 fmt.Println(verification.ServerNumbers)
71 }
72 fmt.Scanln()
40} 73}
41 74
42func demoParserHandler(reader *bitreader.Reader) { 75func demoParserHandler(reader *bitreader.Reader) {
@@ -48,3 +81,17 @@ func demoParserHandler(reader *bitreader.Reader) {
48 } 81 }
49 } 82 }
50} 83}
84
85func extractNumber(filename string) int {
86 // Split the filename by underscores
87 parts := strings.Split(filename, "_")
88
89 // Get the last part which should be the number
90 lastPart := parts[len(parts)-1]
91
92 // Remove any non-digit characters
93 numStr := strings.TrimSuffix(lastPart, ".dem") // Assuming filenames end with ".txt"
94 num, _ := strconv.Atoi(numStr)
95
96 return num
97}