邮件模板微信化 + 评论老友自动填充 + CF 后台国内线路一键跳
- 邮件模板重做成微信聊天式:灰底、自己评论绿色气泡靠右、对方白色气泡靠左、 40px 圆角方头像(weavatar,邮箱 md5 不外泄)、时间居中、#07C160 主按钮; 布局全嵌套表格(Outlook 稳),表情内联 max-height:28px(修掉「表情太大」)、 配图限宽 100%;管理员主题从「新的评论待审」改成「您有一个新的评论」 - 老友自动填充:新增 /comments/lookup(只回昵称+网址,绝不含邮箱;IP 限速 30 次/10 分钟)+ 主题 comment-autofill 模块(填昵称弹提示、填邮箱自动带出 上次的昵称/网址,事件委托不怕 Artalk 重建编辑器) - CF 后台新增「国内线路」一键跳:/editor/handoff 用共享令牌对时间戳 HMAC 签名 → editor-api /admin/handoff 验签发会话 Cookie(2 分钟有效、防重放), 晚高峰丢包时直达国内机后台免重新登录
This commit is contained in:
1 parent
18a4882577
commit
bcfa229105
10 files changed
+443
-87
No files matched your search
@@ -346,6 +346,12 @@ function renderTabs() {
|
||||
html += '<button class="tab' + (state.tab === t.id ? ' on' : '') + '" data-act="tab" data-id="' + t.id + '">'
|
||||
+ (ICONS[t.icon] || '') + '<span>' + t.label + '</span>' + badge + '</button>';
|
||||
}
|
||||
// 国内直连入口:Cloudflare 晚高峰丢包,写文章卡的时候一键切到国内机后台
|
||||
// (那边独立登录,点过去会由 Worker 先签一张「免登录票」换会话 Cookie)
|
||||
html += '<div class="nav-sep"></div>' +
|
||||
'<div class="nav-group">线路</div>' +
|
||||
'<button class="tab" data-act="cn-line">' + I('<path d="M3 12h4l3 -7 4 14 3 -7h4"/>') +
|
||||
'<span>国内线路(直连)</span></button>';
|
||||
$('#tabs').innerHTML = html;
|
||||
}
|
||||
|
||||
@@ -1846,6 +1852,19 @@ document.addEventListener('click', async (e) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (act === 'cn-line') {
|
||||
// 一键跳国内机后台:先向 Worker 要一张「免登录票」(Worker 用共享令牌
|
||||
// 签名,国内机验签后直接发会话 Cookie),失败就退回普通地址手动登录。
|
||||
toast('正在打开国内线路…');
|
||||
let url = 'https://writeapi.usj.cc/admin/';
|
||||
try {
|
||||
const d = await api('/editor/handoff');
|
||||
if (d && d.url) url = d.url;
|
||||
} catch (e) { /* 拿不到票就直开,让用户手动登录 */ }
|
||||
window.open(url, '_blank', 'noopener');
|
||||
return;
|
||||
}
|
||||
|
||||
// --- 文章编辑
|
||||
if (act === 'po-reload') { el.dataset.busy = '1'; try { await loadPosts(); } finally { delete el.dataset.busy; } return; }
|
||||
if (act === 'po-prev') { state.po.page = Math.max(1, state.po.page - 1); await loadPosts(); return; }
|
||||
|
||||
Reference in new issue
Block a user