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.
This commit is contained in:
parent
baf733f171
commit
51b23fa68f
2
cache/cache_object.go
vendored
2
cache/cache_object.go
vendored
@ -101,6 +101,7 @@ func (c *Cache) initializeStorages() {
|
||||
}
|
||||
|
||||
func (c *Cache) LoadServers() {
|
||||
fmt.Println("Loading servers into cache...")
|
||||
c.Servers = make(map[string]*cachemodels.Server)
|
||||
// Getting servers from database.
|
||||
raw_servers := []datamodels.Server{}
|
||||
@ -129,4 +130,5 @@ func (c *Cache) LoadServers() {
|
||||
c.Servers[key].Server.ExtendedConfig = server.ExtendedConfig
|
||||
c.Servers[key].Server.PlayersInfo = server.PlayersInfo
|
||||
}
|
||||
fmt.Println("Load completed.")
|
||||
}
|
||||
|
@ -23,6 +23,9 @@ type Colorizer struct {
|
||||
|
||||
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 {
|
||||
@ -32,7 +35,7 @@ func (c *Colorizer) Fix(data string) string {
|
||||
if !ok {
|
||||
colorcode = "#000000"
|
||||
}
|
||||
result += "<span foreground=\"" + colorcode + "\">" + html.EscapeString(string([]rune(data_splitted[item])[1:])) + "</span>"
|
||||
result += "<span foreground=\"" + colorcode + "\">" + string([]rune(data_splitted[item])[1:]) + "</span>"
|
||||
} else {
|
||||
result += data_splitted[item]
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"runtime"
|
||||
//"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
@ -34,8 +34,9 @@ type Pooler struct {
|
||||
func (p *Pooler) Initialize() {
|
||||
fmt.Println("Initializing requester goroutine pooler...")
|
||||
// ToDo: figure out how to make this work nice.
|
||||
p.maxrequests = runtime.NumCPU() * 2000
|
||||
p.maxrequests = 500
|
||||
p.pp = "\377\377\377\377"
|
||||
fmt.Println("Pooler initialized")
|
||||
}
|
||||
|
||||
// Servers pinging pooler. Should be started as goroutine to prevent
|
||||
@ -119,17 +120,13 @@ func (p *Pooler) UpdateServers(servers_type string) {
|
||||
}(server.Server)
|
||||
}
|
||||
wait.Wait()
|
||||
Eventer.LaunchEvent("flushServers")
|
||||
p.PingServers(servers_type)
|
||||
Eventer.LaunchEvent("flushServers")
|
||||
|
||||
if servers_type == "all" {
|
||||
Eventer.LaunchEvent("loadAllServers")
|
||||
Eventer.LaunchEvent("serversUpdateCompleted")
|
||||
} else if servers_type == "favorites" {
|
||||
Eventer.LaunchEvent("loadFavoriteServers")
|
||||
Eventer.LaunchEvent("serversUpdateCompleted")
|
||||
}
|
||||
}
|
||||
|
||||
// Updates information about specific server.
|
||||
func (p *Pooler) updateSpecificServer(server *datamodels.Server) error {
|
||||
|
@ -293,6 +293,16 @@ func (m *MainWindow) editFavorite() {
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MainWindow) getGameModeName(name string) string {
|
||||
val, ok := m.gamemodes[name]
|
||||
|
||||
if !ok {
|
||||
return "Unknown or custom"
|
||||
}
|
||||
|
||||
return val
|
||||
}
|
||||
|
||||
// Executes when "Hide offline servers" checkbox changed it's state on
|
||||
// "Servers" tab.
|
||||
func (m *MainWindow) hideOfflineAllServers() {
|
||||
@ -423,8 +433,6 @@ func (m *MainWindow) Initialize() {
|
||||
profile_and_launch_hbox.PackStart(profiles_label, false, true, 5)
|
||||
profile_and_launch_hbox.PackStart(m.profiles, false, true, 5)
|
||||
|
||||
ctx.Eventer.AddEventHandler("loadProfiles", m.loadProfiles)
|
||||
|
||||
// One more separator.
|
||||
sepp := gtk.NewVSeparator()
|
||||
profile_and_launch_hbox.PackStart(sepp, false, true, 5)
|
||||
@ -433,7 +441,7 @@ func (m *MainWindow) Initialize() {
|
||||
m.launch_button = gtk.NewButtonWithLabel("Launch!")
|
||||
m.launch_button.SetTooltipText("Launch Urban Terror")
|
||||
m.launch_button.Clicked(m.launchGame)
|
||||
launch_button_image := gtk.NewImageFromStock(gtk.STOCK_APPLY, 32)
|
||||
launch_button_image := gtk.NewImageFromStock(gtk.STOCK_APPLY, 24)
|
||||
m.launch_button.SetImage(launch_button_image)
|
||||
profile_and_launch_hbox.PackStart(m.launch_button, false, true, 5)
|
||||
|
||||
@ -461,6 +469,7 @@ func (m *MainWindow) initializeEvents() {
|
||||
fmt.Println("Initializing events...")
|
||||
ctx.Eventer.AddEventHandler("loadAllServers", m.loadAllServers)
|
||||
ctx.Eventer.AddEventHandler("loadFavoriteServers", m.loadFavoriteServers)
|
||||
ctx.Eventer.AddEventHandler("loadProfiles", m.loadProfiles)
|
||||
ctx.Eventer.AddEventHandler("serversUpdateCompleted", m.serversUpdateCompleted)
|
||||
}
|
||||
|
||||
@ -596,11 +605,11 @@ func (m *MainWindow) initializeStorages() {
|
||||
// Servers tab list view storage.
|
||||
// Structure:
|
||||
// Server status icon|Server name|Mode|Map|Players|Ping|Version
|
||||
m.all_servers_store = gtk.NewListStore(gdkpixbuf.GetType(), glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
||||
m.all_servers_store = gtk.NewListStore(gdkpixbuf.GetType(), glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
||||
m.all_servers_store_sortable = gtk.NewTreeSortable(m.all_servers_store)
|
||||
|
||||
// Same as above, but for favorite servers.
|
||||
m.fav_servers_store = gtk.NewListStore(gdkpixbuf.GetType(), glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
||||
m.fav_servers_store = gtk.NewListStore(gdkpixbuf.GetType(), glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
||||
|
||||
// Server's information store. Used for quick preview in main window.
|
||||
m.server_info_store = gtk.NewListStore(glib.G_TYPE_STRING, glib.G_TYPE_STRING)
|
||||
@ -972,13 +981,13 @@ func (m *MainWindow) loadAllServers() {
|
||||
}
|
||||
|
||||
if server.Server.Name == "" && server.Server.Players == "" && server.Server.Maxplayers == "" {
|
||||
m.all_servers_store.Set(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_NO, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
m.all_servers_store.SetValue(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_NO, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
m.all_servers_store.SetValue(iter, 7, server.Server.Ip + ":" + server.Server.Port)
|
||||
} else {
|
||||
m.all_servers_store.Set(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_OK, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
m.all_servers_store.SetValue(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_OK, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
server_name := ctx.Colorizer.Fix(server.Server.Name)
|
||||
m.all_servers_store.SetValue(iter, 1, server_name)
|
||||
m.all_servers_store.SetValue(iter, 2, m.gamemodes[server.Server.Gamemode])
|
||||
m.all_servers_store.SetValue(iter, 2, m.getGameModeName(server.Server.Gamemode))
|
||||
m.all_servers_store.SetValue(iter, 3, server.Server.Map)
|
||||
m.all_servers_store.SetValue(iter, 4, server.Server.Players + "/" + server.Server.Maxplayers)
|
||||
m.all_servers_store.SetValue(iter, 5, server.Server.Ping)
|
||||
@ -1016,13 +1025,13 @@ func (m *MainWindow) loadFavoriteServers() {
|
||||
}
|
||||
|
||||
if server.Server.Name == "" && server.Server.Players == "" {
|
||||
m.fav_servers_store.Set(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_NO, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
m.fav_servers_store.SetValue(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_NO, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
m.fav_servers_store.SetValue(iter, 7, server.Server.Ip + ":" + server.Server.Port)
|
||||
} else {
|
||||
m.fav_servers_store.Set(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_OK, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
m.fav_servers_store.SetValue(iter, 0, gtk.NewImage().RenderIcon(gtk.STOCK_OK, gtk.ICON_SIZE_SMALL_TOOLBAR, "").GPixbuf)
|
||||
server_name := ctx.Colorizer.Fix(server.Server.Name)
|
||||
m.fav_servers_store.SetValue(iter, 1, server_name)
|
||||
m.fav_servers_store.SetValue(iter, 2, m.gamemodes[server.Server.Gamemode])
|
||||
m.fav_servers_store.SetValue(iter, 2, m.getGameModeName(server.Server.Gamemode))
|
||||
m.fav_servers_store.SetValue(iter, 3, server.Server.Map)
|
||||
m.fav_servers_store.SetValue(iter, 4, server.Server.Players + "/" + server.Server.Maxplayers)
|
||||
m.fav_servers_store.SetValue(iter, 5, server.Server.Ping)
|
||||
@ -1167,8 +1176,9 @@ func (m *MainWindow) showShortServerInformation() {
|
||||
|
||||
for _, value := range parsed_players_info {
|
||||
iter = new(gtk.TreeIter)
|
||||
nick := ctx.Colorizer.Fix(value["nick"])
|
||||
m.server_info_store.Append(iter)
|
||||
m.server_info_store.SetValue(iter, 0, value["nick"])
|
||||
m.server_info_store.SetValue(iter, 0, nick)
|
||||
m.server_info_store.SetValue(iter, 1, "(frags: " + value["frags"] + " | ping: " + value["ping"] + ")")
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user