Switch back to go-whatsapp upstream

This commit is contained in:
Tulir Asokan
2018-08-31 11:24:27 +03:00
parent 79851a62b4
commit e4a78832ad
6 changed files with 35 additions and 43 deletions

View File

@ -72,7 +72,7 @@ type JsonMessageHandler interface {
/**
The RawMessageHandler interface needs to be implemented to receive raw messages dispatched by the dispatcher.
Raw messages are the raw protobuf structs instead of the easy-to-use structs in TextMessageHandler, ImageMessageHandler, etc..
*/
*/
type RawMessageHandler interface {
Handler
HandleRawMessage(message *proto.WebMessageInfo)
@ -96,51 +96,45 @@ func (wac *Conn) handle(message interface{}) {
}
case string:
for _, h := range wac.handler {
x, ok := h.(JsonMessageHandler)
if !ok {
continue
if x, ok := h.(JsonMessageHandler); ok {
go x.HandleJsonMessage(m)
}
go x.HandleJsonMessage(m)
}
case TextMessage:
for _, h := range wac.handler {
x, ok := h.(TextMessageHandler)
if !ok {
continue
if x, ok := h.(TextMessageHandler); ok {
go x.HandleTextMessage(m)
}
go x.HandleTextMessage(m)
}
case ImageMessage:
for _, h := range wac.handler {
x, ok := h.(ImageMessageHandler)
if !ok {
continue
if x, ok := h.(ImageMessageHandler); ok {
go x.HandleImageMessage(m)
}
go x.HandleImageMessage(m)
}
case VideoMessage:
for _, h := range wac.handler {
x, ok := h.(VideoMessageHandler)
if !ok {
continue
if x, ok := h.(VideoMessageHandler); ok {
go x.HandleVideoMessage(m)
}
go x.HandleVideoMessage(m)
}
case AudioMessage:
for _, h := range wac.handler {
x, ok := h.(AudioMessageHandler)
if !ok {
continue
if x, ok := h.(AudioMessageHandler); ok {
go x.HandleAudioMessage(m)
}
go x.HandleAudioMessage(m)
}
case DocumentMessage:
for _, h := range wac.handler {
x, ok := h.(DocumentMessageHandler)
if !ok {
continue
if x, ok := h.(DocumentMessageHandler); ok {
go x.HandleDocumentMessage(m)
}
}
case *proto.WebMessageInfo:
for _, h := range wac.handler {
if x, ok := h.(RawMessageHandler); ok {
go x.HandleRawMessage(m)
}
go x.HandleDocumentMessage(m)
}
}
@ -157,13 +151,7 @@ func (wac *Conn) dispatch(msg interface{}) {
if con, ok := message.Content.([]interface{}); ok {
for a := range con {
if v, ok := con[a].(*proto.WebMessageInfo); ok {
for _, h := range wac.handler {
x, ok := h.(RawMessageHandler)
if !ok {
continue
}
go x.HandleRawMessage(v)
}
wac.handle(v)
wac.handle(parseProtoMessage(v))
}
}