From 42c3787a0a055b0987936dde9927f7090dd75a02 Mon Sep 17 00:00:00 2001 From: Chteufleur Date: Mon, 26 Oct 2015 23:37:29 +0100 Subject: [PATCH] XMPP debug in config file + stability --- main.go | 20 ++++++++++++++------ servers.addr | 2 +- steam/steam.go | 2 +- xmpp/xmpp.go | 12 +++++++++--- xmpp4steam.cfg | 1 + 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 16e0dd9..980529e 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,7 @@ import ( ) const ( - Version = "go-xmpp4steam v0.1.2" + Version = "go-xmpp4steam v0.1.3" configurationFilePath = "xmpp4steam.cfg" ) @@ -35,6 +35,7 @@ func init() { xmpp.JidStr = mapConfig["xmpp_hostname"] xmpp.Secret = mapConfig["xmpp_secret"] xmpp.PreferedJID = mapConfig["xmpp_authorized_jid"] + xmpp.Debug = mapConfig["xmpp_debug"] == "true" // Steam config steam.Username = mapConfig["steam_login"] @@ -64,18 +65,25 @@ func main() { // XMPP -> Steam gateways func gatewayXmppSteamAction() { + connecting := false for { action := <-xmpp.ChanAction switch action { case xmpp.ActionConnexion: if !steam.IsConnected() { - steam.Connect() + if !connecting { + steam.Connect() + connecting = true + } + } else { + connecting = false } case xmpp.ActionDeconnexion: if steam.IsConnected() { steam.Disconnect() + connecting = false } } } @@ -147,8 +155,8 @@ func gatewaySteamXmppMessage() { func gatewaySteamXmppPresence() { for { - // name := steam.ChanPresence steamId := <-steam.ChanPresence + name := <- steam.ChanPresence stat := <-steam.ChanPresenceSteam gameName := <-steam.ChanPresence @@ -177,17 +185,17 @@ func gatewaySteamXmppPresence() { } if _, ok := SetSteamId[steamId]; !ok { - xmpp.SendPresenceFrom(status, xmpp.Type_subscribe, steamId+"@"+xmpp.JidStr, gameName) + xmpp.SendPresenceFrom(status, xmpp.Type_subscribe, steamId+"@"+xmpp.JidStr, gameName, name) SetSteamId[steamId] = struct{}{} } - xmpp.SendPresenceFrom(status, tpye, steamId+"@"+xmpp.JidStr, gameName) + xmpp.SendPresenceFrom(status, tpye, steamId+"@"+xmpp.JidStr, gameName, name) } } func disconnectAllSteamUser() { for sid, _ := range SetSteamId { - xmpp.SendPresenceFrom(xmpp.Status_offline, xmpp.Type_unavailable, sid+"@"+xmpp.JidStr, "") + xmpp.SendPresenceFrom(xmpp.Status_offline, xmpp.Type_unavailable, sid+"@"+xmpp.JidStr, "", "") delete(SetSteamId, sid) } } diff --git a/servers.addr b/servers.addr index a9a6c3f..f03b60b 100644 --- a/servers.addr +++ b/servers.addr @@ -1 +1 @@ -{"Addresses":[{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.42","Port":27019},{"IP":"146.66.152.11","Port":27017},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.41","Port":27020},{"IP":"146.66.152.10","Port":27019},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.197.40","Port":27019},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.41","Port":27020},{"IP":"146.66.152.10","Port":27017},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.197.41","Port":27018},{"IP":"146.66.152.10","Port":27020},{"IP":"146.66.152.10","Port":27018},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.197.42","Port":27020},{"IP":"146.66.152.11","Port":27018},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.40","Port":27017},{"IP":"146.66.152.11","Port":27020},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.42","Port":27017},{"IP":"185.25.180.15","Port":27019},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27018},{"IP":"155.133.242.9","Port":27019},{"IP":"155.133.242.9","Port":27017},{"IP":"185.25.180.15","Port":27020},{"IP":"185.25.180.14","Port":27017},{"IP":"185.25.182.10","Port":27019},{"IP":"185.25.182.10","Port":27020},{"IP":"146.66.155.8","Port":27017},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.180.15","Port":27018},{"IP":"155.133.242.9","Port":27018},{"IP":"185.25.182.10","Port":27017},{"IP":"185.25.180.14","Port":27019},{"IP":"185.25.180.14","Port":27020},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.8","Port":27019},{"IP":"146.66.155.8","Port":27019},{"IP":"146.66.155.8","Port":27018},{"IP":"185.25.180.15","Port":27017},{"IP":"155.133.242.8","Port":27020},{"IP":"185.25.180.14","Port":27018},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.14","Port":27017},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.9","Port":27018},{"IP":"208.78.164.12","Port":27019},{"IP":"208.78.164.9","Port":27019},{"IP":"208.78.164.11","Port":27017},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.13","Port":27017},{"IP":"208.78.164.12","Port":27017},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.10","Port":27018}]} \ No newline at end of file +{"Addresses":[{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.197.41","Port":27018},{"IP":"146.66.152.11","Port":27020},{"IP":"146.66.152.11","Port":27018},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.197.42","Port":27020},{"IP":"162.254.197.40","Port":27020},{"IP":"146.66.152.10","Port":27017},{"IP":"146.66.152.10","Port":27020},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.42","Port":27019},{"IP":"146.66.152.10","Port":27018},{"IP":"146.66.152.11","Port":27017},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.197.40","Port":27017},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.197.40","Port":27019},{"IP":"146.66.152.10","Port":27019},{"IP":"162.254.197.42","Port":27017},{"IP":"155.133.242.9","Port":27020},{"IP":"155.133.242.9","Port":27019},{"IP":"155.133.242.9","Port":27018},{"IP":"185.25.180.15","Port":27018},{"IP":"185.25.180.15","Port":27020},{"IP":"185.25.180.14","Port":27018},{"IP":"185.25.180.15","Port":27017},{"IP":"155.133.242.8","Port":27019},{"IP":"185.25.180.15","Port":27019},{"IP":"185.25.180.14","Port":27017},{"IP":"185.25.180.14","Port":27020},{"IP":"155.133.242.8","Port":27020},{"IP":"146.66.155.8","Port":27017},{"IP":"155.133.242.9","Port":27017},{"IP":"155.133.242.8","Port":27018},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27018},{"IP":"185.25.180.14","Port":27019},{"IP":"146.66.155.8","Port":27018},{"IP":"185.25.182.10","Port":27017},{"IP":"155.133.242.8","Port":27017},{"IP":"185.25.182.10","Port":27020},{"IP":"185.25.182.10","Port":27019},{"IP":"146.66.155.8","Port":27019},{"IP":"208.78.164.9","Port":27018},{"IP":"208.78.164.9","Port":27019},{"IP":"208.78.164.10","Port":27019},{"IP":"208.78.164.10","Port":27018},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.13","Port":27017},{"IP":"208.78.164.12","Port":27018},{"IP":"208.78.164.14","Port":27017},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.12","Port":27017},{"IP":"208.78.164.14","Port":27018}]} \ No newline at end of file diff --git a/steam/steam.go b/steam/steam.go index 2f3ed60..87dec29 100644 --- a/steam/steam.go +++ b/steam/steam.go @@ -87,8 +87,8 @@ func mainSteam() { ioutil.WriteFile(serverAddrs, b, 0666) case *steam.PersonaStateEvent: - // ChanPresence <- e.Name ChanPresence <- e.FriendId.ToString() + ChanPresence <- e.Name ChanPresenceSteam <- e.State ChanPresence <- e.GameName diff --git a/xmpp/xmpp.go b/xmpp/xmpp.go index 603c033..ac6e91f 100644 --- a/xmpp/xmpp.go +++ b/xmpp/xmpp.go @@ -49,13 +49,15 @@ var ( ChanAction = make(chan string) CurrentStatus = Status_offline + + Debug = true ) func Run() { log.Printf("%sRunning", LogInfo) // Create stream and configure it as a component connection. jid = must(xmpp.ParseJID(JidStr)).(xmpp.JID) - stream = must(xmpp.NewStream(Addr, &xmpp.StreamConfig{LogStanzas: true})).(*xmpp.Stream) + stream = must(xmpp.NewStream(Addr, &xmpp.StreamConfig{LogStanzas: Debug})).(*xmpp.Stream) comp = must(xmpp.NewComponentXMPP(stream, jid, Secret)).(*xmpp.XMPP) mainXMPP() @@ -108,11 +110,15 @@ func SendPresence(status, tpye, message string) { comp.Out <- xmpp.Presence{To: PreferedJID, From: jid.Domain, Show: status, Type: tpye, Status: message} } -func SendPresenceFrom(status, tpye, from, message string) { +func SendPresenceFrom(status, tpye, from, message, nick string) { if message == "" { + comp.Out <- xmpp.Presence{To: PreferedJID, From: from, Show: status, Type: tpye, Nick: nick} + } else if nick == "" { + comp.Out <- xmpp.Presence{To: PreferedJID, From: from, Show: status, Type: tpye, Status: message} + } else if nick == "" { comp.Out <- xmpp.Presence{To: PreferedJID, From: from, Show: status, Type: tpye} } else { - comp.Out <- xmpp.Presence{To: PreferedJID, From: from, Show: status, Type: tpye, Status: message} + comp.Out <- xmpp.Presence{To: PreferedJID, From: from, Show: status, Type: tpye, Status: message, Nick: nick} } } diff --git a/xmpp4steam.cfg b/xmpp4steam.cfg index 3734f75..e4aff89 100644 --- a/xmpp4steam.cfg +++ b/xmpp4steam.cfg @@ -4,6 +4,7 @@ xmpp_server_port=5347 xmpp_hostname=xmppsteam.kingpenguin.tk xmpp_secret=xmpp4steam_password xmpp_authorized_jid=chteufleur@kingpenguin.tk +xmpp_debug=true # Steam informations steam_login=toto