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

2008-09-18

最新30件のはてなアイデアのコメントの状況を表示

| 最新30件のはてなアイデアのコメントの状況を表示 - Perlメモ を含むブックマーク はてなブックマーク - 最新30件のはてなアイデアのコメントの状況を表示 - Perlメモ 最新30件のはてなアイデアのコメントの状況を表示 - Perlメモ のブックマークコメント

最新のはてなアイデア

コメントがついている分はコメントの日付を表示

はてなアイデア - すべて  終了

#!/usr/local/bin/perl
#はてなアイデアのコメントの状況を表示

use strict;
use LWP::Simple;


my $ideanumber = &GetLatestNumber(); #21495

&Header();  #ヘッダー表示

for(my $i=0; $i<20; $i++)  #表示件数
{
	&printUpdate();  #更新日時表示
	$ideanumber--;
}

&Footer();  #フッター表示


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 printUpdate {
	# 取得して変数に格納
	my @data = split(/\n/, get('http://i.hatena.ne.jp/idea/' . $ideanumber));  #改行で分解して @dataへいれる

	my @updates;  #更新日
	my $title, my $status;
	foreach ( @data ) {
		if(/<li><a href=/) {
			@updates = /\((....-.*?)\)/g;  #配列に日付取得 (????-*)の内側  2008-03-07 03:40:30
		}
		elsif(/<title>/) {
			s/<.*?>//g;  #HTMLタグの除去
			s/^.........//g;
			$title = $_;
			#print;  #タイトルの内容を表示
		}
		elsif(/<span class="status-waiting">/) {
			#s/<.*?>//g;  #HTMLタグの除去
			#print;  #状態を表示
			$status = '  <font color="008800">要望中</font>';
			#print "<br>\n";
		}
		elsif(/<span class="status-implemented">/) {
			$status = '  <font color="999999">実装済み</font>';
			#print "<br>\n";
		}
		elsif(/<span class="status-pending">/) {
			$status =  '  <font color="bbbb00">検討中</font>' ;
			#print "<br>\n";
		}
		elsif(/<span class="status-canceled">/) {
			$status =  '  <font color="999999">キャンセル</font>';
			#print "<br>\n";
		}
		elsif(/<span class="status-otherway">/) {
			$status =  '  <font color="999999">他の方法・検討中</font>';
			#print "<br>\n";
		}
	}

	print "$status<br>\n";
	print "$title<br>\n";

	print '<a href="http://i.hatena.ne.jp/idea/' . "$ideanumber" . '" target="_blank">' . "$ideanumber</a><br>\n";  #リンク表示
	
	foreach (@updates) {  #更新日表示
		print;
		print "<br>\n";
	}

	print "<br>\n";

	return 0;
}

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

	return 0;
}

sub GetLatestNumber {
	my @data2 = split(/\n/, get('http://i.hatena.ne.jp/idealist?of=0&st=edittime%20desc&status=all'));  #改行で分解して @data2へいれる

	foreach(@data2) {
            if(/<td class="icontent">/)	{
                $_ =~ /idea\/([0-9]+)"/;
                #print "test" . $1;
                return $1;
            }
	}
	
}

perl a.pl > a.html

f:id:fedora9:20101206234654p:image:left

JasonFoetsJasonFoets2017/01/25 04:27печать буклетаов http://wkrolik.com.ua/products/buklety