一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプト

 久しぶりにHatena::Diaryのスーパーpre記法を使ってみます。昨日GitHubで公開済みのスクリプトです。
https://github.com/hirono2011/git-hub-script/blob/master/h-twit-Diary.rb

#!/usr/bin/ruby -Ku

#一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプトです。LinuxFreeBSDというUNIX環境が前提です。ソースはクリップボードに格納されます。
#そのままコマンドを実行すると、TwitterAPIのキーを登録したユーザのツイートで昨日分のツイートが対象になります。引数をつけると指定したユーザのツイートが対象になりますが、第一引数にユーザ名、第二引数に日付の指定が必要になります。
#例: h-twit-Diary.rb hirono_hideki 20110815
#期日の指定がまずかったりするとスクリプトが無限ループに陥る場合があり、TwitterAPIの使用回数を使い切ってしまいます。おかしい挙動だと思ったらCtrl+cで、強制終了してください。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	puts ARGV[1].to_i, "のデータを取得します。"
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 


def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] || 's_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF"><このツイートの公式RTです。一致しない場合は削除の可能性があります。></span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
	puts "#{p}                    #{day}\n"
end

Clipboard.copy($html_data);

TwitterのまとめをWordPressのブログに自動投稿するスクリプト

 Rubyのスクリプトです。GitHubにも置いてあります。
https://github.com/hirono2011/git-hub-script/blob/master/h-twit-xmlrpc.rb

#!/usr/bin/ruby -Ku
#一日前のツイートをまとめて取得し、WordPressのブログに投稿するスクリプトです。LinuxFreeBSDというUNIX環境が前提ですCRONで自動実行することを考えて作りました。
#引数をとると指定したTwitterユーザのツイートを取得できますが、この場合次の例のように、ユーザ名、指定日付、指定タイトルという3つの引数をつけるようにしてあります。
# h-twit-s_hirono-xmlrpc.rb hirono_hideki 20110817 "テストです。たいとる"
#実際に使用しているブログです。→ http://hirono2011.wordpress.com/
#なお、APIでのデータの取得はサーバの状態などによってもうまくいかない場合があるかと思います。APIの使用回数にも制限がありますので気をつける必要があるかと思います。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'xmlrpc/client'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 

def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] ||'s_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
#puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			#print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF"><このツイートの公式RTです。一致しない場合は削除の可能性があります。></span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
end

#ブログにxmlrpcで投稿
if $html_data == ""  then
	exit 1
end


user = 'ユーザ名'
pass = 'パスワード'
publish = 1 #0にすると下書き投稿になるみたいです。確認はしていないです。

server = XMLRPC::Client.new('ユーザ名.wordpress.com', '/xmlrpc.php')

title_name = ARGV[2] || "#{day}のツイート_再審請求_金沢地方裁判所御中 (s_hirono)"
struct = {
'title'=>title_name,
'description'=>$html_data
}

id = server.call("metaWeblog.newPost",1,user,pass,struct,publish)
#!/usr/bin/ruby -Ku
#一日前のツイートをまとめて取得し、WordPressのブログに投稿するスクリプトです。LinuxFreeBSDというUNIX環境が前提ですCRONで自動実行することを考えて作りました。
#引数をとると指定したTwitterユーザのツイートを取得できますが、この場合次の例のように、ユーザ名、指定日付、指定タイトルという3つの引数をつけるようにしてあります。
# h-twit-s_hirono-xmlrpc.rb hirono_hideki 20110817 "テストです。たいとる"
#実際に使用しているブログです。→ http://hirono2011.wordpress.com/
#なお、APIでのデータの取得はサーバの状態などによってもうまくいかない場合があるかと思います。APIの使用回数にも制限がありますので気をつける必要があるかと思います。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'xmlrpc/client'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 

def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] ||'s_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
#puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			#print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF">&lt;このツイートの公式RTです。一致しない場合は削除の可能性があります。&gt;</span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
end

#ブログにxmlrpcで投稿
if $html_data == ""  then
	exit 1
end


user = 'ユーザ名'
pass = 'パスワード'
publish = 1 #0にすると下書き投稿になるみたいです。確認はしていないです。

server = XMLRPC::Client.new('ユーザ名.wordpress.com', '/xmlrpc.php')

title_name = ARGV[2] || "#{day}のツイート_再審請求_金沢地方裁判所御中 (s_hirono)"
struct = {
'title'=>title_name,
'description'=>$html_data
}

