アルファサード株式会社 代表取締役 野田 純生のブログ


Movable Typeでゴミっぽい? ファイルが残らないようにするプラグイン書いた。


公開日 : 2014-03-24 10:26:07


GitHubのog:imageで自分のプロフィールアイコンがでるのがこっぱずかしい今日この頃です皆さんいかがお過ごしでしょうか?

Movable Typeでゴミっぽい? ファイルが残る件

以前ちょっと目にして、そういや昔そんなこと考えたこともあったなぁ、と思い出していたのですが、まさかこの時期にしかも3連休の最終日にゴミ掃除のために出勤する羽目になろうとは...

MovableType(MT)のゴミファイルを削除する | Androidアプリ開発雑記

MovableTypeで悩まされるのは、ゴミファイルが残ってしまうことです。カテゴリのbasenameを変更したなどに、古いファイルに関しては削除されず、新しいbasenameのディレクトリが作られ、そのディレクトリに各ファイルが作られます。

WeblogPublisherを久しぶりに読んでいったのですねー。最初は、これか... (remove_fileinfo) と思ったのですけども。

screen-20140323173629

で、次に、これか、と思ったのですが、もうこの時点では古い MT::FileInfoレコードは削除されてしまっていたのでした。

MT::FileInfo->set_info_for_url

引用元の記事にもあったのですが、↓

作戦2: mt_fileinfoテーブルの変更を検知する

これも上と似ていますが、mt_fileinfoテーブルが変更されるタイミングが分かれば、過去と現在でなんらかの処理を行う事ができるのでは?と考えました。

プラグイン書いた( Garbage Cleaner = ゴミ掃除機! )

ご利用は自己責任でお願いします m(_ _)m

https://github.com/junnama/mt-plugin-garbage-cleaner/

name: Garbage Cleaner
id:   GarbageCleaner
version: 0.1
callbacks:
    MT::FileInfo::post_remove: >
        sub {
                my ( $cb, $obj ) = @_;
                my $path = $obj->file_path;
                require MT::FileMgr;
                my $fmgr = MT::FileMgr->new( 'Local' )
                                or die MT::FileMgr->errstr;
                if ( $fmgr->exists( $path ) ) {
                    $fmgr->delete( $path ) or die MT::FileMgr->errstr;
                }
             };

何か落とし穴ないだろうか? ダイナミックパブリッシングに変更したときの .staticが消えないだろうなってのはわかってるつもりだけど、他にないか!? アーカイブマッピングごと削除した時? テンプレート毎削除した時? ... どっちにしても、 FileInfoテーブルが正常である限りにおいてはこのプラグインで正しい状態が保たれると思いますが、どう?

まぁ、気持ちはわかる。消えて欲しくないものが消えたらクレームものだけど、消えないで残ってるって気持ち悪いくらいで深刻さが違うから。元々ブログだし Permalink って何かわかってんのか! と言いたい気持ちもわからんでもないけど。

でも、いい加減これ標準仕様にならないかしら...



このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の創業者であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