オープンソースの2画面ファイラーで、欲しい機能をAIで追加してみた
「shellfiler」というオープンソースの2画面ファイラーを愛用していました。
シェアウェアの頃から、お金を払わせてもらって使わせてもらっていたのですが、ある時からオープンソースになりました。
個人的に欲しい機能で、ネットワーク上のNASや他のPCの共有フォルダに手軽にアクセスする機能です。
具体的には「\PC名\共有フォルダ名」みたいなアクセスなんですが、これに対応していません。
ネットワークドライブ(ネットワーク上のアクセス先をドライブとしてWindowsに)を使えばアクセスは出来るので、全く使えない訳ではないのですが、共有フォイルだが多いとそれ全部にネットワークドライブを割り当てる訳にもいかず、最近は使わなくなっていました。
他のツールも試しましたが、「shellfiler」の使い勝手が結構良くて、個人的には変えたくいない!
そこで、せっかくオープンソースなんだから、AIで必要な部分を修正できれば、良さそう!
「shellfiler」のGITのURLです。
使用するAIは今回Geminiさんで、新しくなった「AntiGravity」でやってみます。
作業ファルダを指定して、次のプロンプトで作業してもらいました。
2画面ファイラーのC#コードです。
ネットワーク先のファイルを「\\AA\BB」のようなアドレス指定でアクセスできない、「webp」に対応していないなどの問題を解決したいです。
まずは、コンパイルできる環境を整えるなどベース部分を構築後に、上記2点の修正を行いたいです。
共有フォルダアクセス以外に、内蔵画像ビューアーを「webp」対応にする対応も加えました。
最近「webp」をよく使うので、これも対応していないと不便だったりします。
そんな訳で、実際に解析から初めてもらった解答になります。
コンパイル環境のベース構築を完了し、ご指摘いただいた2点の問題に対する調査を行いました。
ベース環境構築として、以下の対応を行いました。
ダウンロードしたファイルに付着していた MOTW (Mark of the Web) によるコンパイルエラーを解消しました。
外部依存となっている Tamir.SharpSSH.dll を NuGet から抽出し、プロジェクトの適切な場所に配置することでビルドが通る状態にしました。
「UNCパスへのアドレス指定アクセスエラー」および「WebP非対応」の2点について、具体的な修正方針を実装計画としてまとめました。
詳細は
implementation_plan.md
を作成いたしましたので、ご確認いただき、問題なければ「Proceed(実行する)」ボタンを押していただくか、承認の旨をご返信ください。
「implementation_plan.md」の内容は結構長いので、ポイントを抜粋します。
最初に環境構築ですが、C#のコンパイル環境などは既にインストール済みで、以下のようにビルドが通るようにしてくれました。
1. ベース環境構築(確認済み)
MOTW(Mark of the Web)の解除: ダウンロードされたファイル群に付与されているMOTWを一括で解除しました。
Tamir.SharpSSH.dll の配置: 外部依存である Tamir.SharpSSH.dll を Project\bin\Debug\ および Project\bin\Release\ に配置し、ビルドエラーを解消しました。
次が本命の共有フォルダアクセスですが、正規表現の問題だけでした。
これは、作者が意図的にやっている可能性もあるので、自分用に改良するのが良さそうです。
Geminiの解答が以下になります。
2. UNCパスアクセス(\AA\BB)への対応
ホスト名にアンダースコア _ や日本語などのマルチバイト文字が含まれている場合、現在の正規表現パターン([a-zA-Z0-9\-\.]+)では絶対パスと認識されず、相対パスとして処理されてしまうためエラーとなります。正規表現をバックスラッシュ以外の文字を許容するよう緩和します。
次は、内蔵ビューアーの「webp」対応です。
Geminiの対応内容は以下です。
3. WebP画像形式への対応
WebP画像のデコードをサポートするため、軽量な Imazen.WebP ライブラリ(および native libwebp.dll)を導入します。
ライブラリを自動で入れてくれて、対応コードも書いてくれました。
この辺は大変便利です。
コードの変更だけで無く、ビルドが通るかも自動でチェックしてくれるので、何も修正することも無く完成しました。
できあがった実行ファイルが普通に意図通りに動いたので、実行ファイルを差し替えて使っています。