http://kindlefeeder.com/ を使うってのがひとつ。
Web で公開されてる ruby で動く kindle-feeds ってのでいけそうだというのでメモ。
http://danielchoi.com/software/kindle-feeds.html
ターミナルからgmail経由してメール送るとか、cron動かしてみるとかやったことなかったのでついでに。
なお初心者も初心者、プログラミングとか全く出来ないので平にご容赦…
逆に言えばあんまり知らなくてもここまで出来るってことっぽい。
danielchoiさんのサイトを全面的に参考に。
0. Mac 再インストール用DVDからxcodeをインストール。
1. ターミナルを開いて
sudo gem install kindle-feeds
2. Documents(書類)フォルダ以下にKindleFeedsフォルダを作成
mkdir Documents/KindleFeeds
3. 移動
cd Documents/KindleFeeds
4. 試しに実行
kindle-feeds
5. kindle_feeds.confが出来上がるので適当なエディタでサイトを追加してもう一度実行…
なのですが!このままだと日本語のサイトのRSSが文字化け+中身を消される。
ここにソースコードがあるのですが
https://github.com/amontano/kindle-feeds
Iconvメソッドで無理やりutf-8のRSSをiso-8859-1にしているっぽい。iso-8859-1で定義されてない文字は消すみたいなことが書いてある…
のでそこをutf-8に変えてやる必要がある。
よくわからないのでutf-8をutf-8にするみたいな処理になってしまった。
もっと賢いやり口があると思います。MITライセンスなので著作権者を明示しておけばいいのだよね?
6. Macintosh HD の ライブラリ(Library)/Ruby/Gems/1.8/gems/kindle-feeds-1.0.6 が本体なので
lib フォルダ以下の kindle-feeds.rb のこの部分を
ic = Iconv.new('ISO-8859-1//TRANSLIT', 'utf-8')
ic2 = Iconv.new('ISO-8859-1//IGNORE', 'utf-8')
ic = Iconv.new('utf-8', 'utf-8')
ic2 = Iconv.new('utf-8', 'utf-8')
にする。但しそのままだと編集できないのでどっかにコピーとっておいて管理者権限で上書きする必要あり。
7. 同じフォルダにある kindle-feeds.erb.html 内の meta タグ中の iso 云々を utf-8 に変える。ここも管理者権限が要る。
たぶんほんとはこういうことしちゃいけないんでしょうか??ちょっとよくわかりません。
これでようやく日本語のRSSが扱えるようになる。Documents/KindleFeeds/以下で kindle-feeds を実行すれば Kindle Feeds 日-月-年.html みたいなファイルが出来る。
これをユーザネーム@free.kindle.comにメールで送ればKindleで読める…のだけどめんどくさい。これも自動化したい。
その前に日本語のサイトのRSSはたいてい広告とか入ってる上に中身スカスカなのでYahoo!pipesで処理する。
省略。
一例はここに。朝日新聞ヘッドラインだけ作ったけど微妙かも。
Wired.jp 一ページ目だけ配信 広告排除 http://pipes.yahoo.com/pipes/pipe.info?_id=c6b3e8cbacb102b9839b7ddbb5330327
朝日新聞 広告・Cnet・ZDnet排除 http://pipes.yahoo.com/pipes/pipe.info?_id=83c12722c0650363e7ffef99144ad858
Pipesの正規表現がちゃんと動かないのか自分のアレが足りないのかわからないけどクソみたいなフィルタなのであまりみてほしくないです。
なんか作ってくれといわれたらPipesくらいなら弄れそうな気がします。
1. ruby の tmail というライブラリがどうもいいらしい。のでインストール。
sudo gem install tmail
sudo gem install tlsmail
3. こことかhttp://yakinikunotare.boo.jp/orebase/index.php?Ruby%2FTMail ここのコピペ。http://d.hatena.ne.jp/unageanu/20090429/1241001029
後者のスクリプトで、変えなければならないのは mail.to, mail.from, mail.subject, mail.body(これはKindleに送る場合不要), Net::SMTP.start( "smtp.gmail.com", 587, "localhost.localdomain(ここは変えなくて良い)", "foo@gmail.com(変える)", "<パスワード>(もちろん変える)", "plain")の場所。localhost.localdomainでいいことに気をつける。
4. 後者のスクリプトで試しに自分のgmailに送ってみる。OK。
5. html を添付できるようにする。ここで時間食った。content_type を text/html にしていたため。
最終的にはこんな↓↓感じになった。どんなに頻繁に動かすとしても一時間に一回なので
そのファイルを取ってこれるように kindle-feeds.rb を編集してKindle Feeds %Y-%m-%d-%H.htmlになるように書き換えておき、それにあわせてこのスクリプトもかきかえた。
require 'rubygems' require 'tmail' require 'tlsmail' require 'base64' date = Time.now.strftime('%Y-%m-%d-%H') # メールを作成、時刻入り mail = TMail::Mail.new mail.to = 'キンドルユーザ@free.kindle.com' mail.from = 'ユーザ@gmail.com' mail.subject = 'RSS ' + date mail.date = Time.now mail.mime_version = '1.0' #本文は不要 #作成した時間のhtmlファイルを取ってくる outfile = "Kindle Feeds #{date}.html" #Base64でひらいて送る、添付準備 attach = TMail::Mail.new attach.body = Base64.encode64 File.open("/Users/ユーザ/Documents/KindleFeeds/#{outfile}", "rb").read #content_typeは text! attach.set_content_type 'text','html','name'=>outfile attach.set_content_disposition 'attachment','filename'=>outfile attach.transfer_encoding = 'base64' #添付 mail.parts.push attach puts mail.encoded Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE) Net::SMTP.start( "smtp.gmail.com", 587, "localhost.localdomain", "ユーザ@gmail.com", "パスワド", "plain"){ |smtp| smtp.sendmail(mail.encoded, mail.from, mail.to) }
みたいな感じ。これをmail.rbにして保存。間違ってるとこもあると思うので訂正お願いします。
CronniX とかいうのがあったのでインストール。http://www.moongift.jp/2010/06/cronnix/
ただこれくらいならインストールいらなかったかも。launchdというのが最近の主流らしいのだがよくわからんすぎて断念。
ひとまず一日一回実行するような設定にしてみる。
Kindlefeeds.shファイルに
cd Documents/KindleFeeds kindle-feeds
と書き、Kindlemail.shに
cd Documents/KindleFeeds ruby mail.rb
と書いてKindleFeedsフォルダにでも保存
あとは
sh /Users/ユーザ/Documents/KindleFeeds/Kindlefeeds.sh
sh /Users/ユーザ/Documents/KindleFeeds/Kindlemail.sh
を毎日22時とかに実行すればいけそう。
原始的に最初のやつを22:30に、次のやつを22:35みたいな感じで設定してるけど、たぶんもっと賢いやり方があるのでしょう。
でもまあ動いてるしよしとしよう。一般人でも出来る!!!!!
oquno2011/12/18 16:34ebook-convertも便利