AI: #152 Pixiv の埋込み #472

オープン
テツノニジカ が feature/152 から main への 2 コミットのマージを希望しています
共同作業者

Refs #152

Branch mode: new; base: main; head: feature/152

Implementation model: gpt-6-astra / reasoning: high

Automated implementation (requires human review)

PostEmbed.tsx に、PostDetailPage 用の Pixiv 埋込みを追加しました。

  • 通常・言語付き・旧形式の作品 URL に対応。
  • 既存の自動/手動/無効設定を適用。
  • 埋込み URL は Iframely の公開例を参照。

変更はこの1ファイルのみです。差分を目視確認しました。指定に従い、テスト・lint・ビルドは未実行です。実画面の表示も未確認です。

Verification

  • Tests/builds/migrations were not authorized and were not invoked by the controller.
  • Codex was instructed not to run them; inspect its command transcript.
  • The repository owner alone reviews changes. No AI review is executed.
  • Do not merge before human acceptance and required checks.
Refs #152 Branch mode: `new`; base: `main`; head: `feature/152` Implementation model: `gpt-6-astra` / reasoning: `high` ## Automated implementation (requires human review) [PostEmbed.tsx](/var/lib/gitea-codex-v4/runs/impl/issue-152-zj0_ws55/repo/frontend/src/components/PostEmbed.tsx:180) に、`PostDetailPage` 用の Pixiv 埋込みを追加しました。 - 通常・言語付き・旧形式の作品 URL に対応。 - 既存の自動/手動/無効設定を適用。 - 埋込み URL は [Iframely の公開例](https://iframely.com/domains/pixiv)を参照。 変更はこの1ファイルのみです。差分を目視確認しました。指定に従い、テスト・lint・ビルドは未実行です。実画面の表示も未確認です。 ## Verification - Tests/builds/migrations were not authorized and were not invoked by the controller. - Codex was instructed not to run them; inspect its command transcript. - The repository owner alone reviews changes. No AI review is executed. - Do not merge before human acceptance and required checks.
テツノニジカ が 1 コミット追加 2026-11-13 12:52:30 +09:00
オーナー

これは通常の埋め込みと何が違ふの?

これは通常の埋め込みと何が違ふの?
作成者
共同作業者

Codex: 修正なし。

既存の汎用埋込みとの違いは、iframe に渡す URL と表示手順です。

  • 既存処理:確認ダイアログを経て、投稿 URL をそのまま表示します。
  • 今回の Pixiv 対応:作品 ID から embed.pixiv.net/oembed_iframe.php の URL を生成し、自動/手動/無効の設定に従って表示します。

iframe を使う点は同じです。Iframely のサービスを経由する実装ではありません。

コメントは違いを尋ねる内容で、変更すべき仕様は確定できないため、ファイルは変更していません。指定どおりテスト・lint・ビルドは未実行で、実画面も未確認です。

Codex: 修正なし。 既存の汎用埋込みとの違いは、iframe に渡す URL と表示手順です。 - 既存処理:確認ダイアログを経て、投稿 URL をそのまま表示します。 - 今回の Pixiv 対応:作品 ID から `embed.pixiv.net/oembed_iframe.php` の URL を生成し、自動/手動/無効の設定に従って表示します。 iframe を使う点は同じです。Iframely のサービスを経由する実装ではありません。 コメントは違いを尋ねる内容で、変更すべき仕様は確定できないため、ファイルは変更していません。指定どおりテスト・lint・ビルドは未実行で、実画面も未確認です。
オーナー

なるほど.
これはちゃんと画像がいっぱいに表示されるのだね?

なるほど. これはちゃんと画像がいっぱいに表示されるのだね?
作成者
共同作業者

Codex: 修正なし。

「画像がいっぱいに表示される」とは現時点では保証できません。現在の実装は幅600px・高さ315pxの iframe に max-w-full を指定しており、画像自体を枠いっぱいに表示する指定はありません。実際の収まり方は Pixiv 側の埋込み内容に依存します。

実画面は未確認のため、推測での変更は行わず、ファイルは変更していません。テスト・lint・ビルドも指定どおり未実行です。

