diff --git a/main.go b/main.go index b7448ba..01c2bf9 100644 --- a/main.go +++ b/main.go @@ -19,25 +19,26 @@ const ( ) var ( - mymap = make(map[string]string) + mapConfig = make(map[string]string) + SetSteamId = make(map[string]struct{}) ) func init() { - err := cfg.Load(configurationFilePath, mymap) + err := cfg.Load(configurationFilePath, mapConfig) if err != nil { log.Fatal("Failed to load configuration file located at %s", configurationFilePath, err) } // XMPP config - xmpp.Addr = mymap["xmpp_server_address"]+":"+mymap["xmpp_server_port"] - xmpp.JidStr = mymap["xmpp_hostname"] - xmpp.Secret = mymap["xmpp_secret"] - xmpp.PreferedJID = mymap["xmpp_authorized_jid"] + xmpp.Addr = mapConfig["xmpp_server_address"]+":"+mapConfig["xmpp_server_port"] + xmpp.JidStr = mapConfig["xmpp_hostname"] + xmpp.Secret = mapConfig["xmpp_secret"] + xmpp.PreferedJID = mapConfig["xmpp_authorized_jid"] // Steam config - steam.Username = mymap["steam_login"] - steam.Password = mymap["steam_password"] - steam.AuthCode = mymap["steam_auth_code"] + steam.Username = mapConfig["steam_login"] + steam.Password = mapConfig["steam_password"] + steam.AuthCode = mapConfig["steam_auth_code"] } func main() { @@ -127,6 +128,10 @@ func gatewaySteamXmppAction() { case steam.ActionDisconnected: xmpp.Disconnect() + for sid, _ := range SetSteamId { + xmpp.SendPresenceFrom(xmpp.Status_offline, xmpp.Type_unavailable, sid+"@"+xmpp.JidStr) + delete(SetSteamId, sid) + } } } } @@ -139,13 +144,14 @@ func gatewaySteamXmppMessage() { } } - func gatewaySteamXmppPresence() { for { // name := steam.ChanPresence steamId := <- steam.ChanPresence stat := <- steam.ChanPresenceSteam + SetSteamId[steamId] = struct{}{} + var status string var tpye string switch stat { diff --git a/servers.addr b/servers.addr index 0bd7b4b..43e3985 100644 --- a/servers.addr +++ b/servers.addr @@ -1 +1 @@ -{"Addresses":[{"IP":"185.25.180.14","Port":27019},{"IP":"185.25.180.15","Port":27020},{"IP":"155.133.242.8","Port":27019},{"IP":"185.25.180.14","Port":27018},{"IP":"185.25.180.15","Port":27018},{"IP":"185.25.180.14","Port":27020},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.8","Port":27020},{"IP":"162.254.197.40","Port":27017},{"IP":"185.25.180.15","Port":27019},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.9","Port":27018},{"IP":"155.133.242.9","Port":27020},{"IP":"155.133.242.9","Port":27019},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.197.40","Port":27019},{"IP":"185.25.180.15","Port":27017},{"IP":"162.254.197.40","Port":27021},{"IP":"155.133.242.9","Port":27017},{"IP":"185.25.180.14","Port":27017},{"IP":"162.254.197.42","Port":27017},{"IP":"162.254.197.42","Port":27020},{"IP":"162.254.197.41","Port":27017},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.41","Port":27019},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.41","Port":27021},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.197.41","Port":27018},{"IP":"162.254.196.42","Port":27018},{"IP":"162.254.197.41","Port":27021},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.197.41","Port":27020},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.41","Port":27018},{"IP":"146.66.152.10","Port":27019},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.40","Port":27020},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.40","Port":27018},{"IP":"146.66.152.10","Port":27018},{"IP":"146.66.152.11","Port":27020},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.43","Port":27019},{"IP":"146.66.152.11","Port":27017},{"IP":"146.66.152.10","Port":27020},{"IP":"146.66.152.10","Port":27017},{"IP":"146.66.152.11","Port":27018},{"IP":"146.66.155.8","Port":27018},{"IP":"146.66.155.8","Port":27019},{"IP":"185.25.182.10","Port":27020},{"IP":"185.25.182.10","Port":27018},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27019},{"IP":"146.66.155.8","Port":27017},{"IP":"185.25.182.10","Port":27017},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.11","Port":27017},{"IP":"208.78.164.13","Port":27018},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.12","Port":27019},{"IP":"208.78.164.12","Port":27018},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.13","Port":27017},{"IP":"208.78.164.11","Port":27019},{"IP":"208.78.164.10","Port":27017},{"IP":"208.78.164.12","Port":27017},{"IP":"208.78.164.10","Port":27019},{"IP":"208.78.164.9","Port":27019}]} \ No newline at end of file +{"Addresses":[{"IP":"162.254.196.42","Port":27020},{"IP":"162.254.196.42","Port":27017},{"IP":"162.254.196.41","Port":27020},{"IP":"162.254.196.40","Port":27017},{"IP":"162.254.196.43","Port":27018},{"IP":"162.254.196.42","Port":27019},{"IP":"162.254.196.41","Port":27018},{"IP":"162.254.196.40","Port":27021},{"IP":"162.254.196.40","Port":27019},{"IP":"162.254.196.43","Port":27017},{"IP":"162.254.196.42","Port":27021},{"IP":"162.254.196.40","Port":27020},{"IP":"162.254.196.41","Port":27021},{"IP":"146.66.152.11","Port":27020},{"IP":"146.66.152.11","Port":27018},{"IP":"162.254.196.41","Port":27019},{"IP":"162.254.196.43","Port":27020},{"IP":"162.254.197.41","Port":27018},{"IP":"162.254.196.43","Port":27019},{"IP":"162.254.197.42","Port":27019},{"IP":"162.254.197.41","Port":27021},{"IP":"146.66.152.10","Port":27020},{"IP":"162.254.196.41","Port":27017},{"IP":"162.254.196.42","Port":27018},{"IP":"146.66.152.10","Port":27018},{"IP":"162.254.196.40","Port":27018},{"IP":"162.254.197.41","Port":27020},{"IP":"146.66.152.10","Port":27019},{"IP":"162.254.197.42","Port":27018},{"IP":"162.254.196.43","Port":27021},{"IP":"162.254.197.40","Port":27021},{"IP":"162.254.197.40","Port":27020},{"IP":"162.254.197.40","Port":27017},{"IP":"162.254.197.40","Port":27018},{"IP":"162.254.197.40","Port":27019},{"IP":"162.254.197.42","Port":27021},{"IP":"162.254.197.41","Port":27019},{"IP":"146.66.152.10","Port":27017},{"IP":"146.66.152.11","Port":27017},{"IP":"146.66.152.11","Port":27019},{"IP":"162.254.197.42","Port":27017},{"IP":"162.254.197.42","Port":27020},{"IP":"162.254.197.41","Port":27017},{"IP":"185.25.182.10","Port":27019},{"IP":"146.66.155.8","Port":27019},{"IP":"185.25.182.10","Port":27020},{"IP":"146.66.155.8","Port":27020},{"IP":"185.25.182.10","Port":27017},{"IP":"185.25.180.14","Port":27020},{"IP":"146.66.155.8","Port":27018},{"IP":"146.66.155.8","Port":27017},{"IP":"185.25.182.10","Port":27018},{"IP":"185.25.180.15","Port":27020},{"IP":"155.133.242.9","Port":27018},{"IP":"185.25.180.14","Port":27017},{"IP":"155.133.242.9","Port":27019},{"IP":"155.133.242.8","Port":27018},{"IP":"155.133.242.8","Port":27017},{"IP":"155.133.242.8","Port":27020},{"IP":"185.25.180.15","Port":27019},{"IP":"155.133.242.8","Port":27019},{"IP":"185.25.180.14","Port":27018},{"IP":"155.133.242.9","Port":27020},{"IP":"185.25.180.15","Port":27018},{"IP":"185.25.180.15","Port":27017},{"IP":"185.25.180.14","Port":27019},{"IP":"155.133.242.9","Port":27017},{"IP":"208.78.164.14","Port":27018},{"IP":"208.78.164.13","Port":27017},{"IP":"208.78.164.13","Port":27019},{"IP":"208.78.164.11","Port":27018},{"IP":"208.78.164.10","Port":27018},{"IP":"208.78.164.14","Port":27019},{"IP":"208.78.164.13","Port":27018},{"IP":"208.78.164.10","Port":27019},{"IP":"208.78.164.9","Port":27018},{"IP":"208.78.164.12","Port":27017},{"IP":"208.78.164.12","Port":27018},{"IP":"208.78.164.9","Port":27017},{"IP":"208.78.164.11","Port":27017}]} \ No newline at end of file diff --git a/steam/steam.go b/steam/steam.go index f47d4a9..f4bf119 100644 --- a/steam/steam.go +++ b/steam/steam.go @@ -47,28 +47,10 @@ var ( ChanAction = make(chan string) ) -func init() { - var sentryHash steam.SentryHash - sentryHash, err := ioutil.ReadFile(sentryFile) - - myLoginInfo.Username = Username - myLoginInfo.Password = Password - - // TODO think again - if err == nil { - myLoginInfo.SentryFileHash = sentryHash - log.Printf("%sAuthentification by SentryFileHash", LogDebug) - } else if AuthCode != "" { - myLoginInfo.AuthCode = AuthCode - log.Printf("%sAuthentification by AuthCode", LogDebug) - } else { - log.Printf("%sFirst authentification", LogDebug) - } -} - func Run() { log.Printf("%sRunning", LogInfo) + setLoginInfos() client = steam.NewClient() client.ConnectionTimeout = 10 * time.Second @@ -124,6 +106,27 @@ func mainSteam() { } } + +func setLoginInfos() { + var sentryHash steam.SentryHash + sentryHash, err := ioutil.ReadFile(sentryFile) + + myLoginInfo.Username = Username + myLoginInfo.Password = Password + + // TODO think again + if err == nil { + myLoginInfo.SentryFileHash = sentryHash + log.Printf("%sAuthentification by SentryFileHash", LogDebug) + } else if AuthCode != "" { + myLoginInfo.AuthCode = AuthCode + log.Printf("%sAuthentification by AuthCode", LogDebug) + } else { + log.Printf("%sFirst authentification", LogDebug) + } +} + + func IsConnected() bool { return client.Connected() }