id = server.call("metaWeblog.newPost",1,user,pass,struct,publish)

一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプト

 久しぶりにHatena::Diaryのスーパーpre記法を使ってみます。昨日GitHubで公開済みのスクリプトです。
https://github.com/hirono2011/git-hub-script/blob/master/h-twit-Diary.rb

#!/usr/bin/ruby -Ku

#一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプトです。LinuxFreeBSDというUNIX環境が前提です。ソースはクリップボードに格納されます。
#そのままコマンドを実行すると、TwitterAPIのキーを登録したユーザのツイートで昨日分のツイートが対象になります。引数をつけると指定したユーザのツイートが対象になりますが、第一引数にユーザ名、第二引数に日付の指定が必要になります。
#例: h-twit-Diary.rb hirono_hideki 20110815
#期日の指定がまずかったりするとスクリプトが無限ループに陥る場合があり、TwitterAPIの使用回数を使い切ってしまいます。おかしい挙動だと思ったらCtrl+cで、強制終了してください。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	puts ARGV[1].to_i, "のデータを取得します。"
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 


def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] || 's_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF"><このツイートの公式RTです。一致しない場合は削除の可能性があります。></span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
	puts "#{p}                    #{day}\n"
end

Clipboard.copy($html_data);

hatena-diary-modeのインストール

 hatena-diary-mode For Emacsに一通りのことが書いてありました。以前のhatena-modeとほとんど変わりはないみたいですが、設定も簡単になりより使いやすくなったような気がします。

 これを使うと他のブログとは比較にならないぐらい効率的に記事が書けるんじゃないかと思います。記事をローカルのパソコンにもファイルとして保存するのでデータのバックアップにもなります。

はてなダイアリーにFollow meボタンをつけました。

http://d.hatena.ne.jp/RyoAnna/20091110/1257868996
を参考に、
http://www.twitterbuttons.com/index.php
でコードを取得。

 本当は、
http://www.go2web20.net/twitterFollowBadge/
からページの右側の固定位置に縦長で表示されるボタンを設置したかったのですが、はてなダイアリーではJavaScriptがごく限定的にしか使えず無理みたいです。

By: TwitterButtons.com
By TwitterButtons.com

コードはこんな感じです。単なるHTMLコードでJavaScriptは使っていないみたいです。

<a href="http://twitter.com/hirono_hideki"><img src="http://www.twitterbuttons.com/upload/images/dfb69d754etw2_gif.gif" title="By: TwitterButtons.com" alt="By: TwitterButtons.com" width="259" height="88" /></a><br /><a href="http://www.twitterbuttons.com">By TwitterButtons.com</a>

2011年8月17日(宇出津新港)

 18時30分頃に出かけました。空模様はよくなかったです。ネットの天気予報も21時から雨マークになっていました。
 堤防の先端まで行ったときは、薄暗くなり始めていました。すぐにライトを忘れてきたことに気がつき、バイクまで戻りましたが、往復だとけっこうな距離です。

 暗くなってしばらくすると、稲光が始まり、だんだんと近づいてくる気配でした。南西の風もやや強くて釣りもしにくかったです。空は一面曇っているので月明かりもなかったです。雨が降り出すのも時間の問題と思われ、そうそうに釣りをやめました。魚市場のあたりで雨が当たり出し、白山丸のあたりで本降りになってきました。能登町役場の時計をみたのが20時30分頃でした。

 家に着くと、すぐに土砂降り雨に変わり、雷も間近で鳴り出しました。早々に引き上げてきて良かったです。

宇出津新港2011年8月17日_01

宇出津新港2011年8月17日_02

宇出津新港2011年8月17日_03

宇出津新港2011年8月17日_04

 釣果も最悪に近い状態でした。今回は中層から表層のアジ狙いだったので、根掛かりすることもなかったです。底でメバルやキジハタを狙う気にはなれなかったです。釣れたのは小アジ3匹だけでした。今回はアジも持って帰るつもりでクーラーボックスに入れていたのですが、少なすぎるので海に帰してきました。無用な殺生をしてしまいましたが、海の食物連鎖になれば幸いです。

 近頃は宇出津でも魚の値段が高くなっていて、もう少し大きめのアジが1匹100円ぐらいです。見るからに新鮮なのでもったいないです。でも小木港と違い、宇出津のアジは刺身にして食べる気にはなれないです。湾内に汚い川があり、その近くも回遊している可能性があると考えるからです。数があれば唐揚げやフライにしますが、焼くと食べるところがほんの少しになります。小さいアジも片身ずつ一枚の刺身にするとけっこう美味いです。

