spark-server/internal/module/meta/logic/enums_wire.go
DESKTOP-L8OUL9F\gfl0034 715ace7ac6 feat(square): 广场 Bot/RSS 发布与媒体校验
支持广场机器人发帖与媒体类型检查,并补充相关迁移与 i18n。
2026-09-24 23:07:06 +08:00

92 lines
3.9 KiB
Go

package logic
import (
friendentity "spark-server/internal/module/friend/entity"
groupentity "spark-server/internal/module/group/entity"
"spark-server/internal/module/meta/entity"
uploadentity "spark-server/internal/module/upload/entity"
userentity "spark-server/internal/module/user/entity"
"spark-server/internal/pkg/errs"
"spark-server/internal/pkg/i18n"
"spark-server/internal/transport/tcp/protocol"
)
func tcpCommand(lang i18n.Lang) []entity.Item {
return []entity.Item{
item(lang, "tcp_command", "auth", int(protocol.CmdAuth)),
item(lang, "tcp_command", "heartbeat", int(protocol.CmdHeartbeat)),
item(lang, "tcp_command", "generate_msg_id", int(protocol.CmdGenerateMsgID)),
item(lang, "tcp_command", "send_message", int(protocol.CmdSendMessage)),
item(lang, "tcp_command", "send_ack", int(protocol.CmdSendAck)),
item(lang, "tcp_command", "message", int(protocol.CmdMessage)),
item(lang, "tcp_command", "push_ack", int(protocol.CmdPushAck)),
item(lang, "tcp_command", "read", int(protocol.CmdReadMessage)),
item(lang, "tcp_command", "recall", int(protocol.CmdRecallMessage)),
item(lang, "tcp_command", "sync_inbox", int(protocol.CmdSyncInbox)),
item(lang, "tcp_command", "sync_inbox_finish", int(protocol.CmdSyncInboxFinish)),
item(lang, "tcp_command", "sync_messages", int(protocol.CmdSyncMessages)),
item(lang, "tcp_command", "sync_messages_finish", int(protocol.CmdSyncMessagesFinish)),
item(lang, "tcp_command", "kick", int(protocol.CmdKick)),
item(lang, "tcp_command", "delete_message", int(protocol.CmdDeleteMessage)),
}
}
func envelopeCode(lang i18n.Lang) []entity.Item {
return []entity.Item{
code(lang, "ok", errs.OK),
code(lang, "invalid_argument", errs.ErrInvalidArgument),
code(lang, "frame_too_large", errs.ErrFrameTooLarge),
code(lang, "invalid_frame", errs.ErrInvalidFrame),
code(lang, "invalid_proxy_header", errs.ErrProxyHeader),
code(lang, "media_oversized", errs.ErrMediaOversized),
code(lang, "unauthorized", errs.ErrUnauthorized),
code(lang, "not_authenticated", errs.ErrNotAuthenticated),
code(lang, "verify_code_invalid", errs.ErrVerifyCodeInvalid),
code(lang, "forbidden", errs.ErrForbidden),
code(lang, "not_found", errs.ErrNotFound),
code(lang, "media_expired", errs.ErrMediaExpired),
code(lang, "duplicate", errs.ErrDuplicate),
code(lang, "busy", errs.ErrBusy),
code(lang, "rate_limited", errs.ErrRateLimited),
code(lang, "outbound_dropped", errs.ErrOutboundDropped),
code(lang, "connection_closed", errs.ErrClosed),
code(lang, "internal", errs.ErrInner),
code(lang, "operation_failed", errs.ErrOperatFail),
code(lang, "clock_rewind", errs.ErrClockRewind),
code(lang, "unavailable", errs.ErrAvailable),
code(lang, "timeout", errs.ErrTimeout),
}
}
func code(lang i18n.Lang, name string, err *errs.AppError) entity.Item {
return entity.Item{Value: err.Code, Name: name, Label: i18n.ErrorMsg(lang, err.Code)}
}
func language(lang i18n.Lang) []entity.Item {
return strSet(lang, "language", string(i18n.ZhCN), string(i18n.En), string(i18n.ZhTW))
}
func uploadPurpose(lang i18n.Lang) []entity.Item {
return strSet(lang, "upload_purpose",
uploadentity.PurposeAvatar, uploadentity.PurposeGroupAvatar, uploadentity.PurposeChatImage,
uploadentity.PurposeChatVoice, uploadentity.PurposeChatVideo, uploadentity.PurposeChatGIF, uploadentity.PurposeChatFile,
uploadentity.PurposeMomentImage, uploadentity.PurposeMomentVideo, uploadentity.PurposeMomentCover,
)
}
func systemKind(lang i18n.Lang) []entity.Item {
return strSet(lang, "system_kind",
friendentity.SystemKindBecameFriends, userentity.SystemKindWelcome,
groupentity.SystemKindCreated, groupentity.SystemKindInvite,
groupentity.SystemKindLeave, groupentity.SystemKindKick, groupentity.SystemKindDissolve, groupentity.SystemKindTransfer,
)
}
func strSet(lang i18n.Lang, set string, values ...string) []entity.Item {
out := make([]entity.Item, 0, len(values))
for _, v := range values {
out = append(out, item(lang, set, v, v))
}
return out
}