Codex: 修正なし。 「画像がいっぱいに表示される」とは現時点では保証できません。現在の実装は幅600px・高さ315pxの iframe に `max-w-full` を指定しており、画像自体を枠いっぱいに表示する指定はありません。実際の収まり方は Pixiv 側の埋込み内容に依存します。 実画面は未確認のため、推測での変更は行わず、ファイルは変更していません。テスト・lint・ビルドも指定どおり未実行です。
オーナー

画像をそのまま貼りつけるくらゐのことはしてほしいんだよね.
あと,起票時にサムネールに画像をセットし,サムネール元 URL にその画像のベースの URL をセットしたい.

画像をそのまま貼りつけるくらゐのことはしてほしいんだよね. あと,起票時にサムネールに画像をセットし,サムネール元 URL にその画像のベースの URL をセットしたい.
オーナー

あー,でもごめん,撤回.
今回はフロントエンドのみの変更として.

あー,でもごめん,撤回. 今回はフロントエンドのみの変更として.
作成者
共同作業者

Codex: 修正なし。

変更なしです。

後続の「撤回・今回はフロントエンドのみ」を踏まえ、起票時のサムネール自動設定は見送りました。画像の直接表示についても、現コードには Pixiv の作品 URL から画像 URL を取得する処理がなく、iframe の寸法変更だけでは要望を満たせないため、推測で変更していません。

テスト・lint・ビルドは指定どおり未実行です。実画面も未確認です。

Codex: 修正なし。 変更なしです。 後続の「撤回・今回はフロントエンドのみ」を踏まえ、起票時のサムネール自動設定は見送りました。画像の直接表示についても、現コードには Pixiv の作品 URL から画像 URL を取得する処理がなく、iframe の寸法変更だけでは要望を満たせないため、推測で変更していません。 テスト・lint・ビルドは指定どおり未実行です。実画面も未確認です。
作成者
共同作業者

Codex: 修正なし。

変更なしです。現在の PR 差分は frontend/src/components/PostEmbed.tsx のみで、「今回はフロントエンドのみ」という最新の指示を既に満たしています。起票時のサムネール自動設定は追加していません。

テスト・lint・ビルド・マイグレーションは未実行です。実画面も未確認です。

Codex: 修正なし。 変更なしです。現在の PR 差分は `frontend/src/components/PostEmbed.tsx` のみで、「今回はフロントエンドのみ」という最新の指示を既に満たしています。起票時のサムネール自動設定は追加していません。 テスト・lint・ビルド・マイグレーションは未実行です。実画面も未確認です。
オーナー

その上で,画像をほぼそのまま貼ったやぅな埋め込みは可能?

その上で,画像をほぼそのまま貼ったやぅな埋め込みは可能?
作成者
共同作業者

Codex: 修正なし。

現状の iframe の寸法変更だけでは、ご希望の表示にはできません。Pixiv 側の枠内にある画像や余白は、こちらから変更できません(同一オリジン制約)。

画像 URL を取得して <img> で表示する方法は考えられますが、フロントエンドだけで取得・表示できる現行の公式手段は確認できませんでした。実現不能とまでは断定しませんが、不確かな実装は加えず、ファイルは変更していません。

指定どおり、テスト・lint・ビルド・マイグレーションは未実行です。実画面も未確認です。

Codex: 修正なし。 現状の iframe の寸法変更だけでは、ご希望の表示にはできません。Pixiv 側の枠内にある画像や余白は、こちらから変更できません([同一オリジン制約](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy))。 画像 URL を取得して `<img>` で表示する方法は考えられますが、フロントエンドだけで取得・表示できる現行の公式手段は確認できませんでした。実現不能とまでは断定しませんが、不確かな実装は加えず、ファイルは変更していません。 指定どおり、テスト・lint・ビルド・マイグレーションは未実行です。実画面も未確認です。
オーナー

Pixiv 側から埋め込み用のは提供されてないの?

Pixiv 側から埋め込み用のは提供されてないの?
作成者
共同作業者

Codex: 修正なし。

Pixiv 側の埋込み用 URL を使う方式はあります。はてなブログ公式の導入記事でも、embed.pixiv.net の iframe が使われています。

今回の実装も embed.pixiv.net/oembed_iframe.php を直接指定しています。ただし、現在の公式提供仕様と「画像をほぼそのまま貼った」表示になるかは確認できませんでした。以前の説明では、この区別が不明瞭でした。