宇出津新港2011年8月17日_05

「大人をなめるな。ばらまくぞ」


 同署によると、2人は出会い系サイトで知り合った。女子高生は被害に気付かなかったが、帰宅後も意識がもうろうとした状態が続き「何か薬を飲ませなかったか」とメールで追及。木下容疑者が「大人をなめるな。ばらまくぞ」などという文面のメールに女子高生の裸の写真を添付して返信したため、県警に相談して発覚した。

「女子高生に薬、下半身触った郵便局長」:イザ!

 女子高生をなめたために、逮捕された上、住所や氏名まで公表されてとんでもないことになったみたいです。

一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプト

 久しぶりにHatena::Diaryのスーパーpre記法を使ってみます。昨日GitHubで公開済みのスクリプトです。
https://github.com/hirono2011/git-hub-script/blob/master/h-twit-Diary.rb

#!/usr/bin/ruby -Ku

#一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプトです。LinuxFreeBSDというUNIX環境が前提です。ソースはクリップボードに格納されます。
#そのままコマンドを実行すると、TwitterAPIのキーを登録したユーザのツイートで昨日分のツイートが対象になります。引数をつけると指定したユーザのツイートが対象になりますが、第一引数にユーザ名、第二引数に日付の指定が必要になります。
#例: h-twit-Diary.rb hirono_hideki 20110815
#期日の指定がまずかったりするとスクリプトが無限ループに陥る場合があり、TwitterAPIの使用回数を使い切ってしまいます。おかしい挙動だと思ったらCtrl+cで、強制終了してください。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	puts ARGV[1].to_i, "のデータを取得します。"
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 


def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] || 's_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF">&lt;このツイートの公式RTです。一致しない場合は削除の可能性があります。&gt;</span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
	puts "#{p}                    #{day}\n"
end

Clipboard.copy($html_data);

hatena-diary-modeのインストール

 hatena-diary-mode For Emacsに一通りのことが書いてありました。以前のhatena-modeとほとんど変わりはないみたいですが、設定も簡単になりより使いやすくなったような気がします。

 これを使うと他のブログとは比較にならないぐらい効率的に記事が書けるんじゃないかと思います。記事をローカルのパソコンにもファイルとして保存するのでデータのバックアップにもなります。

一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプト

 久しぶりにHatena::Diaryのスーパーpre記法を使ってみます。昨日GitHubで公開済みのスクリプトです。
https://github.com/hirono2011/git-hub-script/blob/master/h-twit-Diary.rb

#!/usr/bin/ruby -Ku

#一日前のツイートをまとめて取得し、HTMLのソースを生成するスクリプトです。LinuxFreeBSDというUNIX環境が前提です。ソースはクリップボードに格納されます。
#そのままコマンドを実行すると、TwitterAPIのキーを登録したユーザのツイートで昨日分のツイートが対象になります。引数をつけると指定したユーザのツイートが対象になりますが、第一引数にユーザ名、第二引数に日付の指定が必要になります。
#例: h-twit-Diary.rb hirono_hideki 20110815
#期日の指定がまずかったりするとスクリプトが無限ループに陥る場合があり、TwitterAPIの使用回数を使い切ってしまいます。おかしい挙動だと思ったらCtrl+cで、強制終了してください。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	puts ARGV[1].to_i, "のデータを取得します。"
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 


def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] || 's_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF"><このツイートの公式RTです。一致しない場合は削除の可能性があります。></span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
	puts "#{p}                    #{day}\n"
end

Clipboard.copy($html_data);

TwitterのまとめをWordPressのブログに自動投稿するスクリプト

 Rubyのスクリプトです。GitHubにも置いてあります。
https://github.com/hirono2011/git-hub-script/blob/master/h-twit-xmlrpc.rb

#!/usr/bin/ruby -Ku
#一日前のツイートをまとめて取得し、WordPressのブログに投稿するスクリプトです。LinuxFreeBSDというUNIX環境が前提ですCRONで自動実行することを考えて作りました。
#引数をとると指定したTwitterユーザのツイートを取得できますが、この場合次の例のように、ユーザ名、指定日付、指定タイトルという3つの引数をつけるようにしてあります。
# h-twit-s_hirono-xmlrpc.rb hirono_hideki 20110817 "テストです。たいとる"
#実際に使用しているブログです。→ http://hirono2011.wordpress.com/
#なお、APIでのデータの取得はサーバの状態などによってもうまくいかない場合があるかと思います。APIの使用回数にも制限がありますので気をつける必要があるかと思います。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'xmlrpc/client'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 

