header_02.jpg

トランペットブログ個別記事

2004年10月24日

ようやっとiTunesMusicStoreのRSSを弄ってみた。

何とかiTunes Music StoreのRSSを利用して、Blues, Classical, Jazz、Latinの中でのトップ10アルバムを表示してみました。右下のほうにちょこんとありますので、よろしければ。
 #[加工元のIMSのRSS生成サイト]iTunes Music Store RSS Generator

しかしまだ、名前と概説しかのっけられてません…とりあえず、アルバム紹介へのリンクを貼りたいのですが、RSSに含まれてるデータは、iTunes Music Storeへのリンクなので、載せたとしてもいきなりiTunesが起動されるか、インストールすらされていなければどうなるかもわかりません代物で(^_^;

何はともあれ…

MSN MusicはRSSを吐くらしいのエントリーで、oscarblogさんにiTunesのRSSについてコメントをもらって、よっしゃいっちょやってみようと思ってから、軽く1月半以上…

仕事で使えた方が今後いいだろうということで、「Amazon.co.jp: 本: Blog Hacks ―プロが教えるテクニック&ツール100選」を買って見たものの、どうやら簡単に出来るものではなく、きちんと(?)PerlやらXMLやらやっておかないと無理な予感。

しょうがないので一念発起して、オライリーの『初めてのPerl』やら『プログラミングPerl』やら買い込んで、仕事の合間にカリカリやってきました…いやはや3日開けると忘れてる忘れてる…学生のころはもっと覚えも集中力もあったような…と思いつつ何とかBlogHackのドアを叩けるようになりました(-_-;

何か面白いことが出来るように精進せねば…何か要望などありましたらどうぞコメントくださいませ。そして、oscarblogさん改めてありがたうございました。

後はcrontabとシェルスクリプトがちゃんと動いてるかどうかだ…


ソースを載せておきます。ツッコミ大歓迎です(´・ω・`)ノ
でも、このまま使うのは危険な気がしますので、参考にすることはお勧めしません。なんないと思うけど。


#!/usr/bin/perl -I ./lib

#iTunesのRSSを取り込んでJavaScriptで出力するPerlScript
#定期的にこのscriptをcronで回して更新。


#itunes_parse.pl
#
#<IN> $feedRss : FeedするRSS。http://phobos.apple.com/WebObjects/MZSearch.woa/wo/9.1から生成
#<OUT> itunes_rss.jsファイル。


use strict
use XML::RSS
use LWP::Simple
use HTML::Template
use Encode ;


#対象RSSをLWPでGET。


my $target_rss = "http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wpa/
MRSS/topalbums/sf=143441/genre=9060000/limit=10/rss.xml"
my $local_path = "itunes.rss"
my $res = LWP::Simple::mirror ($target_rss => $local_path) or die "Cant
locate RSS ..." ;


#GETしたRSSをXML::RSSモジュールでParse。


my $rss = new XML::RSS
$rss -> parsefile($local_path) ;


#各要素を取り出していく


my $channel = $rss->channel
my $items = $rss->items ;


my @item_list
foreach (@$items){
my $title = $_ -> {title}
my $description = $_ -> {description}
push @item_list , { title => $title , description => $description }
}


 


#HTML::Templateで、出力していく
my $template = HTML::Template -> new( filehandle => \*DATA );


#paramaterの設定
$template -> param (
maintitle => $rss -> {channel} -> {description} ,
items => \@item_list ,
) ;


#binmodeでSTDOUTのエンコーディング指定
#binmode STDOUT , ":encoding('utf-8')" ;


#Javascriptで出力する際に、クオテーションが問題になるらしいので
#エスケープしておく。エスケープ、エンコーディング周りはよくワカランです…


my @lines = split /\n/ , $template->output()
open (JS , ">itunes_rss.js")
for( @lines ){
s/\x27/&#x27;/g
print JS "document.writeln('$_') ; \n "
}
close JS
exit(0);


#ここからテンプレート
__DATA__
<div id="itunes_list">
<h3><TMPL_VAR name=maintitle escape=HTML></h3>
<dl>
<TMPL_LOOP name=items>
<dt><TMPL_VAR name=title escape=HTML></dt>
<dd><TMPL_VAR name=description escape=HTML></dd></TMPL_LOOP></dl>
</div>


■関係してそうなアイテム from Amazon
Posted by horagay at 2004年10月24日 22:37 | トラックバック
コメント
コメントする









名前、アドレスを登録しますか?






大きいバナー
バナーは大小お好きな方を御自由にどうぞ
小さいバナー
御意見は管理人まで。このページは当然リンクフリーです。
当サイトで紹介する情報等は、自己責任においてご利用下さい。 当サイトの利用によって生じたあらゆる損害に対して、管理者は一切の責任を負いません。
Copyright (C) 2003 Gonez Factory. All Rights Reserved.
旅・旅行の自作動画::Gone's Factoryもよろしければ(^-^

運営者プロフィール
060520face.jpg 大学時代トランペットに目覚める。一刻も早く上手くなりたくてネットで情報を集めていたら、サイトができてしまったという噂。現在は都内某ITベンチャー企業にてデザイナー職。
→詳しいプロフィールはこちら

自動更新バナー
投稿欄へ行きます アイコン等へのリンクです。 喇叭図書館へ行きます。 過去の新着情報を見る。 トップへ戻ります