#24-01 [PSP,RSS]RSSチャンネルを保存しているファイルの解析
抗うつ剤の副作用で土曜からずっと具合が悪かったが、今日の夕方に復活した。薬減らさないと…。
明日PSPのファームが2.70に上がると いうことで、RSSチャンネルが保存されているファイル
\PSP\SYSTEM\RSSCH\CHANNELS\CHLISTの解析をしてみた。けっこう単純だったので、外部編集を可能にするのは簡単だな。2.70で構造が 変わらなければの話だが。
PSPで登録するのが面倒なのはなんとかならないものだろうか…。
適当にでっち上げたので、参考になるかどうかは不明。IMAGというセクションもあるのだが、未サポート。#!/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);