Add option to disable backfilling in big guilds
This commit is contained in:
@@ -71,6 +71,7 @@ type BridgeConfig struct {
|
||||
Initial BackfillLimitPart `yaml:"initial"`
|
||||
Missed BackfillLimitPart `yaml:"missed"`
|
||||
} `yaml:"forward_limits"`
|
||||
MaxGuildMembers int `yaml:"max_guild_members"`
|
||||
} `yaml:"backfill"`
|
||||
|
||||
Encryption bridgeconfig.EncryptionConfig `yaml:"encryption"`
|
||||
|
||||
@@ -72,6 +72,7 @@ func DoUpgrade(helper *up.Helper) {
|
||||
helper.Copy(up.Int, "bridge", "backfill", "forward_limits", "initial", "channel")
|
||||
helper.Copy(up.Int, "bridge", "backfill", "forward_limits", "missed", "dm")
|
||||
helper.Copy(up.Int, "bridge", "backfill", "forward_limits", "missed", "channel")
|
||||
helper.Copy(up.Int, "bridge", "backfill", "max_guild_members")
|
||||
helper.Copy(up.Bool, "bridge", "encryption", "allow")
|
||||
helper.Copy(up.Bool, "bridge", "encryption", "default")
|
||||
helper.Copy(up.Bool, "bridge", "encryption", "require")
|
||||
|
||||
@@ -186,6 +186,7 @@ bridge:
|
||||
# Optional extra text sent when joining a management room.
|
||||
additional_help: ""
|
||||
|
||||
# Settings for backfilling messages.
|
||||
backfill:
|
||||
# Limits for forward backfilling.
|
||||
forward_limits:
|
||||
@@ -202,6 +203,10 @@ bridge:
|
||||
missed:
|
||||
dm: 0
|
||||
channel: 0
|
||||
# Maximum members in a guild to enable backfilling. Set to -1 to disable limit.
|
||||
# This can be used as a rough heuristic to disable backfilling in channels that are too active.
|
||||
# Currently only applies to missed message backfill.
|
||||
max_guild_members: -1
|
||||
|
||||
# End-to-bridge encryption support options.
|
||||
#
|
||||
|
||||
2
user.go
2
user.go
@@ -843,10 +843,12 @@ func (user *User) handleGuild(meta *discordgo.Guild, timestamp time.Time, isInSp
|
||||
}
|
||||
} else {
|
||||
portal.UpdateInfo(user, ch)
|
||||
if user.bridge.Config.Bridge.Backfill.MaxGuildMembers < 0 || meta.MemberCount < user.bridge.Config.Bridge.Backfill.MaxGuildMembers {
|
||||
portal.ForwardBackfillMissed(user, ch)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(meta.Roles) > 0 {
|
||||
user.handleGuildRoles(meta.ID, meta.Roles)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user