Merge pull request #2131 from imalasong/pr/3

fix(feishu): skip empty random_reaction_emoji entries
This commit is contained in:
daming大铭 2026-03-30 17:51:26 +08:00 committed by GitHub
commit 803b8bc02f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -245,15 +245,18 @@ func (c *FeishuChannel) SendPlaceholder(ctx context.Context, chatID string) (str
// ReactToMessage implements channels.ReactionCapable. // ReactToMessage implements channels.ReactionCapable.
// Adds a reaction (randomly chosen from config) and returns an undo function to remove it. // Adds a reaction (randomly chosen from config) and returns an undo function to remove it.
func (c *FeishuChannel) ReactToMessage(ctx context.Context, chatID, messageID string) (func(), error) { func (c *FeishuChannel) ReactToMessage(ctx context.Context, chatID, messageID string) (func(), error) {
// Get emoji list from config // Get emoji list from config (Feishu emoji_type keys, e.g. Pin, THUMBSUP).
emojiList := c.config.RandomReactionEmoji // Ignore empty entries so a list like ["", "Pin"] does not randomly pick "" (API 231001).
var chosenEmoji string var candidates []string
if len(emojiList) == 0 { for _, e := range c.config.RandomReactionEmoji {
// Default to "Pin" if no config e = strings.TrimSpace(e)
chosenEmoji = "Pin" if e != "" {
} else { candidates = append(candidates, e)
idx := rand.Intn(len(emojiList)) }
chosenEmoji = emojiList[idx] }
chosenEmoji := "Pin"
if len(candidates) > 0 {
chosenEmoji = candidates[rand.Intn(len(candidates))]
} }
req := larkim.NewCreateMessageReactionReqBuilder(). req := larkim.NewCreateMessageReactionReqBuilder().