diff --git a/controller/misc.go b/controller/misc.go
index ac094b2..71c7419 100644
--- a/controller/misc.go
+++ b/controller/misc.go
@@ -120,18 +120,28 @@ func SendEmailVerification(c *gin.Context) {
})
return
}
- if common.EmailDomainRestrictionEnabled {
+ if config.EmailDomainRestrictionEnabled {
+ parts := strings.Split(email, "@")
+ localPart := parts[0]
+ domainPart := parts[1]
+
+ containsSpecialSymbols := strings.Contains(localPart, "+") || strings.Count(localPart, ".") > 1
allowed := false
- for _, domain := range common.EmailDomainWhitelist {
- if strings.HasSuffix(email, "@"+domain) {
+ for _, domain := range config.EmailDomainWhitelist {
+ if domainPart == domain {
allowed = true
break
}
}
- if !allowed {
+ if allowed && !containsSpecialSymbols {
+ c.JSON(http.StatusOK, gin.H{
+ "success": true,
+ "message": "Your email address is allowed.",
+ })
+ } else {
c.JSON(http.StatusOK, gin.H{
"success": false,
- "message": "管理员启用了邮箱域名白名单,您的邮箱地址的域名不在白名单中",
+ "message": "The administrator has enabled the email domain name whitelist, and your email address is not allowed due to special symbols or it's not in the whitelist.",
})
return
}
diff --git a/relay/channel/claude/relay-claude.go b/relay/channel/claude/relay-claude.go
index 4de8dc0..2b5d3d2 100644
--- a/relay/channel/claude/relay-claude.go
+++ b/relay/channel/claude/relay-claude.go
@@ -34,6 +34,7 @@ func requestOpenAI2ClaudeComplete(textRequest dto.GeneralOpenAIRequest) *ClaudeR
StopSequences: nil,
Temperature: textRequest.Temperature,
TopP: textRequest.TopP,
+ TopK: textRequest.TopK,
Stream: textRequest.Stream,
}
if claudeRequest.MaxTokensToSample == 0 {
@@ -63,6 +64,7 @@ func requestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
StopSequences: nil,
Temperature: textRequest.Temperature,
TopP: textRequest.TopP,
+ TopK: textRequest.TopK,
Stream: textRequest.Stream,
}
if claudeRequest.MaxTokens == 0 {
diff --git a/web/.prettierrc.mjs b/web/.prettierrc.mjs
new file mode 100644
index 0000000..ecae84d
--- /dev/null
+++ b/web/.prettierrc.mjs
@@ -0,0 +1 @@
+module.exports = require("@so1ve/prettier-config");
diff --git a/web/.prettierrc.mjs b/web/.prettierrc.mjs
deleted file mode 100644
index 7890fda..0000000
--- a/web/.prettierrc.mjs
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("@so1ve/prettier-config");
\ No newline at end of file
diff --git a/web/src/helpers/render.js b/web/src/helpers/render.js
index a71215e..cd1f8d9 100644
--- a/web/src/helpers/render.js
+++ b/web/src/helpers/render.js
@@ -8,39 +8,37 @@ export function renderText(text, limit) {
return text;
}
+/**
+ * Render group tags based on the input group string
+ * @param {string} group - The input group string
+ * @returns {JSX.Element} - The rendered group tags
+ */
export function renderGroup(group) {
if (group === '') {
- return