@@ -16,32 +16,33 @@ import (
16
16
17
17
func processCanvasCreatedEvent (event IndexerEvent ) {
18
18
canvasIdHex := event .Event .Keys [1 ]
19
- host := event .Event .Data [0 ][2 :] // Remove 0x prefix
20
- nameHex := event .Event .Data [1 ][2 :] // Remove 0x prefix
21
- widthHex := event .Event .Data [2 ]
22
- heightHex := event .Event .Data [3 ]
23
- timeBetweenPixelsHex := event .Event .Data [4 ]
24
- colorPaletteLenHex := event .Event .Data [5 ]
19
+ host := event .Event .Data [0 ][2 :] // Remove 0x prefix
20
+ nameHex := event .Event .Data [1 ][2 :] // Remove 0x prefix
21
+ uniqueNameHex := event .Event .Data [2 ][2 :] // Remove 0x prefix
22
+ widthHex := event .Event .Data [3 ]
23
+ heightHex := event .Event .Data [4 ]
24
+ timeBetweenPixelsHex := event .Event .Data [5 ]
25
+ colorPaletteLenHex := event .Event .Data [6 ]
25
26
26
27
colorPaletteLen , err := strconv .ParseInt (colorPaletteLenHex , 0 , 64 )
27
28
if err != nil {
28
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse colorPaletteLenHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
29
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse colorPaletteLenHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
29
30
return
30
31
}
31
32
// Skip colors since they are processed in another event
32
33
33
- startTimeHex := event .Event .Data [6 + colorPaletteLen ]
34
- endTimeHex := event .Event .Data [7 + colorPaletteLen ]
34
+ startTimeHex := event .Event .Data [7 + colorPaletteLen ]
35
+ endTimeHex := event .Event .Data [8 + colorPaletteLen ]
35
36
36
37
canvasId , err := strconv .ParseInt (canvasIdHex , 0 , 64 )
37
38
if err != nil {
38
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse canvasIdHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
39
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse canvasIdHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
39
40
return
40
41
}
41
42
42
43
decodedName , err := hex .DecodeString (nameHex )
43
44
if err != nil {
44
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to decode nameHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
45
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to decode nameHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
45
46
return
46
47
}
47
48
trimmedName := []byte {}
@@ -55,40 +56,56 @@ func processCanvasCreatedEvent(event IndexerEvent) {
55
56
}
56
57
name := string (trimmedName )
57
58
59
+ decodedUniqueName , err := hex .DecodeString (uniqueNameHex )
60
+ if err != nil {
61
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to decode uniqueNameHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
62
+ return
63
+ }
64
+ trimmedUniqueName := []byte {}
65
+ trimming = true
66
+ for _ , b := range decodedUniqueName {
67
+ if b == 0 && trimming {
68
+ continue
69
+ }
70
+ trimming = false
71
+ trimmedUniqueName = append (trimmedUniqueName , b )
72
+ }
73
+ uniqueName := string (trimmedUniqueName )
74
+
58
75
width , err := strconv .ParseInt (widthHex , 0 , 64 )
59
76
if err != nil {
60
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse widthHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
77
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse widthHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
61
78
return
62
79
}
63
80
64
81
height , err := strconv .ParseInt (heightHex , 0 , 64 )
65
82
if err != nil {
66
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse heightHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
83
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse heightHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
67
84
return
68
85
}
69
86
70
87
timeBetweenPixels , err := strconv .ParseInt (timeBetweenPixelsHex , 0 , 64 )
71
88
if err != nil {
72
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse timeBetweenPixelsHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
89
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse timeBetweenPixelsHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
73
90
return
74
91
}
75
92
76
93
startTime , err := strconv .ParseInt (startTimeHex , 0 , 64 )
77
94
if err != nil {
78
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse startTimeHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
95
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse startTimeHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
79
96
return
80
97
}
81
98
82
99
endTime , err := strconv .ParseInt (endTimeHex , 0 , 64 )
83
100
if err != nil {
84
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse endTimeHex" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
101
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to parse endTimeHex" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
85
102
return
86
103
}
87
104
88
105
// Insert into Worlds
89
- _ , err = core .ArtPeaceBackend .Databases .Postgres .Exec (context .Background (), "INSERT INTO Worlds (world_id, host, name, width, height, time_between_pixels, start_time, end_time) VALUES ($1, $2, $3, $4, $5, $6, TO_TIMESTAMP($7 ), TO_TIMESTAMP($8 ))" , canvasId , host , name , width , height , timeBetweenPixels , startTime , endTime )
106
+ _ , err = core .ArtPeaceBackend .Databases .Postgres .Exec (context .Background (), "INSERT INTO Worlds (world_id, host, name, unique_name, width, height, time_between_pixels, start_time, end_time) VALUES ($1, $2, $3, $4, $5, $6, $7, TO_TIMESTAMP($8 ), TO_TIMESTAMP($9 ))" , canvasId , host , name , uniqueName , width , height , timeBetweenPixels , startTime , endTime )
90
107
if err != nil {
91
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to insert into Worlds" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
108
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to insert into Worlds" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
92
109
return
93
110
}
94
111
@@ -103,11 +120,11 @@ func processCanvasCreatedEvent(event IndexerEvent) {
103
120
canvas := make ([]byte , totalByteSize )
104
121
err := core .ArtPeaceBackend .Databases .Redis .Set (context .Background (), canvasRedisKey , canvas , 0 ).Err ()
105
122
if err != nil {
106
- PrintIndexerError ("processCanvasCreatedEvent" , "Failed to set canvas in redis" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
123
+ PrintIndexerError ("processCanvasCreatedEvent" , "Failed to set canvas in redis" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
107
124
return
108
125
}
109
126
} else {
110
- PrintIndexerError ("processCanvasCreatedEvent" , "Canvas already exists in redis" , canvasIdHex , host , nameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
127
+ PrintIndexerError ("processCanvasCreatedEvent" , "Canvas already exists in redis" , canvasIdHex , host , nameHex , uniqueNameHex , widthHex , heightHex , timeBetweenPixelsHex , colorPaletteLenHex , err )
111
128
}
112
129
113
130
// Create base directories if they don't exist
@@ -127,7 +144,7 @@ func processCanvasCreatedEvent(event IndexerEvent) {
127
144
}
128
145
129
146
generatedWorldImage := image .NewRGBA (image .Rect (0 , 0 , int (width ), int (height )))
130
- baseColorHex := event .Event .Data [6 ]
147
+ baseColorHex := event .Event .Data [7 ]
131
148
baseColor := baseColorHex [len (baseColorHex )- 6 :] // Remove prefix
132
149
baseColorR , err := strconv .ParseInt (baseColor [0 :2 ], 16 , 64 )
133
150
if err != nil {
0 commit comments