« Last.FM: Buddy Holly / Everyday ... ナイアガラ・トライアングル/A面で恋をして(3/9) | トップページ | 『ウイルスバスター2005』の「パーソナルファイアウォール」の「除外リスト」が初期化 (3/10) »

2005.03.10

Last.FMのRecent TracksのRDFを取得・表示するPerlスクリプト (3/10)

2/26「Last.FMの「Recent Tracks」のRDFをメールで受信したいのですが…」にも書いた通り、 Last.FMのRecent TracksのRDFを取得・表示(してからメール送信)するPerlスクリプトを作ってみました。本『Blog Hacks』を片手に、特に98ページから108ページを参考にして (^^;

Perlの超超超初心者なので、汚いところや変なところはおめこぼしを…。

#! /usr/bin/perl

use strict;
use LWP::Simple;
use XML::RSS;

use Jcode;

# Last.FM の Recent Tracks の RDF のURL
my $url = "http://ws.audioscrobbler.com/rdf/history/(ユーザ名)";
my $xml = get($url) or die "Can't GET $url\n";

# ローカルのRDFの保存先
my $local ="/home/hogehoge/tmp/lastfm.xml";

my $ocode = "euc"; # 変換先の文字コード:sjis,euc,jis,utf8

mirror($url => $local);

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

for my $item (@{$rss->items}) {

  # 文字コードを UTF-8 から変換
  my $desc = $item->{description};
  Jcode::convert(\$desc,$ocode,'utf8');

  # link は audioscrobbler から Last.FM の方に張り変える。
  my $link_lastfm = $item->{link};
  $link_lastfm =~ s/http:\/\/www.audioscrobbler.com\/music\//http:\/\/www.last.fm\/music\//;

  # アーティスト、曲名、リンクを出力
  printf "| %s\n%s\n\n", $desc, $link_lastfm;
}

RSSをパースするところは『Blog Hacks』をそのまま書き写したので、よく分かっていません (^^;

本当は前回の「Recent Tracks」との差分だけを表示できるようにできたらいいので、宿題。

以上。


Amazon.co.jp: 本: Blog Hacks ―プロが教えるテクニック&ツール100選
http://www.amazon.co.jp/exec/obidos/ASIN/4873111749



|

« Last.FM: Buddy Holly / Everyday ... ナイアガラ・トライアングル/A面で恋をして(3/9) | トップページ | 『ウイルスバスター2005』の「パーソナルファイアウォール」の「除外リスト」が初期化 (3/10) »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/49099/3245254

この記事へのトラックバック一覧です: Last.FMのRecent TracksのRDFを取得・表示するPerlスクリプト (3/10):

« Last.FM: Buddy Holly / Everyday ... ナイアガラ・トライアングル/A面で恋をして(3/9) | トップページ | 『ウイルスバスター2005』の「パーソナルファイアウォール」の「除外リスト」が初期化 (3/10) »