spark-server/internal/module/seed/logic/nicknames.go
DESKTOP-L8OUL9F\gfl0034 ce2cdf6bf3 feat: music 运营曲目、seed 机器人欢迎消息,并补充 novels/music OpenAPI
合并 origin/main 设备注册后,纳入本地 music 模块、seed 命令与 popadmin 相关路由/文档;music migration 编号为 0020 以避免与 0019_devices 冲突。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 16:07:05 +08:00

50 lines
2.0 KiB
Go

package logic
import (
"fmt"
"math/rand"
)
// botNicknames are English display names assigned deterministically to bot indexes.
var botNicknames = []string{
"Spark Assistant", "Nova Guide", "Echo Helper", "Atlas Bot", "Luna Concierge",
"Orion Buddy", "Mira Support", "Felix Demo", "Aria Sample", "Kai Showcase",
"Nina Pilot", "Leo Welcome", "Zoe Messenger", "Owen Chat", "Ivy Reply",
"Ethan Pulse", "Clara Beam", "Miles Spark", "Ruby Wave", "Hugo Note",
"Vera Link", "Jonas Thread", "Piper Mail", "Silas Ping", "Nora Signal",
"Quinn Relay", "Mabel Soft", "Theo Bright", "Elsie Calm", "Finn Steady",
"Iris Clear", "Jude Warm", "Lana Quick", "Marco Soft", "Nell Crisp",
"Omar Fresh", "Paige Light", "Reed Cool", "Sage Kind", "Tess Open",
"Uma Soft", "Vince Clear", "Willa Bright", "Xander Calm", "Yara Warm",
"Zane Quick", "Ada Soft", "Blake Crisp", "Cora Fresh", "Drew Light",
"Eve Cool", "Ford Kind", "Gina Open", "Hank Soft", "Indie Clear",
"Jade Bright", "Kurt Calm", "Liv Warm", "Moss Quick", "Nia Soft",
"Otto Crisp", "Pearl Fresh", "Quill Light", "Rose Cool", "Seth Kind",
"Tara Open", "Uri Soft", "Veda Clear", "Wes Bright", "Xena Calm",
"York Warm", "Zara Quick", "Amy Soft", "Ben Crisp", "Cy Fresh",
"Dot Light", "Eli Cool", "Fay Kind", "Gus Open", "Hal Soft",
"Ina Clear", "Jay Bright", "Kim Calm", "Lou Warm", "Max Quick",
"Nyx Soft", "Oli Crisp", "Pam Fresh", "Rex Light", "Sky Cool",
"Ty Kind", "Una Open", "Vic Soft", "Wyn Clear", "Xia Bright",
"Yen Calm", "Zed Warm", "Ash Quick", "Bea Soft", "Cal Crisp",
}
// nicknameForBot returns a stable English nickname for bot index 1..100.
func nicknameForBot(index int) string {
if index < 1 {
index = 1
}
if index == 1 {
return botNicknames[0]
}
// Deterministic shuffle pick so re-runs keep the same names/avatars.
r := rand.New(rand.NewSource(int64(20260923 + index*9973)))
base := botNicknames[1+(index-2)%(len(botNicknames)-1)]
suffix := r.Intn(90) + 10
nick := fmt.Sprintf("%s %d", base, suffix)
if len(nick) > 64 {
return nick[:64]
}
return nick
}