diff --git a/src/controllers/open/maker.js b/src/controllers/open/maker.js index 32cd95c..4ffbd4c 100644 --- a/src/controllers/open/maker.js +++ b/src/controllers/open/maker.js @@ -96,11 +96,12 @@ router.get('/result', async (req, res, next) => { try { const query = req.query const _id = query._id - let users = query.users + const users = query.users const search = await Maker.findOne({ _id }) let text = search.template const title = search.title - users = users.split(',') + const sersArr = users.split(',') + const regUser = /\[n(\d+)\]/g const regList = /\[i(\d+)\]/g @@ -108,10 +109,16 @@ router.get('/result', async (req, res, next) => { const regPer2 = /\[∞\]/g const regNum = /\[(0+)\]/g + // 使用charCode确定结果 + let charCode = 0 + for (let i = 0; i < users.length; i++) { + charCode += users.charCodeAt(i) + } + // 替换用户输入 while (regUser.test(text)) { text = text.replace(regUser, (match, p1) => { - return users[p1] || '天外来客' + return usersArr[p1] || '天外来客' }) } @@ -119,7 +126,8 @@ router.get('/result', async (req, res, next) => { while (regList.test(text)) { text = text.replace(regList, (match, p1) => { const list = search.list[p1].text.split(',') - const idx = Math.floor(Math.random() * list.length) + + const idx = charCode < list.length - 1 ? charCode : charCode % list.length return list[idx] || '天外来客' }) }