我好像把鱼佬的通用图片上传插件的重复上传 bug 给修复好了
起因是鱼佬的图床插件偶尔会出现生成两个图床链接的 bug,鱼佬最近比较忙一直没修,我在天才程序员的帮助下,做了一点修复,应该是修好了,我完全不懂代码,全靠 Codex 指挥,修复点如下(基于 github 仓库路径):
一、路径:src/packages/universal-image-uploader/index.ts,修改上传识别逻辑:
1、在 function initPasteUpload 上方加入:
function dedupeImageFiles(files: File[]): File[] { const list: File[] = [] const seen = new Set<string>() for (const file of files) { if (!file?.type?.includes('image')) continue const sig = `${file.type}|${file.size}` if (seen.has(sig)) continue seen.add(sig) list.push(file) } return list } function collectClipboardImageFiles(cd: DataTransfer): File[] { const itemFiles: File[] = [] const items = cd.items ? Array.from(cd.items) : [] for (const item of items) { if (item?.kind === 'file' && item.type?.includes('image')) { const file = item.getAsFile?.() if (file) itemFiles.push(file) } } if (itemFiles.length > 0) return dedupeImageFiles(itemFiles) const files = cd.files ? Array.from(cd.files) : [] return dedupeImageFiles(files) }
2、initPasteUpload()里的 const list: File[] = []至 if (f && f.type && f.type.includes('image')) addIfNew(f)的部分,包括后边的一个},全部删除,替换为:
const list = collectClipboardImageFiles(cd)
二、顺便改了 UI 显示的两处翻译(英文和繁体处同理)。
路径:src/packages/universal-image-uploader/constants.ts
proxy_none: '无代理' 改为了 '不使用图片代理'
multi_host_none: '同时上传至' 改为了 '仅上传至主图床'
修改的是源码,还需要构建新的 universal-image-uploader.user.js 脚本才能使用。
几乎看不懂这些代码的含义是什么,但是测试了七八次,没有再次出现‘启用粘贴上传功能’时在 UI 面板和评论框出现两处图片链接的情况了,再测试几天如果没问题我就提交合并分支给鱼佬。
再次感谢鱼佬
插件原地址: https://2libra.com/post/open-source-sharing/8kmx340
兔友们也可以测试一下是不是真的修复了。











女神镇楼,顺便再次测试上传图床是否正常