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 (
|
var (
|
||||||
mymap = make(map[string]string)
|
mapConfig = make(map[string]string)
|
||||||
|
SetSteamId = make(map[string]struct{})
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
err := cfg.Load(configurationFilePath, mymap)
|
err := cfg.Load(configurationFilePath, mapConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Failed to load configuration file located at %s", configurationFilePath, err)
|
log.Fatal("Failed to load configuration file located at %s", configurationFilePath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// XMPP config
|
// XMPP config
|
||||||
xmpp.Addr = mymap["xmpp_server_address"]+":"+mymap["xmpp_server_port"]
|
xmpp.Addr = mapConfig["xmpp_server_address"]+":"+mapConfig["xmpp_server_port"]
|
||||||
xmpp.JidStr = mymap["xmpp_hostname"]
|
xmpp.JidStr = mapConfig["xmpp_hostname"]
|
||||||
xmpp.Secret = mymap["xmpp_secret"]
|
xmpp.Secret = mapConfig["xmpp_secret"]
|
||||||
xmpp.PreferedJID = mymap["xmpp_authorized_jid"]
|
xmpp.PreferedJID = mapConfig["xmpp_authorized_jid"]
|
||||||
|
|
||||||
// Steam config
|
// Steam config
|
||||||
steam.Username = mymap["steam_login"]
|
steam.Username = mapConfig["steam_login"]
|
||||||
steam.Password = mymap["steam_password"]
|
steam.Password = mapConfig["steam_password"]
|
||||||
steam.AuthCode = mymap["steam_auth_code"]
|
steam.AuthCode = mapConfig["steam_auth_code"]
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
@ -127,6 +128,10 @@ func gatewaySteamXmppAction() {
|
||||||
|
|
||||||
case steam.ActionDisconnected:
|
case steam.ActionDisconnected:
|
||||||
xmpp.Disconnect()
|
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() {
|
func gatewaySteamXmppPresence() {
|
||||||
for {
|
for {
|
||||||
// name := steam.ChanPresence
|
// name := steam.ChanPresence
|
||||||
steamId := <- steam.ChanPresence
|
steamId := <- steam.ChanPresence
|
||||||
stat := <- steam.ChanPresenceSteam
|
stat := <- steam.ChanPresenceSteam
|
||||||
|
|
||||||
|
SetSteamId[steamId] = struct{}{}
|
||||||
|
|
||||||
var status string
|
var status string
|
||||||
var tpye string
|
var tpye string
|
||||||
switch stat {
|
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)
|
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() {
|
func Run() {
|
||||||
log.Printf("%sRunning", LogInfo)
|
log.Printf("%sRunning", LogInfo)
|
||||||
|
setLoginInfos()
|
||||||
client = steam.NewClient()
|
client = steam.NewClient()
|
||||||
client.ConnectionTimeout = 10 * time.Second
|
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 {
|
func IsConnected() bool {
|
||||||
return client.Connected()
|
return client.Connected()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue