#!/usr/local/bin/perl
# ************** forAU.cgi (2007.9.2)*************
# 着メロ・着歌など、携帯端末にダウンロードさせる時に、
# auの携帯端末用のダウンロードタグを書き出して、au用のダウンロードページを
# 一時的に作成するためのCGIです。
# このCGIを他のHTMLなどから呼び出すためには、
#
# <A HREF="…html等からのパス/forAU.cgi?f=ファイル名&n=曲名&m=戻りリンク">曲名</A>
#
# など、3つの引数を使用します。尚、戻りリンク([戻る])が不要な場合は、'&m=戻りリンク'は
# 使わずに、2つの引数のみ指定してください。
#
# 配布元:とまての実験室内、とまて週報20070728号
# http://www3.kcn.ne.jp/~tomate/shuho2007/20070728.html
#

$me="forAU.cgi";

#*******************設定項目*********************
# すでに入力されている例を参考に設定してください
#************************************************

# jcode.plを組み込む必要があります。PATHは、設置の環境により指定します。
    require '../lib/jcode.pl';

# サイト共有の戻りページのディレクトリ等(戻りページパスの左側の共有部分を指定する);
    $m_path='../html/';

# サイト共有の着メロ・着歌置き場(cgiからの相対アドレスで)
    $path='../data/';

# サイト共有のmmfのdev値を指定(頭の#を外してください)
  # $devchi='devm39z';#  40和音
    $devchi='devmfan';#  16和音
  # $devchi ='devmmf';#  4和音

# サイト共有のmime/typeを指定(.mmf → application/x-smaf )
    $type='application/x-smaf';

# サイト共有のページタイトル
    $p_title='着声';

# ダウンロード頁の背景色
    $bgcolor='#ffffaa';

# ダウンロード頁の文字色
    $text='#000088';

# ダウンロード頁のLINK済みの文字色
    $link='#880000';
#************************************************

    %form = &read_input('sjis');
    $f = $form{'f'};
    $n = $form{'n'};
    $m = $form{'m'};

    if($m ne ''){
        $modori_link1="<br />\n<a href=\"$m_path$m\" accesskey=\"1\">\&\#xf6fb;[戻る]</a>";
        $modori_link2="<BR>\n<a href=\"$m_path$m\">[戻る]</a>";
    }else{
        $modori_link1="";
        $modori_link2="";
    }

# ダウンロードファイルサイズのチェック
    $fsize = -s "$path$f";

# エージェントの取得
    if($agent eq ""){$agent=$ENV{'HTTP_USER_AGENT'}};

# エージェントによって表示の切り替えを行う
    if(index($agent,"UP.Browser")>0 ){
        $tag = <<"HIA";
<html><head><title>$p_title</title></head>
<body bgcolor="$bgcolor" text="$text" link="$link">
<center>
$n($fsize byte)<br />
をダウンロードしますか?<br /><br />

<object data="$path$f" type="$type" standby=" OK " accesskey="1">
<param name="title" value="$n" valuetype="data" />
<param name="size" value="$fsize" valuetype="data" />
<param name="disposition" value="$devchi" valuetype="data" />
</object>
$modori_link1
</center>
</body></html>
HIA
    }else{
        $tag = <<"HIA";
<html><head><title>$p_title</title></head>
<body bgcolor="$bgcolor" text="$text" link="$link">
<center>
$n($fsize byte)<br>
をダウンロードしますか?<br>
<A HREF="$path$f">[OK]</A>
$modori_link2
</center>
</body></html>
HIA
    }
#--------------------↓ページの表示----------------------
print "Content-type: text/html\n\n";
&downloadpage;
exit();
#===================↓ここからサブルーチン=============================
sub downloadpage{
print <<"HIA1";
$tag
</BODY>
</HTML>
HIA1
}
#********************************************************************************
#  “Kamitani Home Page”http://home.interlink.or.jp/~kamitani/index.cgi
#  のcgi-bin抜粋を利用させていただいております
#
#    read_input : フォームからのデータを分解し   $form{'xxxx'} で返す。
#     引数 1: 'euc' or 'jis' or 'sjis'
#********************************************************************************
sub read_input {
    $charset = $_[0];
    $charset = 'euc' if ( $charset eq '' );
    local ($buffer, @pairs, $pair, $name, $value, %FORM);
    # Read in text
    $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
    if($ENV{'REQUEST_METHOD'} eq "POST") {
        read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    }else{ $buffer = $ENV{'QUERY_STRING'};}
    @pairs = split(/&/, $buffer);
    foreach $pair (@pairs) {
        ($name, $value) = split(/=/, $pair);
        $value =~ tr/+/ /;
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        &jcode'convert(*value, $charset);
        $FORM{$name} = $value;
    }
    %FORM;
}
__END__