diff options
Diffstat (limited to 'vendor/github.com/matterbridge/go-whatsapp/store.go')
-rw-r--r-- | vendor/github.com/matterbridge/go-whatsapp/store.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/github.com/matterbridge/go-whatsapp/store.go b/vendor/github.com/matterbridge/go-whatsapp/store.go new file mode 100644 index 00000000..70b89efd --- /dev/null +++ b/vendor/github.com/matterbridge/go-whatsapp/store.go @@ -0,0 +1,45 @@ +package whatsapp + +import ( + "github.com/matterbridge/go-whatsapp/binary" + "strings" +) + +type Store struct { + Contacts map[string]Contact +} + +type Contact struct { + Jid string + Notify string + Name string + Short string +} + +func newStore() *Store { + return &Store{ + make(map[string]Contact), + } +} + +func (wac *Conn) updateContacts(contacts interface{}) { + c, ok := contacts.([]interface{}) + if !ok { + return + } + + for _, contact := range c { + contactNode, ok := contact.(binary.Node) + if !ok { + continue + } + + jid := strings.Replace(contactNode.Attributes["jid"], "@c.us", "@s.whatsapp.net", 1) + wac.Store.Contacts[jid] = Contact{ + jid, + contactNode.Attributes["notify"], + contactNode.Attributes["name"], + contactNode.Attributes["short"], + } + } +} |