|
1 | 1 | package main |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "cmp" |
4 | 5 | "encoding/json" |
5 | 6 | "fmt" |
6 | 7 | "os" |
@@ -69,6 +70,29 @@ type RegisterJSON struct { |
69 | 70 | YourUserID id.UserID `json:"your_user_id"` |
70 | 71 | } |
71 | 72 |
|
| 73 | +var registerBridgeTypeMap = map[string]string{ |
| 74 | + "slack": "slackgo", |
| 75 | + "discord": "discordgo", |
| 76 | + "instagram": "instagramgo", |
| 77 | + "facebook": "facebookgo", |
| 78 | +} |
| 79 | + |
| 80 | +var reverseRegisterBridgeTypeMap = make(map[string]string, len(registerBridgeTypeMap)) |
| 81 | + |
| 82 | +func init() { |
| 83 | + for k, v := range registerBridgeTypeMap { |
| 84 | + reverseRegisterBridgeTypeMap[v] = k |
| 85 | + } |
| 86 | +} |
| 87 | + |
| 88 | +func toInternalBridgeType(typeName string) string { |
| 89 | + return cmp.Or(reverseRegisterBridgeTypeMap[typeName], typeName) |
| 90 | +} |
| 91 | + |
| 92 | +func toCloudBridgeType(typeName string) string { |
| 93 | + return cmp.Or(registerBridgeTypeMap[typeName], typeName) |
| 94 | +} |
| 95 | + |
72 | 96 | func doRegisterBridge(ctx *cli.Context, bridge, bridgeType string, onlyGet bool) (*RegisterJSON, error) { |
73 | 97 | whoami, err := getCachedWhoami(ctx) |
74 | 98 | if err != nil { |
@@ -107,6 +131,7 @@ func doRegisterBridge(ctx *cli.Context, bridge, bridgeType string, onlyGet bool) |
107 | 131 | // Remove the explicit bot user namespace (same as sender_localpart) |
108 | 132 | resp.Namespaces.UserIDs = resp.Namespaces.UserIDs[0:1] |
109 | 133 |
|
| 134 | + bridgeType = toCloudBridgeType(bridgeType) |
110 | 135 | state := status.StateRunning |
111 | 136 | if (bridgeType != "" && bridgeType != "heisenbridge") || bridge == "androidsms" || bridge == "imessagecloud" || bridge == "imessage" { |
112 | 137 | state = status.StateStarting |
|
0 commit comments