package appservice import ( "fmt" "strings" log "github.com/sirupsen/logrus" . "git.deuxfleurs.fr/Deuxfleurs/easybridge/connector" ) const EASYBRIDGE_SYSTEM_PROTOCOL string = "✯◡✯" func ezbrMxId() string { return fmt.Sprintf("@%s:%s", registration.SenderLocalpart, config.MatrixDomain) } func ezbrSystemRoom(user_mx_id string) (string, error) { return dbGetMxPmRoom(EASYBRIDGE_SYSTEM_PROTOCOL, UserID("Easybridge"), ezbrMxId(), user_mx_id, "easybridge") } func ezbrSystemSend(user_mx_id string, msg string) { mx_room_id, err := ezbrSystemRoom(user_mx_id) if err == nil { err = mx.SendMessageAs(mx_room_id, "m.text", msg, ezbrMxId()) } if err != nil { log.Warnf("(%s) %s", user_mx_id, msg) } } func ezbrSystemSendf(user_mx_id string, format string, args ...interface{}) { ezbrSystemSend(user_mx_id, fmt.Sprintf(format, args...)) } // ---- func roomAlias(protocol string, id RoomID) string { return fmt.Sprintf("_ezbr__%s__%s", safeStringForId(string(id)), protocol) } func userMxId(protocol string, id UserID) string { return fmt.Sprintf("_ezbr__%s__%s", safeStringForId(string(id)), protocol) } func safeStringForId(in string) string { id2 := strings.ReplaceAll(in, "#", "") id2 = strings.ReplaceAll(id2, "@", "__") id2 = strings.ReplaceAll(id2, ":", "_") return id2 }