しゃある通信

#24-01 [PSP,RSS]RSSチャンネルを保存しているファイルの解析
抗うつ剤の副作用で土曜からずっと具合が悪かったが、今日の夕方に復活した。薬減らさないと…。

明日PSPのファームが2.70に上がると いうことで、RSSチャンネルが保存されているファイル

\PSP\SYSTEM\RSSCH\CHANNELS\CHLIST
の解析をしてみた。けっこう単純だったので、外部編集を可能にするのは簡単だな。2.70で構造が 変わらなければの話だが。

PSPで登録するのが面倒なのはなんとかならないものだろうか…。

#!/usr/bin/perl

use strict;
use Jcode;

my $FILENAME = "CHLIST";
my $buffer;
my $chan_length;
my $read_length;
my $len;

open(FD, $FILENAME);
read(FD, $buffer, 8);

while (!eof(FD)) {
    my ($url, $title, $desc, $copy, $image);
    read(FD, $buffer, 4);
    if ($buffer eq "CHAN") {
	read(FD, $buffer, 4);
	$chan_length = unpack("L", $buffer);
	$read_length = 0;

	while ($chan_length != $read_length) {
	    read(FD, $buffer, 4); $read_length += 4;
	    if ($buffer eq "URL ") {
		read(FD, $buffer, 4); $read_length += 4;
		$len = unpack("L", $buffer);
		read(FD, $buffer, $len); $read_length += $len;
		$url = $buffer;
	    } elsif ($buffer eq "TITL") {
		read(FD, $buffer, 4); $read_length += 4;
		$len = unpack("L", $buffer);
		read(FD, $buffer, $len); $read_length += $len;
		$title = jcode($buffer)->sjis;
	    } elsif ($buffer eq "DESC") {
		read(FD, $buffer, 4); $read_length += 4;
		$len = unpack("L", $buffer);
		read(FD, $buffer, $len); $read_length += $len;
		$desc = jcode($buffer)->sjis;
	    } elsif ($buffer eq "COPY") {
		read(FD, $buffer, 4); $read_length += 4;
		$len = unpack("L", $buffer);
		read(FD, $buffer, $len); $read_length += $len;
		$copy = jcode($buffer)->sjis;
	    } elsif ($buffer eq "IMAG") {
		read(FD, $buffer, 4); $read_length += 4;
		$len = unpack("L", $buffer);
		read(FD, $buffer, $len); $read_length += $len;
		$image = $buffer;
	    } else {
		print "unknown section '$buffer'\n";
	    }
	}
    }
    print "$title\n";
    print "\t$url\n";
#    print "$desc\n";
#    print "$copy\n";
#    print "$image\n";
}

close(FD);
適当にでっち上げたので、参考になるかどうかは不明。IMAGというセクションもあるのだが、未サポート。



マクロミルへ登録

© 2006 Kazuya 'Sharl' Masuda
(C)Willoo Entertainment Inc. (C)Konami Digital Entertainment 株式会社ウィローエンターテイメント及び株式会社コナミデジタルエンタテインメントの著作権を侵害する行為は禁止されています。 0.004642 cached