BlogPet背景画像のランダム切替CGI

長らく、津田ふみかの日記様の「こうさぎの背景画像をランダムに変更する」にお世話になっておりました。このような素晴らしいPerlスクリプトを作れるのがすごいです。

KOROPPYさんの ペット別背景を加えたランダムスクリプトで、共通背景を一元管理 の日記を見て、共通の背景画像を一元管理できるみたいなので早速導入しようと思ってました。
ただ、共通ファイルを外出しのファイルにしたから遅くなった(本当にそのせいかは不明?)との記述があったのでちょっと考えちゃいました。個別の背景画像は個別CGIスクリプトで指定することになるところも以前から何とかしたかった。
もともと面倒臭がりな自分なので「1ファイルで管理できた方がいいんだけどな」と不精精神がわいてきて…σ(^_^;)アセアセ...

ちょっと直してみました。

基本は、津田ふみかの日記様の「こうさぎの背景画像をランダムに変更する」になります。
ここから、いくつかの記述を追加します。

1.「#!/usr/bin/perl」の記述の次に以下を追加します。

$pet = shift;

2.次に共通ファイルの定義「my @files =」の次に以下を追加します。

my @cousagi = ('cousagi.jpg');
my @coinu = ('coinu.jpg');
my @coneko = ('coneko.jpg');
my @copanda = ('copanda.jpg');
my @conezumi = ('conezumi.jpg');

if ($pet eq "usagi") {
  unshift (@files, @cousagi);
} elsif ($pet eq "inu") {
  unshift (@files, @coinu);
} elsif ($pet eq "neko") {
  unshift (@files, @coneko);
} elsif ($pet eq "panda") {
  unshift (@files, @copanda);
} elsif ($pet eq "nezumi") {
  unshift (@files, @conezumi);
}

変更点は、これだけです。スクリプト全体を記述した方がわかりやすいかもだけど、問題があるかもなので変更点だけを記述します。津田ふみかの日記様の「こうさぎの背景画像をランダムに変更する」 を見ながら修正してください。

@filesには、共通なファイルのみを記述します。 @cousagi, @coinu, @coneko, @copanda, @conezumiに「こうさぎ用」「こいぬ用」「こねこ用」「こぱんだ用」「こねずみ用」のファイルを記述します。

その後、BlogPetのコントロール・パネルの背景画像にCGIのURLを指定するのですが、ここでBlogPet別にパラメータを与えます。やり方は、このスクリプトファイル名が、“randam.cgi”とすると以下の通り。

http://your_server.jp/cgi-bin/random.cgi?usagi

“?”(クエスチョンマーク)+“usagi”でOK。それぞれペット別に

こうさぎ usagi
こいぬ  inu
こねこ  neko
こぱんだ panda
こねずみ nezumi

となります。これで共通画像ファイル変更やPet個別画像ファイル変更の場合でも、CGIスクリプトファイルを一つだけ直してアップするだけでよいはずです。

途中のif文が、Perlらしくないので気に入らないのですが、機能しているからいいかな。
もっとスッキリとしたスクリプトがあったら、是非改善して公開願います。使わしてもらいます(^^)