2012-01-09 :-)
_ 読書メーター
12月の読書メーター
読んだ本の数:13冊
読んだページ数:3635ページ
ナイス数:11ナイス
狼と香辛料〈16〉太陽の金貨〈下〉 (電撃文庫)
最後の最後でやってくれた。まさに痛快! ロレンスもとうとう丸くなるのかーと思っていたら、やはりロレンスは最後までロレンスだった。だがそれがいい。
読了日:12月31日 著者:支倉 凍砂
狼と香辛料〈15〉 太陽の金貨<上> (電撃文庫)
ここに来てようやくホロとロレンスの信頼関係が築かれたか。長かった
読了日:12月31日 著者:支倉 凍砂
ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識
アプリケーションから電気信号までの道のりを辿る
読了日:12月25日 著者:戸根 勤
最新脳科学が教える 高校生の勉強法 東進ブックス
復習重要
読了日:12月20日 著者:池谷 裕二
小惑星探査機「はやぶさ」の超技術 (ブルーバックス)
はやぶさのすべて。「こんな事もあろうかと」はそれまでの実験の成否によるリスク管理が功を奏したということだったのか
読了日:12月19日 著者:
上達の法則―効率のよい努力を科学する (PHP新書)
守破離
読了日:12月13日 著者:岡本 浩一
政治のことよくわからないまま社会人になってしまった人へ―ひとめでわかる図解入り
読了日:12月13日 著者:池上 彰
正捕手の篠原さん (MF文庫J)
まさに4コマ。斬新すぎる/表紙の子が篠原さんだと思ってたら違った/監督出てこないのか
読了日:12月13日 著者:千羽カモメ
別れる理由を述べなさい! (一迅社文庫)
ドSとドMのカップルの話というか変態/話の展開はわかりやすいんだけど急すぎるか/SFを基礎としてカップルを仕立てあげたのだろうけど、別れないと決意するまでをもう少し感情移入したかった
読了日:12月12日 著者:太田 僚
世界のしくみがよくわかる!ニュースを読む技術
タイトルは誤り。「ニュース解説」といったところ。むしろ「新聞勉強術」を実践しているからこそこのように解説できるのであろう
読了日:12月09日 著者:池上 彰
日銀を知れば経済がわかる (平凡社新書 464)
日銀入門/金利政策の話がハイパー上から目線なので破滅する
読了日:12月06日 著者:池上 彰
池上彰の新聞勉強術
新聞記者もサラリーマン/隠語の説明がいい/いまとなっては国内の新聞読み比べどころか国外新聞も読み比べないと足りんですよね
読了日:12月03日 著者:池上 彰
エンジニアのためのWord再入門講座 美しくメンテナンス性の高い開発ドキュメントの作り方
社会人1年目のときに散々やらされたわーやらされたわー / ところどころに筆者の怨念がこもっている
読了日:12月03日 著者:佐藤 竜一
2011年12月の読書メーターまとめ詳細
読書メーター
_ [ruby][mechanize][tdiary][読書メーター]読書メーターのまとめを日記に反映させる
これ 読書メーター - まとめ
posttdiary 使う[ 20090711#p06 ] のもアレなので mechanize してみた。21世紀にもなってスクリプトにパスワードを書くとかよく分かりません。
tdiary へ書くときのリクエストヘッダの accept-charset が
accept-charset => ISO-8859-1,utf-8;q=0.7,*;q=0.7
となっているので submit で headers{ "accept-charset" => 'utf-8' } などしてみたんだけど文字化けしたので結局 agent.page.encoding に指定したら ok だった。よく分かりません。
これを crontab の @monthly に指定したので来月を乞うご期待。
#!/usr/pkg/bin/ruby -Ku
require 'rubygems'
require 'mechanize'
require 'logger'
require 'nkf'
require 'pp'
class BookMeter
def initialize
@mail = 'MAIL'
@pass = 'PASS'
@matome_uri = 'http://book.akahoshitakuya.com/matome' # 先月
# @matome_uri = 'http://book.akahoshitakuya.com/matome_lw' # 先週
# @matome_uri = 'http://book.akahoshitakuya.com/matome_ly' # 去年
end
#
# 先月分のまとめを取得
#
def get
agent = Mechanize.new
agent.get('http://book.akahoshitakuya.com/login')
agent.page.form_with(:action => '/login'){|f|
f.field_with( :name => 'mail' ).value = @mail
f.field_with( :name => 'password' ).value = @pass
f.checkboxes[ 0 ].check
f.click_button
}
page = agent.get(@matome_uri)
body = Nokogiri( page.body )
text = body.search( 'textarea' )[ 1 ].to_s
text.sub!( '<textarea onclick="this.select()" style="width:500px;height:200px;">', '' )
text = "{{'" + text + "'}}"
return text
end
end
class Diary
def initialize
# @uri = "http://www.area51.gr.jp/~rin/diary/update.rb"
@uri = "http://localhost/~rin/diary/update.rb"
@user = "USER"
@pass = "PASS"
@referer = "http://www.area51.gr.jp/~rin/diary/update.rb"
end
def set(text)
agent = Mechanize.new
# agent.log = Logger.new($stdout)
# agent.log.level = Logger::INFO
agent.auth(@user, @pass)
agent.get(@uri, nil, @referer)
text = "!読書メーター\n\n" + text
agent.page.encoding = 'UTF-8'
agent.page.form_with(:action => "update.rb") { |form|
form['body'] = text
form.submit(
form.button_with(:name => "append"),
headers = {
"referer" => @referer,
}
)
}
end
end
def main
bm = BookMeter.new
text = bm.get
td = Diary.new
td.set(text)
end
main




