diary are the Feru

痴呆防止に書きます

9/5

8時半に起きた。
ぼーっとしてたら携帯が今まで聞いたことのない警告音を発して緊急地震速報かと慌てた。しばらく経っても揺れないから確認したら訓練のメールだった。全く知らなかったから焦った。一週間ぐらい前から環状線のアナウンスとかで周知させてほしかった。しかし電車の中とかで一斉に鳴りだしたらパニック起こすなこれ…。

昼ご飯食べて気がついたら夕方まで寝てた。

botをいじった。今までめんどくさがってたcronの設定がようやくできた。
crontab - cron で ruby を自動実行する - Qiita
この通りやるだけなんだけどスペルミスしたりrubyのファイルの分け方がわかってなかったりで時間喰ってしまった。

rubyRSSの解析をはじめる。これが苦戦した。サンプルを書き写してるのにno method errorを連発する。設定にもコードにも問題ないことを何度も確認したができない。たのしいRubyが第3版だから悪いのか?とググっても解決しない。
ググってるうちにFeedzirraというライブラリを知った。インストールして動かしたけどまたもやサンプル通りなのにエラー出て嫌になった。どうも最近名前がFeedjiraに変わったらしい。gemをインストールし直してコードを少し書き換えたら動いた。


5人のブログのRSSを取得して時系列順にソートした。これを毛botにどう反映させるか。
今のbotにも一応更新の通知はできるけどRSS取得してないから問題だらけ。「はてなブログを更新しました」を含むpostからURLを抽出してるだけだから関係ないURLが拾われる恐れがあるし、はてな以外に対応できない。

require 'rss'
require 'feedjira'

$alist = []

def perse(url)
  feed = Feedjira::Feed.fetch_and_parse(url)
  puts feed.title
  feed.entries.each do |item|
    puts "#{item.published.to_i}: #{item.title}"
    $alist.push(item)
  end
end

url = ["http://feru.hatenadiary.jp/feed","http://moccai.hatenablog.com/feed","http://kasumiko.hatenablog.jp/feed","http://sonohennniiru.hatenadiary.jp/feed","http://usiusiusiusi.blog.fc2.com/?xml"]
url.each do |item|
  perse(item)
end

#時系列順にソート
sorted = $alist.sort{|aa, bb|
    aa.published.to_i <=> bb.published.to_i
  }
sorted.each do |item|
  puts "#{item.published}: #{item.title}"
end

グローバル変数使うのセンスない感じがする。