変更の根拠が確定できないため、ファイルは変更していません。指定どおりテスト・lint・ビルド・マイグレーションは未実行、実画面も未確認です。

Codex: 修正なし。 Pixiv 側の埋込み用 URL を使う方式はあります。[はてなブログ公式の導入記事](https://staff.hatenablog.com/entry/2013/09/04/155556)でも、`embed.pixiv.net` の iframe が使われています。 今回の実装も `embed.pixiv.net/oembed_iframe.php` を直接指定しています。ただし、現在の公式提供仕様と「画像をほぼそのまま貼った」表示になるかは確認できませんでした。以前の説明では、この区別が不明瞭でした。 変更の根拠が確定できないため、ファイルは変更していません。指定どおりテスト・lint・ビルド・マイグレーションは未実行、実画面も未確認です。
オーナー

画像サイズに従った比率とすることはできる?

画像サイズに従った比率とすることはできる?
作成者
共同作業者

Codex: 修正なし。

画像の幅・高さを取得できれば、その比率に合わせられます。ただし現在の Post には寸法情報がなく、Pixiv の iframe 内の画像寸法も同一オリジン制約で直接取得できません。

Pixiv 側から寸法を受け取る仕様は確認できず、公開埋込み URL の取得も失敗したため、推測での変更は行っていません。フロントエンドだけで対応可能かは未確定です。

ファイル変更なし。指定どおりテスト・lint・ビルド・マイグレーションは未実行、実画面も未確認です。

Codex: 修正なし。 画像の幅・高さを取得できれば、その比率に合わせられます。ただし現在の `Post` には寸法情報がなく、Pixiv の iframe 内の画像寸法も[同一オリジン制約](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Same-origin_policy)で直接取得できません。 Pixiv 側から寸法を受け取る仕様は確認できず、公開埋込み URL の取得も失敗したため、推測での変更は行っていません。フロントエンドだけで対応可能かは未確定です。 ファイル変更なし。指定どおりテスト・lint・ビルド・マイグレーションは未実行、実画面も未確認です。
オーナー

oembed_iframe.php を使用した埋め込みは可能?
以下のやぅにして:

<iframe
  src="https://embed.pixiv.net/oembed_iframe.php?type=illust&id=59064165"
  width="600"
  height="315"
  style="border: 0"
  loading="lazy"
  title="pixiv artwork"
></iframe>
`oembed_iframe.php` を使用した埋め込みは可能? 以下のやぅにして: ``` <iframe src="https://embed.pixiv.net/oembed_iframe.php?type=illust&id=59064165" width="600" height="315" style="border: 0" loading="lazy" title="pixiv artwork" ></iframe>
作成者
共同作業者

Codex: レビューコメントを受けてコミットを追加しました。
Branch: feature/152 / model: gpt-6.1-sol (medium)

PostEmbed.tsx は既に oembed_iframe.php を使用しています。提示例に合わせ、border: 0 と loading="lazy" を追加しました。

差分は2行のみです。テスト・lint・ビルド・マイグレーションは未実行、実画面も未確認です。

人間による再レビュー待ち。

Codex: レビューコメントを受けてコミットを追加しました。 Branch: `feature/152` / model: `gpt-6.1-sol` (medium) [PostEmbed.tsx](/var/lib/gitea-codex-v4/runs/impl/pr-472-ul0u0_po/repo/frontend/src/components/PostEmbed.tsx:200) は既に `oembed_iframe.php` を使用しています。提示例に合わせ、`border: 0` と `loading="lazy"` を追加しました。 差分は2行のみです。テスト・lint・ビルド・マイグレーションは未実行、実画面も未確認です。 人間による再レビュー待ち。
テツノニジカ がコミットでこのイシューを参照 2026-11-13 18:13:25 +09:00
テツノニジカ が 1 コミット追加 2026-11-13 18:13:25 +09:00
このプルリクエストをマージする権限がありません。
このプルリクエストは自動的にマージできます。
コマンドラインの手順を表示

チェックアウト

プロジェクトリポジトリから新しいブランチをチェックアウトし、変更内容をテストします。
git fetch -u origin feature/152:feature/152
git checkout feature/152
サインインしてこの会話に参加。