VRChatアルバム
多くの時間をVRChatで過ごしている身として、気軽にワールドの紹介とか色々できたらいいなって思って、 アルバム用のサイト を作りました。
私がVRChat上で訪れたワールドにもとづいて、ページができるようにしてます。 写真も集めているのでよかったらワールドを探してみるとか、単に色々眺めてくれたら嬉しいです。
仕様
仕様だけ伝えたら全部 Claude Code が書いてくれたので、仕様だけ書きます。
基本的にはちょっと動かないところを動かないですって言うだけで何とかなったプロジェクトです。まあ条件付きのブログを作るってだけなのでAIには簡単だろうなというところ。
VRChat のログの監視と、SQLiteへのデータ移行・記録カードファイルの作成
基本的にはVRChatのログを一定間隔で見に行ってます。(python manage.py watch_logs)
ワールドへの訪問をまず記録します。同時に記録カードファイルを作ってます。
---
draft: true
photos:
slug: 1
tags: []
title: pj-perpetual-xxxx
worldVisitRecordId: 1
---
# pj-perpetual-xxxx
他プレイヤーのJoin/Leaveと、写真の撮影を記録してます。写真の撮影については、撮影後の写真のパスにアクセスしに行って、写真をwebpに変換して、SQLiteに保存してます。
写真が保存されると 上記 photos が以下のように追記されます。
photos:
- '1': true
記事自体の 公開・非公開と、写真単位の公開・非公開を記述するためのノートになってます。
ノートの SQLite への反映
python manage.py sync_notes
記録ノートの変更があれば、このマークダウンからメタ情報と本体を分解して、本体はHTMLに変換した上でSQLite上に持っていきます。 記録ノートのハッシュをテーブルに突っ込んでいて、ハッシュが変更されたらSQLite上のレコードを更新するようにしています。
記事も写真も全部SQLiteにいるので、あとはSQLiteの同期さえ取れればリモートから配信できるわけですね。
公開
VRChatをプレイしているWindows PC から Debian のマシンに SQLite のファイルを置きにいくだけです。
アルバムページ
SQLite から一覧と詳細ページ作るだけです。 Django と HTMX で実現するように指示しました。
感想
ちょっとほしいなって思ったものをClaude Codeくんが即席で作ってくれるのは楽しいところ。 そしてそうなるならAIが即席で作れないところを頑張っていかないとなぁと思うばかり。
以上!