AIで掲示板ウェブアプリ制作

  • 投稿日:
  • カテゴリ:

【Cursorエディタ(ChatGPT API)でウェブアプリ開発】

20年以上使い続けている掲示板をAIを使って刷新しようと考えました。

といっても見た目は同じ。振る舞いも同じにしたい。過去のデータをそのまま蓄積したものを使い、今後新しいデータが追加されていきます。

ただし、20年前の掲示板は、シフトJISで書かれていて、データもシフトJISです。UTF-8への変換は、テキストエディタで可能ですが、絵文字がエンティティ化される処理が入っているので、注意が必要でした。改行もBRタグで置き換える処理が入っていて、タグでも改行でも処理できるようにしなければなりません。

テキストで保存されているデータをデータベースに読み込むためのSQLファイルにしなくてはなりません。しかし、旧掲示板は、データは100まで保持し、超過した分はHTMLに書き出して過去ログとしています。元データが消えているので、HTMLから再現しなくてはなりません。それらのデータをデータベースに入れて、全部をシームレスに使いたいというのが主目的です。

AIに変換させようとしましたが、膨大すぎるデータを処理することができなかったため、変換するスクリプトを作成してもらいました。HTMLに書き出したデータの日付が日本語だったり、初期のころはタイトルがHTMLに反映されていないバグがあり、単純なものではありませんでした。

AIを使った掲示板の基本形は、すぐに作成できました。perlからPHPへの移行なので、ほぼ作り直したようです。旧掲示板の表示はテーブルで構成されています。ちょっと懐かしい感じ。それをスタイルシートで再現しています。プログラム言語としては、PHPはレガシーになりつつあるそうですが、とりあえず今回は親しんできたものとしてPHPとしました。

データ表示には、タグのエンティティ化やhttpのリンクをクリッカブルにするなどの処理に加えて、Markdownっぽい表作成の機能を新規に装備することにしました。このtableの処理が過去の互換性との兼ね合いで少し複雑になっています。

表作成機能は、最初使えるようなものではなかったのですが、pukiwikiのソースがここにあるから参考にして、と指示すると自分でフォルダ内を参照し、うまくとりいれてくれました。

旧掲示板には、投稿番号がスレッドにだけ割り振られていて、返信投稿には番号は何もありません。この仕様もAIはよく間違えて処理してしまい、ときどき指摘して修正することとなりました。もちろんデータベース内では、新たに重複しないIDを作成しました。

データベースのカラム名もよく間違えて、エラーとなることがあり、指摘して修正する場面も多々ありました。一般的に使われるカラム名のパターンが複数存在するのは当然ですが、なぜか違うものをもってくるのは不思議です。基本となるSQLはファイルとして保存してあるのにも関わらず。

全く新規に作成するなら、もっとはるかに簡単だったのでしょうが、過去データの互換性は、やっかいでした。見た目レトロな掲示板を最新技術で再現する試みでした。

コードはたぶん完成。今後バグがあれば修正する程度。問題は、膨大なデータは、再度精査する必要があり、そのためのスクリプトを作りながら本導入となりそうです。

リンクソース

  • 記事用リンクソース:
  • Wiki用リンクソース(PukiWiki):
  • Wiki用リンクソース(MediaWiki):
  • SNS投稿用: