phpBBでは、アップロードされた添付ファイルにコメントを追加できます。
これらは投稿内の画像のすぐ下に表示されます。
phpBB3インポートスクリプトがこれらのコメントを取得し、それらが関連付けられている画像に代替テキスト(alt text)として割り当てられると便利です。これにより、Discourseで画像をホバーしたときに表示されるようになります。
Danより
phpBBでは、アップロードされた添付ファイルにコメントを追加できます。
これらは投稿内の画像のすぐ下に表示されます。
phpBB3インポートスクリプトがこれらのコメントを取得し、それらが関連付けられている画像に代替テキスト(alt text)として割り当てられると便利です。これにより、Discourseで画像をホバーしたときに表示されるようになります。
Danより
ああ!Ruby on Railsについては何も知らないので、phpBBインポートスクリプトの機能強化をリクエストしたいのですが、こちらに記載されているように、追加の機能強化をリクエストしたいと思います。スクリプトが投稿の日付/時刻エラーを報告するときに、デバッグ目的でphpBBのpost_idも報告してくれると便利です。
よろしくお願いします
Dan
ご要望の方法がすぐには明確ではありませんが、数分間調査したところ、実現可能と思われる満足のいく解決策はありません。
キャプションのためのアップロードレコードの場所がなく、アップロードから逆引きする明確な方法も見当たりません。可能性としては、コメントをファイル名として挿入し、後で何らかの方法でキャプションとして引き出すことが考えられます。ええ。そのキャプションをファイル名としてエンコードするのが最善の方法でしょう。そうすれば、マウスオーバーなどで表示されるようになります。ご希望であれば、キャプションを含むファイル名を取得し、それをHTMLなどに挿入するなどの別の処理を行うことも可能です。
正直に言うと、RoRについてもPostgreSQLについても何も知りません。しかし、画像に代替テキストをマークアップすると、その画像に関連付けられてPostgreSQLデータベースに保存されます。インポートスクリプトの何がその割り当てを防いでいるのでしょうか?確かに、コメントは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タイプに基づいてアサインメントを限定したいですか?(.mp4にphpBBコメントを添付できませんでしたが、.gifには添付でき、ホバー時に表示されました。)
それは役に立つかもしれませんが、私はコメントを投稿の生データに直接追加する新しい方法を考案しました。すべてのファイルタイプを処理するために、その方が安全だと考えています。
あなたのデータセットでこれらの変更をテストしていただけますか?ローカルでテストしましたが、PRに進む前にあなたのフィードバックをいただけると幸いです。
喜んでテストしますが… テスト環境をパージしてやり直す必要がありますか? Claude.ai はインストール手順を案内してくれましたが、私は Docker の初心者であり、それでも途中で多くのエラーが発生しました。
簡単にテストできる方法を教えていただければ、試してみるつもりです。
素晴らしい仕事です!コードを調べましたが、それを見つけることができませんでした。
はい。データベースを消去して、再度実行する必要があります。インポーターはすでにインポートされたデータをスキップするため、試すにはすべてを再インポートする必要があります。機能しそうですが!
OK - ええと、添付ファイルはまだそのまま残っており、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を報告するようにスクリプトを修正するのは簡単でしょうか?
実に簡単そうですね!ロージー
が散歩に連れて行ってくれたら、すぐに試してみます。
既存の gsub を使用してここに追加しています。
しかし、見てくれてありがとう。これにより、phpbb にもある参照されていない添付ファイルについて考慮していなかったことに気づきました。
OK、バックアップが進行中です。しばらく時間がかかると思います…
編集する必要がありますか?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)