(「無償・無保証・著作権放棄」<http://lifehacks.ta2o.net/byebye-copyright.html>)#!/usr/bin/perl -w # This is free software with ABSOLUTELY NO WARRANTY. # 無償・無保証・著作権放棄 (see http://lifehacks.ta2o.net/byebye-copyright.html) # # Web ページへのくっつけ方 (例): # <div class="rssbox"> # <script language="JavaScript" src="readme.js"></script> # </div> use strict; my $output_fn = shift; # JS出力先ファイル名 ### ReadMe! の登録情報ページへのアクセス(事情によりwget使用) `/usr/bin/wget -O /var/tmp/a -q http://s.readmej.com/m/yto/nais.to`; ###ここ変更!### open(F, "/var/tmp/a") or die; my $readme_cont = join('',<F>); close F; ### ランキング情報取り出し my @plist; while ($readme_cont =~ m|<TR>\n<TD>(http.+?)</TD>\n<TD ALIGN="right">(\d+)</TD>\n</TR>|gsm) { my ($u, $c) = ($1, $2); next if ($u !~ /\d{4}-\d\d-\d\d-\d+.html/); ###ここ変更!### push @plist, {'url'=>$u, 'count'=>$c}; } die if (@plist == 0); ### 記事ページからの title 情報の取り出し use LWP::Simple; foreach (@plist) { my $u = $_->{url}; my $c; ($c = get($u)) or die "Can't get $u\n"; ($_->{title}) = ($c =~ m|<title>(.+?)</title>|smi); } ### JavaScript ファイル作成 my $str = "<ul>"; foreach (@plist) { $_->{title} =~ s/\'//g; $str .= qq(<li><a href="$_->{url}">$_->{title}</a> ($_->{count})); } $str .= "</ul>"; $str =~ s/\n//g; open(F, "> $output_fn") or die "Can't open $output_fn : $!\n"; print F "document.writeln('$str');\n"; close(F);