Skip to content

Commit 970bd4d

Browse files
committed
update:源列表增加自定义排序
1 parent a0e3f88 commit 970bd4d

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

controllers/config.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ async function generateSiteJSON(jsDir, requestHost, sub) {
4242
};
4343
sites.push(site);
4444
}
45+
46+
// 自定义排序
47+
sortParseJSON(sites, sub);
48+
4549
return {sites};
4650
}
4751

@@ -99,6 +103,27 @@ function getSubs(subFilePath) {
99103
return subs
100104
}
101105

106+
function sortParseJSON(sites, sub) {
107+
let sorts = sub.sorts||'';
108+
if (sorts) {
109+
let sortKeys = sorts.split(',');
110+
let sortMap = {};
111+
sortKeys.forEach((key, index) => {
112+
sortMap[key.trim()] = index;
113+
});
114+
115+
sites.sort((a, b) => {
116+
let aKey = a.key.split('_')[1].trim();
117+
let bKey = b.key.split('_')[1].trim();
118+
119+
let aIndex = sortMap[aKey] !== undefined ? sortMap[aKey] : sortKeys.length + aKey.localeCompare(bKey);
120+
let bIndex = sortMap[bKey] !== undefined ? sortMap[bKey] : sortKeys.length + bKey.localeCompare(aKey); // 为了确保稳定性,这里也使用 aKey 进行比较
121+
122+
return aIndex - bIndex;
123+
});
124+
}
125+
}
126+
102127
export default (fastify, options, done) => {
103128

104129
fastify.get('/index', async (request, reply) => {
@@ -115,7 +140,7 @@ export default (fastify, options, done) => {
115140
fastify.get('/config*', async (request, reply) => {
116141
let t1 = (new Date()).getTime();
117142
const query = request.query; // 获取 query 参数
118-
const sub_code = query.sub || '';
143+
const sub_code = query.sub || 'green';
119144
const cfg_path = request.params['*']; // 捕获整个路径
120145
try {
121146
// 获取主机名,协议及端口

sub.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"name": "不含29",
1111
"code": "green",
1212
"reg": "",
13+
"sorts":"番茄小说[书],大象影视,腾云驾雾[官],央视大全[官]",
1314
"mode": 1,
1415
"status": 1
1516
},

0 commit comments

Comments
 (0)