mirror of
https://github.com/mautrix/whatsapp.git
synced 2026-08-24 13:04:56 -04:00
54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
|
|
package voip
|
||
|
|
|
||
|
|
import (
|
||
|
|
"maunium.net/go/mautrix/event"
|
||
|
|
"maunium.net/go/mautrix/id"
|
||
|
|
)
|
||
|
|
|
||
|
|
var supportedWhatsAppCallReactions = map[string]string{
|
||
|
|
"👍": "thumbsup",
|
||
|
|
"❤️": "generic",
|
||
|
|
"😂": "generic",
|
||
|
|
"😮": "generic",
|
||
|
|
"😢": "generic",
|
||
|
|
"🙏": "generic",
|
||
|
|
}
|
||
|
|
|
||
|
|
func ElementCallReactionEventType() event.Type {
|
||
|
|
return event.Type{Type: EventTypeElementCallReaction, Class: event.MessageEventType}
|
||
|
|
}
|
||
|
|
|
||
|
|
func NormalizeWhatsAppCallReaction(emoji string) (string, bool) {
|
||
|
|
if _, ok := supportedWhatsAppCallReactions[emoji]; ok {
|
||
|
|
return emoji, true
|
||
|
|
}
|
||
|
|
return "", false
|
||
|
|
}
|
||
|
|
|
||
|
|
func ElementCallReactionName(emoji string) string {
|
||
|
|
if name, ok := supportedWhatsAppCallReactions[emoji]; ok {
|
||
|
|
return name
|
||
|
|
}
|
||
|
|
return "generic"
|
||
|
|
}
|
||
|
|
|
||
|
|
func BuildElementCallReactionContent(membershipEventID id.EventID, emoji string) map[string]any {
|
||
|
|
return map[string]any{
|
||
|
|
"m.relates_to": map[string]any{
|
||
|
|
"rel_type": string(event.RelReference),
|
||
|
|
"event_id": membershipEventID,
|
||
|
|
},
|
||
|
|
"emoji": emoji,
|
||
|
|
"name": ElementCallReactionName(emoji),
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func BuildElementCallHandRaiseContent(membershipEventID id.EventID) map[string]any {
|
||
|
|
return map[string]any{
|
||
|
|
"m.relates_to": map[string]any{
|
||
|
|
"rel_type": string(event.RelAnnotation),
|
||
|
|
"event_id": membershipEventID,
|
||
|
|
"key": "🖐️",
|
||
|
|
},
|
||
|
|
}
|
||
|
|
}
|