« MythDoraのMythWeb設定(PART2) | メイン | MythDoraのMythWeb設定(PART4) »

2008年04月26日

●MythDoraのMythWeb設定(PART3)

ダウンロード時のファイル名の文字化け方法ですが、私がなんちゃってで回避した方法を紹介します^^;
(文字化けは完全には解消されません。)

CPANを使ってモジュールを導入します。
実は、MythDoraの設定なのかネットワークの調子が悪かったのか接続に失敗することがあったので以下は
あまり参考にならないかもしれません。

[root@kororin mythweb]# perl -MCPAN -e shell

--22:16:12-- ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY.gz
(試行:11) => `-'
ftp.perl.org|163.143.1.21|:21 に接続しています... 接続しました。
anonymous としてログインしています...
サーバの応答にエラーがあるので、接続を終了します。
再試行しています。

Issuing "/usr/bin/ftp -n"
Not connected.
Local directory now /root/.cpan/sources
Not connected.
Not connected.
Not connected.
Not connected.
Not connected.
Bad luck... Still failed!
Can't access URL ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY.

Please check, if the URLs I found in your configuration file () are valid.
The urllist can be edited. E.g. with 'o conf urllist push ftp://myurl/'

Could not fetch MIRRORED.BY
CPAN.pm needs at least one URL where it can fetch CPAN files from.

☆☆デフォルトには接続出来なかったので手入力にて以下の場所を入力しました。

Please enter your CPAN site: [] ftp://ftp.kddlabs.co.jp/CPAN/

Enter another URL or RETURN to quit: []
New set of picks:
ftp://ftp.kddlabs.co.jp/CPAN/


commit: wrote /usr/lib/perl5/5.8.8/CPAN/Config.pm
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan>

Jcodeモジュールをインストールします。

cpan> install Jcode
CPAN: Storable loaded ok
Fetching with LWP:
ftp://ftp.kddlabs.co.jp/CPAN/authors/01mailrc.txt.gz
Going to read /root/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Fetching with LWP:
ftp://ftp.kddlabs.co.jp/CPAN/modules/02packages.details.txt.gz
Going to read /root/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Wed, 27 Feb 2008 04:30:57 GMT

There's a new CPAN.pm version (v1.9205) available!
[Current version is v1.7602]
You might want to try
install Bundle::CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...

Fetching with LWP:
ftp://ftp.kddlabs.co.jp/CPAN/modules/03modlist.data.gz
Going to read /root/.cpan/sources/modules/03modlist.data.gz
Going to write /root/.cpan/Metadata
Running install for module Jcode
Running make for D/DA/DANKOGAI/Jcode-2.06.tar.gz
Fetching with LWP:
ftp://ftp.kddlabs.co.jp/CPAN/authors/id/D/DA/DANKOGAI/Jcode-2.06.tar.gz
CPAN: Digest::MD5 loaded ok
Fetching with LWP:
ftp://ftp.kddlabs.co.jp/CPAN/authors/id/D/DA/DANKOGAI/CHECKSUMS
Checksum for /root/.cpan/sources/authors/id/D/DA/DANKOGAI/Jcode-2.06.tar.gz ok
Scanning cache /root/.cpan/build for sizes
Jcode-2.06/
Jcode-2.06/Changes
Jcode-2.06/Changes.ver0X
Jcode-2.06/Jcode/
Jcode-2.06/Jcode/_Classic.pm
Jcode-2.06/Jcode/Constants.pm
Jcode-2.06/Jcode/H2Z.pm
Jcode-2.06/Jcode/Nihongo.pod
Jcode-2.06/Jcode/Tr.pm
Jcode-2.06/Jcode/Unicode/
Jcode-2.06/Jcode/Unicode/Constants.pm
Jcode-2.06/Jcode/Unicode/NoXS.pm
Jcode-2.06/Jcode.pm
Jcode-2.06/Makefile.PL
Jcode-2.06/MANIFEST
Jcode-2.06/META.yml
Jcode-2.06/README
Jcode-2.06/t/
Jcode-2.06/t/_test_unicode.pl
Jcode-2.06/t/ambiguous.pl
Jcode-2.06/t/append.t
Jcode-2.06/t/benchmark.pl
Jcode-2.06/t/convert.t
Jcode-2.06/t/fun.pl
Jcode-2.06/t/getcode.t
Jcode-2.06/t/h2z.t
Jcode-2.06/t/hankaku.euc
Jcode-2.06/t/hiragana.euc
Jcode-2.06/t/._jfold.t
Jcode-2.06/t/jfold.t
Jcode-2.06/t/length.t
Jcode-2.06/t/mime.t
Jcode-2.06/t/new.t
Jcode-2.06/t/perl581.t
Jcode-2.06/t/._regex.t
Jcode-2.06/t/regex.t
Jcode-2.06/t/stripped.euc
Jcode-2.06/t/table.euc
Jcode-2.06/t/table.jis
Jcode-2.06/t/table.sjis
Jcode-2.06/t/table.ucs2
Jcode-2.06/t/table.utf8
Jcode-2.06/t/._tr.t
Jcode-2.06/t/tr.t
Jcode-2.06/t/unibench.pl
Jcode-2.06/t/x0212.euc
Jcode-2.06/t/x0212.jis
Jcode-2.06/t/x0212.ucs2
Jcode-2.06/t/x0212.utf8
Jcode-2.06/t/zenkaku.euc
Jcode-2.06/Unicode/
Jcode-2.06/Unicode/euc2uni.h
Jcode-2.06/Unicode/Makefile.PL
Jcode-2.06/Unicode/uni.c
Jcode-2.06/Unicode/uni2euc.h
Jcode-2.06/Unicode/Unicode.pm
Jcode-2.06/Unicode/Unicode.xs

CPAN.pm: Going to build D/DA/DANKOGAI/Jcode-2.06.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Jcode
cp Jcode/Nihongo.pod blib/lib/Jcode/Nihongo.pod
cp Jcode.pm blib/lib/Jcode.pm
Manifying blib/man3/Jcode::Nihongo.3pm
Jcode/Nihongo.pod:1: Unknown command paragraph "=encoding euc-jp"
Manifying blib/man3/Jcode.3pm
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/append.....ok
t/convert....ok
t/getcode....ok
t/h2z........ok
t/jfold......ok
t/length.....ok
t/mime.......ok
t/new........ok
t/perl581....ok
t/regex......ok
t/tr.........ok
All tests successful.
Files=11, Tests=244, 4 wallclock secs ( 3.03 cusr + 0.28 csys = 3.31 CPU)
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/5.8.8/Jcode.pm
Installing /usr/lib/perl5/site_perl/5.8.8/Jcode/Nihongo.pod
Installing /usr/share/man/man3/Jcode.3pm
Installing /usr/share/man/man3/Jcode::Nihongo.3pm
Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Jcode/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
/usr/bin/make install -- OK

cpan> quit
Terminal does not support GetHistory.
Lockfile removed.

無事にJcodeがインストールされたらhandler.plを修正します。

[root@kororin stream]# vi /home/hoge/public_html/mythweb/modules/stream/handler.pl

# Necessary constants for sysopen
use Fcntl;

上記の下あたりに以下を追加します。

  use Jcode;

次に# Get the basename from the databaseの部分を以下の様に編集します。

my $sh = $dbh->prepare('SELECT basename, title, subtitle, description FROM recorded WH
ERE chanid=? AND starttime=FROM_UNIXTIME(?)');
$sh->execute($chanid, $starttime);
my ($basename, $title, $subtitle, $description) = $sh->fetchrow_array();


最後に# Download filenameの下の部分を以下の様に編集します。

my $name = $basename;
if ($name =~ /^\d+_\d+\.\w+$/) {
$name =~ s/\.mpg/-/g;
$name =~ s/^[\d][\d][\d][\d]_//g;
$name .= $title;
# if ($subtitle =~ /\w/) {
$name .= "-$subtitle-$description";
# }
$name .= $suffix;
$name = jcode($name)->sjis;
}

これでダウンロード時のファイル名の文字化けをある程度防ぐことが出来ます^^;

トラックバックURL

このエントリーのトラックバックURL:
http://kororin.com/cgi-bin/mt32/mt-tb.cgi/386

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)