LINUX SB 回复增强 - 自定义图床

在 LINUX SB 发帖、回复和编辑框中粘贴或选择图片,上传至自定义图床并插入 Markdown。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
歌雨(予安)
日安装量
0
总安装量
0
评分
0 0 0
版本
1.1.1
创建于
2026-08-12
更新于
2026-08-12
大小
63.7 KB
许可证
MIT
适用于

LINUX SB 回复增强 - 自定义图床

这是一个适配 LINUX SB 当前 bbs1org v8.5.x 编辑器的 Tampermonkey 用户脚本。配置图床后,可以在发帖、回复和编辑正文框中直接粘贴图片,脚本会上传并在原光标位置插入:

![example.png](https://cdn.example.com/images/example.png)

功能

  • 支持剪贴板粘贴、多图选择和拖放上传。
  • 支持兰空图床 Lsky Pro 2、通用 multipart/form-data、原始二进制 PUT/PATCH
  • 选择图床类型后自动适配上传路径,并可配置 Token、请求头、额外表单字段、响应 JSON 路径和 Markdown 模板。
  • 上传时用占位符锁定原光标位置,等待期间继续打字不会打乱插入位置。
  • 上传未完成时阻止误提交;失败项可重试或移除。
  • 只接管主题/回复正文的 textarea[name="body"],不影响普通文本粘贴、私信或个人资料输入框。

安装

  1. 浏览器安装 Tampermonkey。
  2. 在 Tampermonkey 管理面板导入 linux-sb-reply-enhancer.user.js
  3. 打开 https://linux.sb/,从 Tampermonkey 菜单进入“图床设置”。

脚本使用 @connect *,因为自定义图床域名在安装时未知。首次连接某个图床时,脚本管理器可能要求授权。

兰空图床 Lsky Pro 2

以示例域名为例:

  1. 图床类型选择“兰空图床 Lsky Pro 2”。
  2. 图床地址只填写根地址,例如 https://images.example.com/,不需要填写 /api/v1/upload;脚本会按图床类型自动补全上传路径。
  3. 如图床允许游客 API 上传,Token 可以留空;否则填写个人中心生成的 Token。
  4. 点击“测试上传”选择一张测试图。测试会在图床中实际创建图片。
  5. 测试成功后勾选“启用编辑框图片上传”并保存。

预设请求格式:

POST /api/v1/upload
Authorization: Bearer <Token>   # Token 留空时不发送
Accept: application/json
multipart field: file
response URL path: data.links.url

如果该图床关闭了 API 或游客上传,需使用站点提供的 Token。脚本不会绕过图床自身权限。

通用图床示例

接口返回如下 JSON:

{
  "success": true,
  "data": {
    "url": "https://cdn.example.com/image.png"
  }
}

对应配置:

图床类型:通用 multipart/form-data
图床地址:https://img.example.com/
上传路径:api/upload
请求方法:POST
请求体:multipart/form-data
文件字段名:file
JSON 图片地址路径:data.url
成功状态路径:success
成功状态值:true

请求头和额外字段填写 JSON 对象,例如:

{
  "X-API-Key": "your-key"
}
{
  "album": "linux-sb",
  "strategy_id": "1"
}

响应图片地址也可以取自纯文本正文、Location 响应头或最终请求 URL。相对图片地址会以图床域名根目录解析。

模板变量

图床地址、上传路径、请求头、额外字段和文件名模板支持:

{timestamp} {originalName} {name} {ext} {mime} {filename}

图片 URL 模板额外支持:

{value} {endpoint} {origin}

Markdown 模板支持:

{filename} {url}

安全说明

  • API Token 保存在 Tampermonkey 的脚本存储中,不写入论坛页面或控制台,但该存储不是加密保险箱。
  • 默认不向图床携带 Cookie。仅当图床 API 明确依赖浏览器登录态时,才启用“携带 Cookie”;是否能携带到目标站点仍受浏览器 SameSite、第三方 Cookie 和分区规则限制,优先使用 API Token。
  • multipart/form-data 模式下不要手动添加 Content-Type;脚本会让浏览器自动生成正确的 boundary。
  • 建议使用 HTTPS 图床接口。
  • 为支持运行时填写任意图床域名,脚本必须声明宽范围的 @connect *。安装前请检查脚本来源,且只向可信图床发送图片和 Token。

兼容范围

脚本按 LINUX SB 当前公开页面和站点脚本适配:

  • 发帖/编辑主题:.topic-form-panel textarea[name="body"]
  • 主题回复:#reply .ajax-reply-form textarea[name="body"]
  • 编辑回复:.reply-edit-panel textarea[name="body"]

快速回复会移动同一个回复面板,脚本采用文档级事件委托,因此移动后仍然有效。