1
0
Fork 0

Compare commits

...

5 Commits

Author SHA1 Message Date
louiz’ 1013266a09 Do not send an empty line at the start of each steam message
We shouldn’t try to include the “Subject” part of the message: it’s always
empty, because this is only sent by MUC servers to signal the room’s
topic. This is not used in one-to-one conversations.

fix #20
2016-08-12 11:33:17 +02:00
Chteufleur 699c7cb5c5 Send Ad-Hoc command depending if user is already registered. 2016-08-11 19:56:03 +02:00
Chteufleur 149c5f9117 Fix nil pointer on database.GetLine() 2016-08-11 19:49:21 +02:00
chteufleur a6281fe093 Merge branch 'master' of louiz/go-xmpp4steam into master 2016-08-11 12:04:59 +02:00
chteufleur 30ab74c5a0 Merge branch 'master' of louiz/go-xmpp4steam into master 2016-08-11 11:50:39 +02:00
3 changed files with 32 additions and 21 deletions

View File

@ -132,7 +132,7 @@ func RemoveLine(jid string) bool {
func GetLine(jid string) *DatabaseLine { func GetLine(jid string) *DatabaseLine {
ret := getLine(jid) ret := getLine(jid)
if ret.SteamLogin == "" { if ret == nil || ret.SteamLogin == "" {
log.Printf("%sLine empty", LogDebug) log.Printf("%sLine empty", LogDebug)
return nil return nil
} }

View File

@ -124,7 +124,7 @@ func (g *GatewayInfo) ReceivedXMPP_Presence(presence *xmpp.Presence) {
func (g *GatewayInfo) ReceivedXMPP_Message(message *xmpp.Message) { func (g *GatewayInfo) ReceivedXMPP_Message(message *xmpp.Message) {
steamID := strings.SplitN(message.To, "@", 2)[0] steamID := strings.SplitN(message.To, "@", 2)[0]
g.SendSteamMessage(steamID, message.Subject+"\n"+message.Body) g.SendSteamMessage(steamID, message.Body)
} }
func (g *GatewayInfo) XMPP_Disconnect() { func (g *GatewayInfo) XMPP_Disconnect() {

View File

@ -25,17 +25,24 @@ func execDiscoCommand(iq *xmpp.Iq) {
reply := iq.Response(xmpp.IQTypeResult) reply := iq.Response(xmpp.IQTypeResult)
discoItem := &xmpp.DiscoItems{Node: xmpp.NodeAdHocCommand} discoItem := &xmpp.DiscoItems{Node: xmpp.NodeAdHocCommand}
jidBare := strings.SplitN(iq.From, "/", 2)[0]
dbUser := database.GetLine(jidBare)
// Add available commands // Add available commands
discoI := &xmpp.DiscoItem{JID: jid.Domain, Node: CommandAuthcode, Name: "Add Steam Auth Code"} if dbUser == nil {
discoItem.Item = append(discoItem.Item, *discoI) discoI := &xmpp.DiscoItem{JID: jid.Domain, Node: CommandGetIdentifiants, Name: "Steam registration"}
discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandGetIdentifiants, Name: "Steam registration"} discoItem.Item = append(discoItem.Item, *discoI)
discoItem.Item = append(discoItem.Item, *discoI) } else {
discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandDisconnectSteam, Name: "Force Steam deconnexion"} // Add only if user is registered
discoItem.Item = append(discoItem.Item, *discoI) discoI := &xmpp.DiscoItem{JID: jid.Domain, Node: CommandAuthcode, Name: "Add Steam Auth Code"}
discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandRemoveRegistration, Name: "Remove registration"} discoItem.Item = append(discoItem.Item, *discoI)
discoItem.Item = append(discoItem.Item, *discoI) discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandDisconnectSteam, Name: "Force Steam deconnexion"}
discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandToggleDebugMode, Name: "Toggle debug mode"} discoItem.Item = append(discoItem.Item, *discoI)
discoItem.Item = append(discoItem.Item, *discoI) discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandRemoveRegistration, Name: "Remove registration"}
discoItem.Item = append(discoItem.Item, *discoI)
discoI = &xmpp.DiscoItem{JID: jid.Domain, Node: CommandToggleDebugMode, Name: "Toggle debug mode"}
discoItem.Item = append(discoItem.Item, *discoI)
}
reply.PayloadEncode(discoItem) reply.PayloadEncode(discoItem)
comp.Out <- reply comp.Out <- reply
@ -108,18 +115,22 @@ func execCommandAdHoc(iq *xmpp.Iq) {
jidBare := strings.SplitN(iq.From, "/", 2)[0] jidBare := strings.SplitN(iq.From, "/", 2)[0]
dbUser := database.GetLine(jidBare) dbUser := database.GetLine(jidBare)
dbUser.Debug = !dbUser.Debug if dbUser != nil {
g := MapGatewayInfo[jidBare] dbUser.Debug = !dbUser.Debug
ok := dbUser.UpdateLine() g := MapGatewayInfo[jidBare]
if ok && g != nil { ok := dbUser.UpdateLine()
g.DebugMessage = dbUser.Debug if ok && g != nil {
if dbUser.Debug { g.DebugMessage = dbUser.Debug
note.Value = "Debug activated." if dbUser.Debug {
note.Value = "Debug activated."
} else {
note.Value = "Debug desactivated."
}
} else { } else {
note.Value = "Debug desactivated." note.Value = "Failed to update your profile. :("
} }
} else { } else {
note.Value = "Failed to update your profile. :(" note.Value = "Your not registered."
} }
cmd.Note = *note cmd.Note = *note