WPS 社区定时发帖助手

梦醒无痕
梦醒无痕 Lv.2 潜力创作者

Lv.2潜力创作者

# WPS 社区定时发帖助手 一个 Edge / Chrome 浏览器扩展(MV3),在 [WPS 社区](https://bbs.wps.cn) **定时自动发帖**。复用浏览器登录态,无需配置 Cookie / CSRF。 ## 功能 - ⏰ **定时发帖**:指定日期 + 时间(北京时间),到点自动发帖 - 🗑️ **取消待发**:对"待发"任务一键取消 - 🔔 **失败提示**:发帖成功 / 失败均弹出系统通知,失败原因清晰可见 - 📋 **多时段任务**:可同时添加任意多个不同时间的定时任务 - ▶️ **立即发帖**:对已有任务可手动"立即发帖" - 🧹 **记录管理**:清空已完成 / 失败的历史记录 - 🔐 **登录态检测**:自动检测 bbs.wps.cn 登录状态 ## 安装(Edge) 1. 打开 Edge,地址栏输入 `edge://extensions/` 2. 打开左下角「**开发人员模式**」开关 3. 点击「**加载解压缩的扩展**」 4. 选择本扩展文件夹 `wps-bbs-autopost` 5. 工具栏出现「WPS 社区定时发帖」图标,即安装成功 > Chrome 安装方式相同,在 `chrome://extensions/` 操作。 ## 使用方法 ### 1. 先登录 WPS 社区 在浏览器打开 <https://bbs.wps.cn> 并登录你的账号(扩展复用浏览器登录态,无需额外配置)。 ### 2. 新建定时任务 点击扩展图标 → 切到「**新建任务**」页签: - **标题**:至少 5 个字符 - **正文**:至少 10 个字符,换行可分段(空行分段更清晰) - **配图**:可选,点「+ 选择图片」选本地图片(最多 6 张,单张 ≤5MB),自动上传到 bbs.wps.cn 并随帖发布 - **发帖板块**:从下拉选择(自动从社区拉取板块列表) - **话题标签**:可选,多个话题用换行分隔 - **定时发帖时间**:选择北京时间日期时间(默认填当前时间 +10 分钟) - 点击「**添加定时任务**」 ### 3. 管理任务 在「**任务列表**」页签: - **待发**任务:可「立即发帖」或「取消待发」 - **已发布 / 失败**任务:可「删除」 - 失败任务会显示具体原因 - 点击底部「清空已完成 / 失败记录」可批量清理 ### 4. 到点自动发帖 到设定时间后,扩展会自动: 1. 确保有一个 bbs.wps.cn 标签页(没有则在后台自动打开) 2. 通过页面上下文调用发帖接口(同源请求,带登录态 + CSRF) 3. 发帖成功 / 失败均弹出系统通知 ## 技术原理(确保发帖成功) | 要点 | 说明 | | --------------- | ------------------------------------------------------------------------------------------------------------------------- | | **主通道:页面上下文注入** | 用 `chrome.scripting.executeScript` 把发帖函数注入到 bbs.wps.cn 标签页执行,`fetch('/api/topic/create')` 同源、`Origin` 正确,站点 CSRF / 同源校验认可 | | **接口** | `POST /api/topic/create`,`type=2`(发帖路径,服务端读顶层 `title`) | | **CSRF** | 自动读取 / 生成 cookie `csrf`,并写入请求头 `csrf-token` | | **预校验** | 提交前校验标题 ≥5 字、正文 ≥10 字,避免无谓重试 | | **失败重试** | 默认重试 2 次(间隔 60 秒),仍失败则标记失败并通知 | | **兜底** | 页面注入异常时降级后台 `fetch`(基本会 403,仅作最后兜底) | | **北京时间** | 时间显式按 UTC+8 解析为绝对时间戳,不受浏览器时区影响 | ## 故障排查 | 问题 | 解决方案 | | ------------ | -------------------------------------------------- | | 显示「未登录」 | 在浏览器打开 bbs.wps.cn 登录账号后,点扩展右上角 ↻ 刷新 | | 发帖失败 403 | 确认已登录;扩展会自动后台打开 bbs.wps.cn 标签页,请勿关闭所有 bbs 标签后立即发帖 | | 发帖失败「标题不能为空」 | 已用 `type=2` 规避;若仍出现请确认标题 ≥5 字 | | 任务到点没触发 | MV3 闹钟在浏览器**完全关闭**时不运行;请保持 Edge 运行。重启浏览器后过期任务会自动补发 | | 扩展更新后失效 | 在 `edge://extensions/` 点击扩展的「重新加载」按钮 | ## 局限性 - 需保持浏览器运行:MV3 闹钟在浏览器关闭时不触发;重启后过期待发任务会自动补发 - 仅支持 `type=2` 纯文本发帖(标题 + 正文 + 话题标签);富文本普通帖 / 配图暂不支持(需 WPS 在线文档 token) - 真实发帖必须由**已登录用户**的浏览器触发,扩展不保存账号密码 ## 文件结构 ``` wps-bbs-autopost/ ├── manifest.json # MV3 清单 ├── background.js # Service Worker:任务队列 + 闹钟调度 + 发帖主通道 ├── lib/shared.js # 消息协议 + 工具函数(北京时间解析/校验/payload) ├── popup/ │ ├── popup.html # 弹窗界面 │ ├── popup.css # 样式 │ └── popup.js # 交互逻辑 ├── icons/ # 16/48/128 图标 ├── gen_icons.py # 图标生成脚本(纯标准库) └── test_inject.mjs # 注入函数回归测试 ``` ## 验证 ```bash # 语法检查 node --check background.js lib/shared.js popup/popup.js # 注入函数 + 工具函数测试 node test_inject.mjs ```
浏览 83
收藏
7
分享
7 +1
1
+1
全部评论 1
 
HC.旋
HC.旋 WPS资深用户Lv.3 优质创作者WPS寻令官

Lv.3 优质创作者

给大佬点赞,跟着大佬学
   福建省
举报
1
0