def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] ||'s_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
#puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			#print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF"><このツイートの公式RTです。一致しない場合は削除の可能性があります。></span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
end

#ブログにxmlrpcで投稿
if $html_data == ""  then
	exit 1
end


user = 'ユーザ名'
pass = 'パスワード'
publish = 1 #0にすると下書き投稿になるみたいです。確認はしていないです。

server = XMLRPC::Client.new('ユーザ名.wordpress.com', '/xmlrpc.php')

title_name = ARGV[2] || "#{day}のツイート_再審請求_金沢地方裁判所御中 (s_hirono)"
struct = {
'title'=>title_name,
'description'=>$html_data
}

id = server.call("metaWeblog.newPost",1,user,pass,struct,publish)
#!/usr/bin/ruby -Ku
#一日前のツイートをまとめて取得し、WordPressのブログに投稿するスクリプトです。LinuxFreeBSDというUNIX環境が前提ですCRONで自動実行することを考えて作りました。
#引数をとると指定したTwitterユーザのツイートを取得できますが、この場合次の例のように、ユーザ名、指定日付、指定タイトルという3つの引数をつけるようにしてあります。
# h-twit-s_hirono-xmlrpc.rb hirono_hideki 20110817 "テストです。たいとる"
#実際に使用しているブログです。→ http://hirono2011.wordpress.com/
#なお、APIでのデータの取得はサーバの状態などによってもうまくいかない場合があるかと思います。APIの使用回数にも制限がありますので気をつける必要があるかと思います。

require 'rubygems'
require 'twitter'
require 'twitter-text'
require 'clipboard'
require 'xmlrpc/client'
require 'time'
require 'pp'

$html_data = ""

t=Time.now
if ARGV[1] == nil then
	day=t.strftime("%Y/%m/%d %H:%M").slice(0, 10).delete("/").to_i - 1
else
	day = ARGV[1].to_i
end

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end


# ログイン
Twitter.configure do |config|
  config.consumer_key = '取得したConsumer key'
  config.consumer_secret = '取得したConsumer secret'
  config.oauth_token = '取得したAccess Token (oauth_token)'
  config.oauth_token_secret = '取得したAccess Token Secret (oauth_token_secret)'
end 

def get_twits_page(page, day)

	s = 0

	list=Array.new
	uname=ARGV[0] ||'s_hirono'
	list=Twitter.user_timeline(:user=>uname, :include_rts=>1, :page=>page)


	h=Hash.new
	hh=Array.new
	html=""

	html +=  <<EOF
<ol style="list-style: none outside none; margin: 0pt; padding: 0pt;">
EOF

	list.each do |i|
		h["ctime"] = Time.at(Time.parse(i.created_at).to_i).strftime("%Y/%m/%d %H:%M");

		data_day = h["ctime"].slice(0, 10).delete("/").to_i
#puts "指定日時#{day}  ==== データ日時#{data_day}"
		if day > data_day then
			s = 1
		end

		if day == data_day then
			h["id"] = i.id
			h["img"] = i.user.profile_image_url;
			h["sname"] = i.user.screen_name;
			h["name"] = i.user.name;
			h["text"] = html_link(i.text);
			h["url"] = "http://twitter.com/#{i.user.screen_name}/status/#{i.id}";
			h["source"] = i.source;
			#print ">>>" , data_day
			html +=  <<"EOF"
