Send presence from all steam user on XMPP when steam disconnect.
This commit is contained in:
parent
8148a003cb
commit
a487b8be97
26
main.go
26
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 {
|
||||
|
|
|
|||
|
|
@ -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}]}
|
||||
{"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}]}
|
||||
|
|
@ -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()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue