discordid: make function names more explicit
These are fairly wordy but help maintain correctness. A channel portal ID should not be confused with a guild portal ID.
This commit is contained in:
@@ -37,7 +37,7 @@ func (dc *DiscordClient) FetchMessages(ctx context.Context, fetchParams bridgev2
|
||||
return nil, bridgev2.ErrNotLoggedIn
|
||||
}
|
||||
|
||||
channelID := discordid.ParsePortalID(fetchParams.Portal.ID)
|
||||
channelID := discordid.ParseChannelPortalID(fetchParams.Portal.ID)
|
||||
log := zerolog.Ctx(ctx).With().
|
||||
Str("action", "fetch messages").
|
||||
Str("channel_id", channelID).
|
||||
|
||||
@@ -117,10 +117,10 @@ func (d *DiscordClient) getChannelChatInfo(ctx context.Context, ch *discordgo.Ch
|
||||
var parentPortalID *networkid.PortalID
|
||||
if ch.Type == discordgo.ChannelTypeGuildCategory || (ch.ParentID == "" && ch.GuildID != "") {
|
||||
// Categories and uncategorized guild channels always have the guild as their parent.
|
||||
parentPortalID = ptr.Ptr(discordid.MakeGuildPortalID(ch.GuildID))
|
||||
parentPortalID = ptr.Ptr(discordid.MakeGuildPortalIDWithID(ch.GuildID))
|
||||
} else if ch.ParentID != "" {
|
||||
// Categorized guild channels.
|
||||
parentPortalID = ptr.Ptr(discordid.MakePortalID(ch.ParentID))
|
||||
parentPortalID = ptr.Ptr(discordid.MakeChannelPortalIDWithID(ch.ParentID))
|
||||
}
|
||||
|
||||
var memberList bridgev2.ChatMemberList
|
||||
@@ -176,7 +176,7 @@ func (d *DiscordClient) GetChatInfo(ctx context.Context, portal *bridgev2.Portal
|
||||
return d.getGuildSpaceInfo(ctx, guild)
|
||||
} else {
|
||||
// Portal is to a channel of some kind (private or guild).
|
||||
channelID := discordid.ParsePortalID(portal.ID)
|
||||
channelID := discordid.ParseChannelPortalID(portal.ID)
|
||||
|
||||
ch, err := d.Session.State.Channel(channelID)
|
||||
if err != nil {
|
||||
|
||||
@@ -253,7 +253,7 @@ func (d *DiscordClient) canSeeGuildChannel(ctx context.Context, ch *discordgo.Ch
|
||||
func (d *DiscordClient) guildPortalKeyFromID(guildID string) networkid.PortalKey {
|
||||
// TODO: Support configuring `split_portals`.
|
||||
return networkid.PortalKey{
|
||||
ID: discordid.MakeGuildPortalID(guildID),
|
||||
ID: discordid.MakeGuildPortalIDWithID(guildID),
|
||||
Receiver: d.UserLogin.ID,
|
||||
}
|
||||
}
|
||||
@@ -432,6 +432,6 @@ func (d *DiscordClient) syncChannel(_ context.Context, ch *discordgo.Channel) {
|
||||
d.connector.Bridge.QueueRemoteEvent(d.UserLogin, &DiscordChatResync{
|
||||
Client: d,
|
||||
channel: ch,
|
||||
portalKey: discordid.MakePortalKey(ch, d.UserLogin.ID, true),
|
||||
portalKey: discordid.MakeChannelPortalKey(ch, d.UserLogin.ID, true),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ func (d *DiscordClient) wrapDiscordMessage(msg *discordgo.Message, typ bridgev2.
|
||||
DiscordEventMeta: &DiscordEventMeta{
|
||||
Type: typ,
|
||||
PortalKey: networkid.PortalKey{
|
||||
ID: discordid.MakePortalID(msg.ChannelID),
|
||||
ID: discordid.MakeChannelPortalIDWithID(msg.ChannelID),
|
||||
Receiver: d.UserLogin.ID,
|
||||
},
|
||||
},
|
||||
@@ -221,7 +221,7 @@ func (d *DiscordClient) wrapDiscordReaction(reaction *discordgo.MessageReaction,
|
||||
DiscordEventMeta: &DiscordEventMeta{
|
||||
Type: evtType,
|
||||
PortalKey: networkid.PortalKey{
|
||||
ID: discordid.MakePortalID(reaction.ChannelID),
|
||||
ID: discordid.MakeChannelPortalIDWithID(reaction.ChannelID),
|
||||
Receiver: d.UserLogin.ID,
|
||||
},
|
||||
},
|
||||
@@ -238,7 +238,7 @@ func (d *DiscordClient) handleDiscordTyping(ctx context.Context, typing *discord
|
||||
log := zerolog.Ctx(ctx)
|
||||
|
||||
portalKey := networkid.PortalKey{
|
||||
ID: discordid.MakePortalID(typing.ChannelID),
|
||||
ID: discordid.MakeChannelPortalIDWithID(typing.ChannelID),
|
||||
Receiver: d.UserLogin.ID,
|
||||
}
|
||||
portal, err := d.connector.Bridge.GetExistingPortalByKey(ctx, portalKey)
|
||||
|
||||
@@ -46,7 +46,7 @@ func (d *DiscordClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.M
|
||||
|
||||
portal := msg.Portal
|
||||
guildID := portal.Metadata.(*discordid.PortalMetadata).GuildID
|
||||
channelID := discordid.ParsePortalID(portal.ID)
|
||||
channelID := discordid.ParseChannelPortalID(portal.ID)
|
||||
|
||||
sendReq, err := d.connector.MsgConv.ToDiscord(ctx, d.Session, msg)
|
||||
if err != nil {
|
||||
@@ -57,7 +57,7 @@ func (d *DiscordClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2.M
|
||||
// TODO: When supporting threads (and not a bot user), send a thread referer.
|
||||
options = append(options, discordgo.WithChannelReferer(guildID, channelID))
|
||||
|
||||
sentMsg, err := d.Session.ChannelMessageSendComplex(discordid.ParsePortalID(msg.Portal.ID), sendReq, options...)
|
||||
sentMsg, err := d.Session.ChannelMessageSendComplex(discordid.ParseChannelPortalID(msg.Portal.ID), sendReq, options...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -86,7 +86,7 @@ func (d *DiscordClient) HandleMatrixEdit(ctx context.Context, msg *bridgev2.Matr
|
||||
)
|
||||
|
||||
_, err := d.Session.ChannelMessageEdit(
|
||||
discordid.ParsePortalID(msg.Portal.ID),
|
||||
discordid.ParseChannelPortalID(msg.Portal.ID),
|
||||
discordid.ParseMessageID(msg.EditTarget.ID),
|
||||
content,
|
||||
)
|
||||
@@ -113,7 +113,7 @@ func (d *DiscordClient) HandleMatrixReaction(ctx context.Context, reaction *brid
|
||||
|
||||
err := d.Session.MessageReactionAddUser(
|
||||
meta.GuildID,
|
||||
discordid.ParsePortalID(portal.ID),
|
||||
discordid.ParseChannelPortalID(portal.ID),
|
||||
discordid.ParseMessageID(reaction.TargetMessage.ID),
|
||||
discordid.ParseEmojiID(reaction.PreHandleResp.EmojiID),
|
||||
)
|
||||
@@ -123,7 +123,7 @@ func (d *DiscordClient) HandleMatrixReaction(ctx context.Context, reaction *brid
|
||||
func (d *DiscordClient) HandleMatrixReactionRemove(ctx context.Context, removal *bridgev2.MatrixReactionRemove) error {
|
||||
removing := removal.TargetReaction
|
||||
emojiID := removing.EmojiID
|
||||
channelID := discordid.ParsePortalID(removing.Room.ID)
|
||||
channelID := discordid.ParseChannelPortalID(removing.Room.ID)
|
||||
guildID := removal.Portal.Metadata.(*discordid.PortalMetadata).GuildID
|
||||
|
||||
err := d.Session.MessageReactionRemoveUser(guildID, channelID, discordid.ParseMessageID(removing.MessageID), discordid.ParseEmojiID(emojiID), discordid.ParseUserLoginID(d.UserLogin.ID))
|
||||
@@ -131,7 +131,7 @@ func (d *DiscordClient) HandleMatrixReactionRemove(ctx context.Context, removal
|
||||
}
|
||||
|
||||
func (d *DiscordClient) HandleMatrixMessageRemove(ctx context.Context, removal *bridgev2.MatrixMessageRemove) error {
|
||||
channelID := discordid.ParsePortalID(removal.Portal.ID)
|
||||
channelID := discordid.ParseChannelPortalID(removal.Portal.ID)
|
||||
messageID := discordid.ParseMessageID(removal.TargetMessage.ID)
|
||||
return d.Session.ChannelMessageDelete(channelID, messageID)
|
||||
}
|
||||
@@ -177,7 +177,7 @@ func (d *DiscordClient) HandleMatrixReadReceipt(ctx context.Context, msg *bridge
|
||||
|
||||
// TODO: Support threads.
|
||||
guildID := msg.Portal.Metadata.(*discordid.PortalMetadata).GuildID
|
||||
channelID := discordid.ParsePortalID(msg.Portal.ID)
|
||||
channelID := discordid.ParseChannelPortalID(msg.Portal.ID)
|
||||
resp, err := d.Session.ChannelMessageAckNoToken(channelID, targetMessageID, discordgo.WithChannelReferer(guildID, channelID))
|
||||
if err != nil {
|
||||
log.Err(err).Msg("Failed to send read receipt to Discord")
|
||||
@@ -202,7 +202,7 @@ func (d *DiscordClient) viewingChannel(ctx context.Context, portal *bridgev2.Por
|
||||
d.markedOpenedLock.Lock()
|
||||
defer d.markedOpenedLock.Unlock()
|
||||
|
||||
channelID := discordid.ParsePortalID(portal.ID)
|
||||
channelID := discordid.ParseChannelPortalID(portal.ID)
|
||||
log := zerolog.Ctx(ctx).With().
|
||||
Str("channel_id", channelID).Logger()
|
||||
|
||||
@@ -233,7 +233,7 @@ func (d *DiscordClient) HandleMatrixTyping(ctx context.Context, msg *bridgev2.Ma
|
||||
_ = d.viewingChannel(ctx, msg.Portal)
|
||||
|
||||
guildID := msg.Portal.Metadata.(*discordid.PortalMetadata).GuildID
|
||||
channelID := discordid.ParsePortalID(msg.Portal.ID)
|
||||
channelID := discordid.ParseChannelPortalID(msg.Portal.ID)
|
||||
// TODO: Support threads properly when sending the referer.
|
||||
err := d.Session.ChannelTyping(channelID, discordgo.WithChannelReferer(guildID, channelID))
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ func (p *ProvisioningAPI) guildsList(w http.ResponseWriter, r *http.Request, log
|
||||
// guild, as it recognizes the guild returned from this HTTP
|
||||
// endpoint and the actual space itself as separate "entities".
|
||||
// (Despite this, they point to identical rooms.)
|
||||
ID: string(discordid.MakeGuildPortalID(guild.ID)),
|
||||
ID: string(discordid.MakeGuildPortalIDWithID(guild.ID)),
|
||||
Name: guild.Name,
|
||||
AvatarURL: discordgo.EndpointGuildIcon(guild.ID, guild.Icon),
|
||||
Bridged: beingBridged,
|
||||
|
||||
Reference in New Issue
Block a user