szczanieckiej.git

commit 173984b7917a73f758cd7118c9f0fe85a397927b

Author: Adam Evyčędo <git@apiote.xyz>

handle 3-digit colours and no colours for routes

 traffic/convert.go | 23 ++++++++++++++---------


diff --git a/traffic/convert.go b/traffic/convert.go
index 78fa2726a0bbb409a77801e23743a5c6ea67f4b7..43a7a712a5def91777d104a7aafdcba483fa3ada 100644
--- a/traffic/convert.go
+++ b/traffic/convert.go
@@ -155,9 +155,17 @@ 		default:
 			return 0
 		}
 	}
-	colour.R = hexToByte(hex[0])<<4 + hexToByte(hex[1])
-	colour.G = hexToByte(hex[2])<<4 + hexToByte(hex[3])
-	colour.B = hexToByte(hex[4])<<4 + hexToByte(hex[5])
+	switch len(hex) {
+	case 6:
+		colour.R = hexToByte(hex[0])<<4 + hexToByte(hex[1])
+		colour.G = hexToByte(hex[2])<<4 + hexToByte(hex[3])
+		colour.B = hexToByte(hex[4])<<4 + hexToByte(hex[5])
+	case 3:
+		colour.R = hexToByte(hex[0])<<4 + hexToByte(hex[0])
+		colour.G = hexToByte(hex[1])<<4 + hexToByte(hex[1])
+		colour.B = hexToByte(hex[2])<<4 + hexToByte(hex[2])
+	}
+
 	return colour
 }
 
@@ -1259,12 +1267,9 @@ 			lineName = strings.Replace(lineName, "{{"+template+"}}", record[fields[template]], -1)
 		}
 		var kind uint
 		fmt.Sscanf(record[fields["route_type"]], "%d", &kind)
-		var (
-			colour string = record[fields["route_color"]]
-		)
-
-		if colour == "" {
-			colour = "ffffff"
+		colour := "ffffff"
+		if colourIx, ok := fields["route_color"]; ok && record[colourIx] != "" {
+			colour = record[colourIx]
 		}
 
 		directions := []uint{}