This repository has been archived on 2022-06-29. You can view files and clone it, but cannot push or open issues or pull requests.
urtrator/colorizer/colorizer_object.go
pztrn 51b23fa68f More debug output and servers refresh fix.
Fixed servers lists refresh. Despite on what list we're updating
(all servers or only favorites) server item should be updated in
both.
2016-10-07 02:50:52 +05:00

66 lines
1.6 KiB
Go

// URTator - Urban Terror server browser and game launcher, written in
// Go.
//
// Copyright (c) 2016, Stanslav N. a.k.a pztrn (or p0z1tr0n)
// All rights reserved.
//
// Licensed under Terms and Conditions of GNU General Public License
// version 3 or any higher.
// ToDo: put full text of license here.
package colorizer
import (
// stdlib
"fmt"
"html"
"strings"
)
type Colorizer struct {
// RAW colors to Pango relation.
colors map[string]string
}
func (c *Colorizer) Fix(data string) string {
result := ""
data = html.EscapeString(data)
data_splitted := strings.Split(data, "^")
if len(data_splitted) > 1 {
for item := range data_splitted {
if len(data_splitted[item]) > 0 {
colorcode_raw := string([]rune(data_splitted[item])[0])
colorcode, ok := c.colors[colorcode_raw]
if !ok {
colorcode = "#000000"
}
result += "<span foreground=\"" + colorcode + "\">" + string([]rune(data_splitted[item])[1:]) + "</span>"
} else {
result += data_splitted[item]
}
}
} else {
result = data_splitted[0]
}
return "<markup>" + result + "</markup>"
}
func (c *Colorizer) Initialize() {
fmt.Println("Initializing colorizer...")
c.initializeStorages()
}
func (c *Colorizer) initializeStorages() {
c.colors = map[string]string{
"1": "#cc0000",
"2": "#00cc00",
"3": "#eeee00",
"4": "#1c86ee",
"5": "#00eeee",
"6": "#ee00ee",
"7": "#000000",
"8": "#000000",
}
}