Merge branch 'groupimportfix' of cwtch.im/cwtch into master
This commit is contained in:
commit
862476293c
|
@ -126,7 +126,6 @@ func (ps *profileStore) eventHandler() {
|
||||||
ps.profile.Name = ev.Data[event.ProfileName]
|
ps.profile.Name = ev.Data[event.ProfileName]
|
||||||
ps.profile.SetAttribute("name", ev.Data[event.ProfileName])
|
ps.profile.SetAttribute("name", ev.Data[event.ProfileName])
|
||||||
ps.save()
|
ps.save()
|
||||||
|
|
||||||
case event.SetAttribute:
|
case event.SetAttribute:
|
||||||
ps.profile.SetAttribute(ev.Data[event.Key], ev.Data[event.Data])
|
ps.profile.SetAttribute(ev.Data[event.Key], ev.Data[event.Data])
|
||||||
ps.save()
|
ps.save()
|
||||||
|
@ -135,26 +134,39 @@ func (ps *profileStore) eventHandler() {
|
||||||
if exists {
|
if exists {
|
||||||
contact.SetAttribute(ev.Data[event.Key], ev.Data[event.Data])
|
contact.SetAttribute(ev.Data[event.Key], ev.Data[event.Data])
|
||||||
ps.save()
|
ps.save()
|
||||||
|
} else {
|
||||||
|
log.Errorf("error setting attribute on peer %v peer does not exist", ev)
|
||||||
}
|
}
|
||||||
case event.SetGroupAttribute:
|
case event.SetGroupAttribute:
|
||||||
group, exists := ps.profile.Groups[ev.Data[event.GroupID]]
|
group, exists := ps.profile.Groups[ev.Data[event.GroupID]]
|
||||||
if exists {
|
if exists {
|
||||||
group.SetAttribute(ev.Data[event.Key], ev.Data[event.Data])
|
group.SetAttribute(ev.Data[event.Key], ev.Data[event.Data])
|
||||||
ps.save()
|
ps.save()
|
||||||
|
} else {
|
||||||
|
log.Errorf("error setting attribute on group %v group does not exist", ev)
|
||||||
}
|
}
|
||||||
case event.NewGroupInvite:
|
case event.NewGroupInvite:
|
||||||
var gci protocol.GroupChatInvite
|
var gci protocol.GroupChatInvite
|
||||||
proto.Unmarshal([]byte(ev.Data[event.GroupInvite]), &gci)
|
err := proto.Unmarshal([]byte(ev.Data[event.GroupInvite]), &gci)
|
||||||
|
if err == nil {
|
||||||
ps.profile.ProcessInvite(&gci, ev.Data[event.RemotePeer])
|
ps.profile.ProcessInvite(&gci, ev.Data[event.RemotePeer])
|
||||||
ps.save()
|
ps.save()
|
||||||
group := ps.profile.Groups[gci.GetGroupName()]
|
group := ps.profile.Groups[gci.GetGroupName()]
|
||||||
ps.streamStores[group.GroupID] = NewStreamStore(ps.directory, group.LocalID, ps.password)
|
ps.streamStores[group.GroupID] = NewStreamStore(ps.directory, group.LocalID, ps.password)
|
||||||
|
} else {
|
||||||
|
log.Errorf("error storing new group invite: %v %v", ev, err)
|
||||||
|
}
|
||||||
case event.NewMessageFromGroup:
|
case event.NewMessageFromGroup:
|
||||||
groupid := ev.Data[event.GroupID]
|
groupid := ev.Data[event.GroupID]
|
||||||
received, _ := time.Parse(time.RFC3339Nano, ev.Data[event.TimestampReceived])
|
received, _ := time.Parse(time.RFC3339Nano, ev.Data[event.TimestampReceived])
|
||||||
sent, _ := time.Parse(time.RFC3339Nano, ev.Data[event.TimestampSent])
|
sent, _ := time.Parse(time.RFC3339Nano, ev.Data[event.TimestampSent])
|
||||||
message := model.Message{Received: received, Timestamp: sent, Message: ev.Data[event.Data], PeerID: ev.Data[event.RemotePeer], Signature: []byte(ev.Data[event.Signature]), PreviousMessageSig: []byte(ev.Data[event.PreviousSignature])}
|
message := model.Message{Received: received, Timestamp: sent, Message: ev.Data[event.Data], PeerID: ev.Data[event.RemotePeer], Signature: []byte(ev.Data[event.Signature]), PreviousMessageSig: []byte(ev.Data[event.PreviousSignature])}
|
||||||
ps.streamStores[groupid].Write(message)
|
ss, exists := ps.streamStores[groupid]
|
||||||
|
if exists {
|
||||||
|
ss.Write(message)
|
||||||
|
} else {
|
||||||
|
log.Errorf("error storing new group message: %v stream store does not exist", ev)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue