Adjust some calls for bot accounts
This commit is contained in:
@@ -1548,6 +1548,10 @@ func (portal *Portal) HandleMatrixReadReceipt(brUser bridge.User, eventID id.Eve
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !sender.Session.IsUser {
|
||||||
|
// Drop read receipts from bot users (after checking for the thread auto-join stuff)
|
||||||
|
return
|
||||||
|
}
|
||||||
msg := portal.bridge.DB.Message.GetByMXID(portal.Key, eventID)
|
msg := portal.bridge.DB.Message.GetByMXID(portal.Key, eventID)
|
||||||
if msg == nil {
|
if msg == nil {
|
||||||
msg = portal.bridge.DB.Message.GetClosestBefore(portal.Key, discordThreadID, receipt.Timestamp)
|
msg = portal.bridge.DB.Message.GetClosestBefore(portal.Key, discordThreadID, receipt.Timestamp)
|
||||||
|
|||||||
@@ -79,7 +79,12 @@ func (thread *Thread) Join(user *User) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
user.log.Debugfln("Joining thread %s@%s", thread.ID, thread.ParentID)
|
user.log.Debugfln("Joining thread %s@%s", thread.ID, thread.ParentID)
|
||||||
err := user.Session.ThreadJoinWithLocation(thread.ID, discordgo.ThreadJoinLocationContextMenu)
|
var err error
|
||||||
|
if user.Session.IsUser {
|
||||||
|
err = user.Session.ThreadJoinWithLocation(thread.ID, discordgo.ThreadJoinLocationContextMenu)
|
||||||
|
} else {
|
||||||
|
err = user.Session.ThreadJoin(thread.ID)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
user.log.Errorfln("Error joining thread %s@%s: %v", thread.ID, thread.ParentID, err)
|
user.log.Errorfln("Error joining thread %s@%s: %v", thread.ID, thread.ParentID, err)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
25
user.go
25
user.go
@@ -562,8 +562,6 @@ func (user *User) Connect() error {
|
|||||||
|
|
||||||
user.Session.AddHandler(user.interactionSuccessHandler)
|
user.Session.AddHandler(user.interactionSuccessHandler)
|
||||||
|
|
||||||
user.Session.Identify.Presence.Status = "online"
|
|
||||||
|
|
||||||
return user.Session.Open()
|
return user.Session.Open()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -637,6 +635,9 @@ func (user *User) readyHandler(_ *discordgo.Session, r *discordgo.Ready) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (user *User) subscribeGuilds(delay time.Duration) {
|
func (user *User) subscribeGuilds(delay time.Duration) {
|
||||||
|
if !user.Session.IsUser {
|
||||||
|
return
|
||||||
|
}
|
||||||
for _, guildMeta := range user.Session.State.Guilds {
|
for _, guildMeta := range user.Session.State.Guilds {
|
||||||
guild := user.bridge.GetGuildByID(guildMeta.ID, false)
|
guild := user.bridge.GetGuildByID(guildMeta.ID, false)
|
||||||
if guild != nil && guild.MXID != "" {
|
if guild != nil && guild.MXID != "" {
|
||||||
@@ -1172,15 +1173,17 @@ func (user *User) bridgeGuild(guildID string, everything bool) error {
|
|||||||
}
|
}
|
||||||
guild.Update()
|
guild.Update()
|
||||||
|
|
||||||
user.log.Debugfln("Subscribing to guild %s after bridging", guild.ID)
|
if user.Session.IsUser {
|
||||||
err = user.Session.SubscribeGuild(discordgo.GuildSubscribeData{
|
user.log.Debugfln("Subscribing to guild %s after bridging", guild.ID)
|
||||||
GuildID: guild.ID,
|
err = user.Session.SubscribeGuild(discordgo.GuildSubscribeData{
|
||||||
Typing: true,
|
GuildID: guild.ID,
|
||||||
Activities: true,
|
Typing: true,
|
||||||
Threads: true,
|
Activities: true,
|
||||||
})
|
Threads: true,
|
||||||
if err != nil {
|
})
|
||||||
user.log.Warnfln("Failed to subscribe to %s: %v", guild.ID, err)
|
if err != nil {
|
||||||
|
user.log.Warnfln("Failed to subscribe to %s: %v", guild.ID, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in New Issue
Block a user