Discord Image Scraper单条消息多附件未拆分存入JSON数组问题咨询
你之前使用的.join(',')方法正是导致多个链接被合并为单个字符串的原因,而.replace(',','')只能删除逗号、无法将单个字符串拆分为独立数组元素,两类操作都和你的需求相反。
代码修改方案
1. 修改scraper.js中的附件抓取逻辑
找到脚本中处理Discord消息附件的代码段,原逻辑通常是直接将单条消息的所有附件链接拼接后推入结果数组,类似如下写法:
// 原错误逻辑示例 let attachmentUrls = message.attachments.map(att => att.url).join(',') resultList.push(attachmentUrls)
删除.join(',')拼接逻辑,改为遍历每个附件链接单独推入数组:
// 修改后逻辑 message.attachments.forEach(att => { resultList.push(att.url) })
2. 修正post.js中的JSON输出逻辑
检查post.js中写入JSON文件的代码,删除所有将数组元素合并为字符串的逻辑,确保直接写入由独立链接组成的一维数组即可。
兼容旧数据的批量修复方法
如果已经有大量通过旧逻辑生成的合并字符串数据,可以通过split方法批量拆分修复:
// 批量修复旧数据示例 const fixedResult = oldResult.flatMap(item => { // 匹配被拼接的Discord附件链接字符串,按逗号拆分 if (typeof item === 'string' && item.includes('https://media.discordapp.net/attachments/') && item.includes(',')) { return item.split(',') } return item })
最终正确输出结构
修改后生成的JSON结构如下:
[ "https://media.discordapp.net/attachments/831804312538841088/893067795154231337/IMG_20210930_113200.jpg", "https://media.discordapp.net/attachments/831804312538841088/893067795322011668/IMG_20210930_113039.jpg", "https://media.discordapp.net/attachments/831804312538841088/893067795535900702/IMG_20210930_112940.jpg", "https://media.discordapp.net/attachments/831804312538841088/893067795741437952/IMG_20210930_113006.jpg", "EXTRA", "EXTRA" ]
内容的提问来源于stack exchange,提问作者Johnty
相关产品推荐
相关产品推荐

