ターミナルで乃木坂のイベント情報を見る


みなさん乃木坂すきですか?
僕は半年前あたりから乃木坂にどハマりしてずっとなんかしたいなーって思って今にいたってしまったので何かしようとPCを開いた次第です。

きっかけ

なにかやりたいといってもパッと何か思い浮かばなかったのですが
近日乃木坂ファンの大きなイベントがあります

そう、長年乃木坂を支え伊藤かりんちゃんが将棋盤で言う"王"と例えた
西野が卒業してしまう。。。

絶対に卒業ライブには行きたい。行かなければ。

情報のキャッチアップは遅れてはいけない。。

でも、個人的に乃木坂公式HPはめったに開かないしなんとか公式HPを開かずにどうにか情報をキャッチアップできる方法。。。

そうだ!
ということでタイトル回収に行き着くわけです

乃木坂HPのイベント情報をターミナルで確認しよう!

ざっくりやったことは以下3つぐらいです。

  • curlで公式サイト情報の取得
  • 不要な情報の削除
  • fzf

ってことで、curlでHP情報を取得して見ます。
乃木坂のHPはpathによって"ブログ"や"ニュース"が分かれていたので今回は初めから以下のパスで打ち込みました
curl -s nogizaka46.com/news/events/


いろんな情報が取れました!

ただ、curlでサイトの情報を取得しただけでも乃木坂という存在が近くなれた気がします。

取得したい情報を絞る

今のままだとイベント情報以外のデータも取得してしまっているので絞り込もうと思います。
画面でいうとここだけ取得したい!

取得した要素を確認したらどうやらイベント情報には全てにtitle要素とリンク先のpathを持っていそう

ということで
curl -s nogizaka46.com/news/events/ | grep title | grep .php


結構綺麗になったのでここまできたら、色々できそうな気がしてきます。
というか、イベント情報を取得できたのでここでしゅーりょー!
やったー!

もうちょっと+αに

せっかくイベント情報と一緒に詳細ページのリンクも取得できているので、取得したイベント情報からタイトルを選択して詳細ページに飛ばしたいと思います。

ってことで、僕の大好きfzfに通してあげてみます。
curl -s nogizaka46.com/news/events/ | grep title | grep .php | fzf

ここまでできればphpのパスだけ取得してopenコマンド飛ばしてあげて完成です

function nogieve (){
  pass=$(curl -s nogizaka46.com/news/events/ | grep title | grep .php | cut -c 38- | rev | cut -c 21- | rev | fzf | rev |  awk '{print substr($0, index($0,">"))}' | rev | tr -d '>"')
  if [ -n "$pass" ]; then
    open $pass
  fi
}

。。。自分でも引きほどめちゃくちゃな方法で値を取り出してしまいました。。
ごめんなさい引かないできくださいm(_ _)m

終わりに

やったことはめちゃ単純でしたけど、久しぶりに趣味の拡張的なことができたので個人的には満足です。
本当にいつかLINEAPIとか使って乃木坂通知bot作ろうと思います。

という

最速で情報をキャッチアップするだけなら乃木坂速報なるものや、そもそもツイッターが一番早そうですね!

あと、自分でも調べてわからなくて最後まで理由がわからなかったのですがcurlで
curl -s -L http://www.nogizaka46.com/

でリクエスト投げたら文字化けしてこれの理由が最後までわからなかったので知見のある方は教えていただたいです。。;_;