你的友链申请(${app.url})已审核通过,现已加进友链列表,感谢支持!
` + (app.feedback ? `站长留言:${app.feedback}
` : '')); } else { + app.status = 'rejected'; + await kvPutJson(env, 'link_applications', st); mailOk = await sendMailSafe(env, app.email, `关于你的友链申请:${app.name}`, `很抱歉,你的友链申请(${app.url})本次未能通过。
` + diff --git a/themes/Ying/assets/js/modules/artalk.js b/themes/Ying/assets/js/modules/artalk.js index 355a8c3f..7dd59fdf 100644 --- a/themes/Ying/assets/js/modules/artalk.js +++ b/themes/Ying/assets/js/modules/artalk.js @@ -1728,7 +1728,23 @@ artalk.on('list-loaded', function() { var method = String((init && init.method) || (input && input.method) || 'GET').toUpperCase(); if (method !== 'POST' || !POST_RE.test(url)) return origFetch.apply(this, arguments); - var p = origFetch.apply(this, arguments); + // ★ 把「当前页文章的作者 id」塞进评论提交体 —— 服务端凭它决定这封 + // 「有新评论」的通知邮件发给文章作者本人,还是发博主。 + // 读 window.artalkConfig 而不是闭包里的 config:PJAX 切页时 artalkConfig + // 会被重新赋值,闭包里那份会过期(把上一页的作者带过去就发错人了)。 + var args = arguments; + var pageAuthorId = Number((window.artalkConfig || {}).pageAuthorId || 0); + if (pageAuthorId && init && typeof init.body === 'string') { + try { + var payload = JSON.parse(init.body); + if (payload && typeof payload === 'object' && !payload.author_id) { + payload.author_id = pageAuthorId; + args = [input, Object.assign({}, init, { body: JSON.stringify(payload) })]; + } + } catch (e) { /* body 不是 JSON(理论上不会)→ 原样放行,不影响提交 */ } + } + + var p = origFetch.apply(this, args); return p.then(function (res) { if (res && res.ok) { // 成功:读一下 body 看是不是落进了审核队列(服务端返回的就是 diff --git a/themes/Ying/layouts/partials/artalk.html b/themes/Ying/layouts/partials/artalk.html index 27d9c72e..5e0ed731 100644 --- a/themes/Ying/layouts/partials/artalk.html +++ b/themes/Ying/layouts/partials/artalk.html @@ -264,6 +264,10 @@ 模板「这就是最终 JS 字面量」,不再二次转义;`` 仍按惯例转义兜底。 */}} {{ $t := .Title | jsonify }} pageTitle: {{ replace $t "" "<\\/" | safeJS }}, + // 文章作者的 user id:评论提交时由 artalk.js 的 fetch 拦截器塞进请求体, + // 服务端据此把「有新评论」的邮件发给文章作者本人 —— 编辑角色(女朋友) + // 写的文章就不再打扰博主了。老文章没有 author_id → 0,服务端回退到原行为。 + pageAuthorId: {{ .Params.author_id | default 0 | int }}, emoticons: '{{ .Site.Params.artalk.emoticons | absURL }}', aiComment: null }; @@ -281,4 +285,4 @@ }); } })(); - \ No newline at end of file +