Hatena::Groupperlmemo

Perlメモ

2008年09月18日 より開始
最新5件(RSS 2.0)
古いモジュールの更新

Plagger(Fedora10)
Plagger(Ubuntu9.04)

CPAN::Mini

Remedie(Ubuntu 9.04、Vine4.9(5α)、Fedora11Preview)
Remedie(Fedora10) 見れたサイトまとめ
編集

2008-09-19

最新処理済みアイデア100件のサービスごとの件数

| 最新処理済みアイデア100件のサービスごとの件数 - Perlメモ を含むブックマーク はてなブックマーク - 最新処理済みアイデア100件のサービスごとの件数 - Perlメモ 最新処理済みアイデア100件のサービスごとの件数 - Perlメモ のブックマークコメント

はてなアイデア


はてなアイデア - すべて(実装済 更新順)  終了

#!/usr/local/bin/perl
#最新?件のサービスごとの実装アイデア件数

use strict;
use lib qw(./mylib);
use LWP::Simple;

&Header();  #ヘッダー表示
&printCount();  #サービスごとの実装アイデア件数表示
&Footer();  #フッター表示

sub printCount {
	my $max = 100;  #カウントする処理済みアイデア件数
	my @count;    #それぞれのサービスの処理済件数
	my $page =  $max / 20;
	for(my $i=0; $i<$page; $i++)
	{
		my $itemnumber = $i * 20;
		my $url = 'http://i.hatena.ne.jp/idealist?of=' . $itemnumber . '&st=modified%20desc&status=implemented';
    #print $url . "\n";

		# 取得して変数に格納
		my @data = split(/\n/, get($url));  #改行で分解して @dataへいれる

		my $did;  #サービスの種類
		
		foreach ( @data ) {
			if(/<td class="icon line-left">/) {
				s/<td class=.*?>//g;  #<td class= から > まで除去
				s/<div class=.*?>//g;  #<div class= から > まで除去
				s/&status=.*>//g;  #&status=より後ろを除去
				s/<a href="\?did=//g;  #<a href="\?did=を除去  didの数字だけになる
				$count[$_]++;
				#print $_ . "\n";  #処理済みのアイデアのdidを表示
				#@updates = /\((....-.*?)\)/g;  #配列に日付取得 (????-*)の内側  2008-03-07 03:40:30
			}
		}

		if($i == $page- 1)
		{
			print "最新";
			print $itemnumber + 20;
			print "件のサービスごとの実装アイデア件数<br><br>\n";
			
			my @servicename = ('','','2人力検索サイトはてな','3はてなアンテナ','4はてなダイアリー','5はてなカウンター','6はてなグループ','7はてな検索',
						'8はてなフォトライフ','9はてなブックマーク',
						'10はてなアイデア',	'11はてなツールバー', '12はてな全般', '13はてなウェブサービス(開発者)', '14新サービス', '15はてなRSS', 
						'16はてなグリースモンキー', '17はてなマップ', '18はてなグラフ' , '19はてなリング', '20はてラボ', 
						'21はてなスクリーンショット', '22はてな以外', '23はてなスター', '24はてなメッセージ', '25ポケットはてな', '26はてなハイク', 
						'27はてなワールド', '28はてなキーワード','29新はてなブックマーク',
						'30うごメモはてな', '31新はてなツールバー',
						'32はてなスクリーンショット拡張', '33はてなモノリス', '34はてなココ', 
						'35はてなランド', '36ブログパーツ(ダイアリー・グループ)'	) ;
			
			print "<table>";
			for(my $j=2; $j<37; $j++)
			{
				print "<tr><td>" . $servicename[$j] . "</td>";
				print "<td>" . $count[$j] . "</td>\n";
				print "<td>";
				if($count[$j] > 100)
				{
					for(my $k=0; $k<100; $k++)  {
						print "*";
					}
					print "以下省略";
				}
				else
				{
					for(my $k=0; $k<$count[$j]; $k++)  {
						print "*";
					}
				}
				print "</td></tr>"
				
				#print $servicename[$j] . "<br>\n";
			}
			print "</table><br>\n";
		}
	}
	
	return 0;
}

sub Header {
	print "Content-type: text/html\n";
	print "\n";
	print "<html>\n";
	print "<head>\n";
	print '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . "\n";
	print "<title>hatenaidea</title>\n";
	print "</head>\n";
	print "<body bgcolor=\"#ffcccc\">\n";
	
	return 0;
}

sub Footer {
	print "</body>\n";
	print "</html>\n";

	return 0;
}

perl a.pl > a.html

f:id:fedora9:20080920102115p:image