<li style="position: relative; line-height: 1.1em;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{h["sname"]}/"><img src="#{h["img"]}" alt="#{h["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{h["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{h["name"]}</span></span>
<span>#{h["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{h["sname"]}/status/#{h["id"]}" target="_blank"><span>#{h["ctime"]}</span></a> <span> via #{h["source"]}</span></span></span>
</li>
EOF

			if i.retweeted_status then
				rt = i.retweeted_status
				hh = Hash.new
				rt_data = Twitter.user_timeline(:user=>rt.user.screen_name, :max_id=>rt.id, :count=>1)

				hh["id"] = rt.id
				hh["img"] = rt.user.profile_image_url;
				hh["sname"] = rt.user.screen_name;
				hh["name"] = rt.user.name;
				hh["text"] = html_link(rt.text);
				hh["ctime"] = Time.at(Time.parse(rt.created_at).to_i).strftime("%Y/%m/%d %H:%M");
				hh["url"] = "http://twitter.com/#{rt.user.screen_name}/status/#{rt.id}";
				hh["source"] = rt.source;

				html += <<"EOF"
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px">
<span style="font-style: italic; color: red; background-color: #FEECFF"><このツイートの公式RTです。一致しない場合は削除の可能性があります。></span><br />
</li>
<li style="position: relative; line-height: 1.1em; margin: 20px 5px 10px 60px; background-color: #E3F1FF;">
<span style="display: block; height: 60px; left: 0pt; margin: 10pt 10px 0pt 5px; overflow: hidden; position: absolute; width: 50px;"><a href="http://twitter.com/#{hh["sname"]}/"><img src="#{hh["img"]}" alt="#{hh["sname"]}" style="width: 48px; height: 48px; border: 0pt none;"></a></span><span class="status-body" style="display: block; margin-left: 65px; min-height: 50px; height: auto ! important;">
<span style="font-size: 0.7em;"><span style="color: #FF4500;font-weight:bold">#{hh["sname"]}</span><span style="margin-left:5px;color: rgb(153, 223, 153); font-size: 0.66em;"> #{hh["name"]}</span></span>
<span>#{hh["text"]}</span><span style="display: block; font-size: 0.66em; color: rgb(153, 153, 153); margin: 0px 0pt 0pt;"><a href="http://twitter.com/#{hh["sname"]}/status/#{hh["id"]}" target="_blank"><span>#{hh["ctime"]}</span></a> <span> via #h{h["source"]}</span></span></span>
</li>
EOF
			end

		else

			next

		end

	end

	html +=  "</ol>\n"
	$html_data += html

	return s

end

html_data=""
p = 1
while true do
	s = get_twits_page(p, day)
	break if s == 1
	p = p + 1
end

#ブログにxmlrpcで投稿
if $html_data == ""  then
	exit 1
end


user = 'ユーザ名'
pass = 'パスワード'
publish = 1 #0にすると下書き投稿になるみたいです。確認はしていないです。

server = XMLRPC::Client.new('ユーザ名.wordpress.com', '/xmlrpc.php')

title_name = ARGV[2] || "#{day}のツイート_再審請求_金沢地方裁判所御中 (s_hirono)"
struct = {
'title'=>title_name,
'description'=>$html_data
}

id = server.call("metaWeblog.newPost",1,user,pass,struct,publish)

はてなダイアリーでブログを再開しました。

 Hatena::Diaryのブログをプライベートモードにしてから9月でちょうど2年になるんじゃないかと思います。

 昨夜、はてなで複数のアカウントを持つことが出来るようになっていたと知り、さっそくアカウントを追加しブログを開設しました。以前からプライベートモードのブログをそのままに別のブログを持ちたかったのですが、思い出しては調べてもできないような情報しかみつからず諦めていました。

http://d.hatena.ne.jp/hatenadiary/20050616/1118906268

 で知ったのですが、2005年の情報みたいです。サブアカウントが持てるということ自体、初めて知りました。複数のメールアドレスを使えば、どこのブログサービスでも出来そうなことではありますが、できますと明示しているブログサービスをみたのも初めてです。

 複数のブログを持てないと言うことは、複数のアカウントも持てないということだと普通に思いこんでいました。

 一つのアカウントで複数のブログを持つことは現在も出来ないのかもしれません。なお、複数のアカウントといってもサブアカウントというかたちになっているみたいです。

hatena-diary-modeを使ってプライベートモードの記事を復活してみました。

 まず使っていないノートパソコン(Fedora13)を起動し、scpでhatena-diary-modeのディレクトリをコピー。設定の記載もコピーし、ユーザ名をプライベートモード中のブログに変更。

 M-x hatenaでhatena-diary-modeを起動。M-x hatena-get-webdiaryを実行することで過去の全ての記事をローカルにダウンロード。

 ダウンロードした記事は~/.hatenaディレクトリに日付単位のファイルとして20090818というファイル名の形式で保存されています。プライベートモードにする直前の最後の記事がこれでした。

 これ(20090818)をscpでノートパソコンから普段使っているUbuntu 11.04のパソコンの~/.hatenaディレクトリにコピー。

 Ubuntu 11.04のパソコンで、Emacsを起動し、~/.hatena/20090818を開き、C-c C-pで新しいブログに記事を投稿。

 復活した記事がこちらです。URLもファイル名と同じ日付になっているのでわかりやすいです。
http://d.hatena.ne.jp/hirono2011/20090818