在 phpBB 中,可以向上传的附件添加注释:
这些注释随后会显示在帖子中的图片下方:
如果 phpBB3 导入脚本能够获取这些注释并将其作为替代文本(alt text)分配给配对的图片,那将会很有用,这样在 Discourse 中将鼠标悬停在图片上时就会显示这些文本。
谢谢
Dan
在 phpBB 中,可以向上传的附件添加注释:
这些注释随后会显示在帖子中的图片下方:
如果 phpBB3 导入脚本能够获取这些注释并将其作为替代文本(alt text)分配给配对的图片,那将会很有用,这样在 Discourse 中将鼠标悬停在图片上时就会显示这些文本。
谢谢
Dan
啊!由于我对 Ruby on Rails 一无所知——而且我正在请求对 phpBB 导入脚本进行增强——我想请求一个额外的增强,如此处所述。如果脚本报告帖子存在日期/时间错误,同时报告 phpBB 的 post_id 以便调试将会很有用。
谢谢
Dan
您要求的功能如何实现尚不清楚,但我花了几分钟时间研究了一下,似乎没有一个非常令人满意的可行解决方案。
上传记录中没有用于存放说明文字的位置,而且我没有看到从“上传”回溯的明显方法……一种可能性是将评论作为文件名,然后在稍后以某种方式将其提取为说明文字。是的。这可能是你能做的最好的事情,将该说明文字编码为文件名,这样它就会在鼠标悬停等情况下显示出来。如果你愿意,你之后可以做其他事情,比如获取包含说明文字的文件名,然后以某种方式将其插入到 HTML 中。
坦率地说,我对 RoR 甚至 postgres 都不了解。但是,当您用 alt 文本标记图像时,它会存储在 postgres 数据库中,并与该图像相关联。导入脚本中有什么阻止了这种分配?当然,该注释在 MySQL 中是可访问的。
看起来很棘手,但您可能可以通过修改此处的此方法获得成功:
用这个代替:
text.gsub!(attachment_regexp) do
index = $1.to_i
real_filename = $2
unreferenced_attachments[index] = nil
attachments.fetch(index, real_filename)
end
您会想要类似这样的东西:
text.gsub!(attachment_regexp) do
index = $1.to_i
description = $2.strip
unreferenced_attachments[index] = nil
url = attachments.fetch(index, description)
""
end
这只是一个未经测试的示例,用来说明需要修改的位置。我可能是错的。
如果我明天有时间,我可能会提交一个带有真正解决方案的拉取请求 (PR)。![]()
谢谢!您想根据 MIME 类型来限定此任务吗?(我无法将 phpBB 评论附加到 .mp4 文件;虽然我可以附加到 .gif 文件,但它在悬停时没有出现。)
这可能有用,但我研究了一种将评论直接添加到帖子原始内容的新方法。我相信那样处理所有类型的文件更安全。
您能否用您的数据集测试这些更改?我在本地进行了测试,但在继续进行拉取请求 (PR) 之前很想听听您的反馈。
我很乐意测试,但是……我必须清除我的测试环境并重复吗?Claude.ai 引导我完成了安装过程,我是 Docker 新手——即便如此,一路上也出现了许多错误。
如果您能概述一种让我可以轻松测试的方法,我将很乐意尝试一下。
干得好!我查看了代码,但没有找到那个。
是的。你需要清除数据库并重新运行。导入器会跳过已导入的数据,所以你需要重新导入所有内容才能试用。不过看起来它应该有效!
好的——附件仍然存在,MySQL数据库也是。运行花了几个小时,我会让 Claude 带着我走一遍并报告结果。
当然,我可以帮你。无需更改你的安装。简单的方法如下:
# 进入站点的容器
cd /var/discourse
./launcher enter <your-container-name>
# 重置数据库
bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:seed
# 退出容器
exit
# 重新构建容器以确保一切就绪
./launcher rebuild <your-container-name>
要恢复到你以前的状态,你只需恢复你在开始时所做的备份:
./launcher enter <your-container-name>
discourse enable restore
discourse restore <your-backup-filename>
哦耶!既然我们谈到这个,修改脚本以报告正在处理的 phpBB post_id 是否足够容易,以便在报告日期/时间问题时使用?
看起来很简单!等 Rosie
带我散步完,我马上就去试试。
我正在使用现有的 gsub 在此处添加它:
但感谢您的关注,这让我意识到我没有考虑到 phpbb 也有的未引用的附件:
好的,备份正在进行中。我预计这可能需要一段时间……
我需要编辑吗?我不能只将您 git 仓库中的文件通过 docker cp 复制到脚本路径中吗?
那样也可以。或者,您可以将 container.yml 设置为使用我的仓库和分支并重新构建。
嗯,那不太顺利。
reset_log.txt (16.6 KB)
我认为您可能需要以 discourse 用户身份运行这些命令:
su discourse
或者
su discourse -c “bundle exec rake db:drop”
哎呀。新手失误,我不是有意关闭帖子的——只是想确认一下,那似乎解决了那个特定的问题。
“似乎是。” 我还在等 db:drop 完成。继续……
仍然没有反应。
reset_log2.txt (1.7 KB)