Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
c56ec3b3
authored
Apr 28, 2025
by
JoeyLearnsToCode
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: support searching channels by base url
parent
8160fb64
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
11 deletions
+22
-11
model/channel.go
+20
-9
web/src/components/ChannelsTable.js
+1
-1
web/src/i18n/locales/en.json
+1
-1
No files found.
model/channel.go
View file @
c56ec3b3
...
...
@@ -119,10 +119,15 @@ func SearchChannels(keyword string, group string, model string, idSort bool) ([]
// 如果是 PostgreSQL,使用双引号
if
common
.
UsingPostgreSQL
{
keyCol
=
`"key"`
modelsCol
=
`"models"`
}
baseURLCol
:=
"`base_url`"
// 如果是 PostgreSQL,使用双引号
if
common
.
UsingPostgreSQL
{
baseURLCol
=
`"base_url"`
}
order
:=
"priority desc"
if
idSort
{
order
=
"id desc"
...
...
@@ -142,11 +147,11 @@ func SearchChannels(keyword string, group string, model string, idSort bool) ([]
// sqlite, PostgreSQL
groupCondition
=
`(',' || `
+
groupCol
+
` || ',') LIKE ?`
}
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?) AND "
+
modelsCol
+
` LIKE ? AND `
+
groupCondition
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
model
+
"%"
,
"%,"
+
group
+
",%"
)
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?
OR "
+
baseURLCol
+
" LIKE ?
) AND "
+
modelsCol
+
` LIKE ? AND `
+
groupCondition
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
keyword
+
"%"
,
"%"
+
model
+
"%"
,
"%,"
+
group
+
",%"
)
}
else
{
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?) AND "
+
modelsCol
+
" LIKE ?"
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
model
+
"%"
)
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?
OR "
+
baseURLCol
+
" LIKE ?
) AND "
+
modelsCol
+
" LIKE ?"
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
keyword
+
"%"
,
"%"
+
model
+
"%"
)
}
// 执行查询
...
...
@@ -450,6 +455,12 @@ func SearchTags(keyword string, group string, model string, idSort bool) ([]*str
modelsCol
=
`"models"`
}
baseURLCol
:=
"`base_url`"
// 如果是 PostgreSQL,使用双引号
if
common
.
UsingPostgreSQL
{
baseURLCol
=
`"base_url"`
}
order
:=
"priority desc"
if
idSort
{
order
=
"id desc"
...
...
@@ -469,11 +480,11 @@ func SearchTags(keyword string, group string, model string, idSort bool) ([]*str
// sqlite, PostgreSQL
groupCondition
=
`(',' || `
+
groupCol
+
` || ',') LIKE ?`
}
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?) AND "
+
modelsCol
+
` LIKE ? AND `
+
groupCondition
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
model
+
"%"
,
"%,"
+
group
+
",%"
)
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?
OR "
+
baseURLCol
+
" LIKE ?
) AND "
+
modelsCol
+
` LIKE ? AND `
+
groupCondition
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
keyword
+
"%"
,
"%"
+
model
+
"%"
,
"%,"
+
group
+
",%"
)
}
else
{
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?) AND "
+
modelsCol
+
" LIKE ?"
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
model
+
"%"
)
whereClause
=
"(id = ? OR name LIKE ? OR "
+
keyCol
+
" = ?
OR "
+
baseURLCol
+
" LIKE ?
) AND "
+
modelsCol
+
" LIKE ?"
args
=
append
(
args
,
common
.
String2Int
(
keyword
),
"%"
+
keyword
+
"%"
,
keyword
,
"%"
+
keyword
+
"%"
,
"%"
+
model
+
"%"
)
}
subQuery
:=
baseQuery
.
Where
(
whereClause
,
args
...
)
.
...
...
web/src/components/ChannelsTable.js
View file @
c56ec3b3
...
...
@@ -1276,7 +1276,7 @@ const ChannelsTable = () => {
<
Form
.
Input
field
=
'search_keyword'
label
=
{
t
(
'搜索渠道关键词'
)}
placeholder
=
{
t
(
'搜索渠道的 ID,名称
和密钥
...'
)}
placeholder
=
{
t
(
'搜索渠道的 ID,名称
,密钥和API地址
...'
)}
value
=
{
searchKeyword
}
loading
=
{
searching
}
onChange
=
{(
v
)
=>
{
...
...
web/src/i18n/locales/en.json
View file @
c56ec3b3
...
...
@@ -124,7 +124,7 @@
"已成功开始测试所有已启用通道,请刷新页面查看结果。"
:
"Successfully started testing all enabled channels. Please refresh page to view results."
,
"通道 ${name} 余额更新成功!"
:
"Channel ${name} quota updated successfully!"
,
"已更新完毕所有已启用通道余额!"
:
"Updated quota for all enabled channels!"
,
"搜索渠道的 ID,名称
和密钥 ..."
:
"Search channel ID, name and key
..."
,
"搜索渠道的 ID,名称
,密钥和API地址 ..."
:
"Search channel ID, name, key and Base URL
..."
,
"名称"
:
"Name"
,
"分组"
:
"Group"
,
"类型"
:
"Type"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment