RでNHKにログインして語学の進捗を取得する

英語を再び勉強し始めた。
毎日一定時間聴くようにしているのだがどうしても忘れてしまうことがある。
経験上2日あくとせっかく身に付いた習慣がリセットされるのでその前になんとかしたい。
つまり、進捗を把握して進捗が無くなったら自分に通知をとばす。
進捗の把握にはNHKのゴガクルを使う。

ゴガクルとは

ゴガクルとはNHKの語学サイト。
充実した語学番組の過去放送をストリーミング再生できるので非常に便利。
https://cgi2.nhk.or.jp/gogaku/
さらに、アカウントがあればストリーミング再生するとその旨記録されていく。
つまりこの記録をもって進捗を把握できる。

Rで進捗を把握する。

ということでパッケージにした。NHKGパッケージ。
APIとか無かったので辛かった。
ともあれ今月の視聴日数を取得できる。

devtools::install_github("dichika/NHKG")
library("NHKG")
# ログインIDとパスワードはアカウントに登録しているものを用いる
login_id <- options()$NHK_G_ID
password <- options()$NHK_G_PWD
# 進捗、つまり今月の視聴日数を取得する。
getSinchokuGogaku(login_id, password)

あとはGmailとかYoで通知をとばせばよい。

今回のパッケージについて

ちなみに裏でやっていることはヘッダ情報とログインIDとパスワードをhttrパッケージのPOSTでサイトに投げているだけ。
そこで取得したクッキーを用いてログインし、カレンダー情報を取得している。
このあたりのアイデアはfitbitScraperパッケージを見て思いついた。
実装の詳細については以下を参照のこと。
https://github.com/dichika/NHKG/blob/master/R/NHKG.R
なおヘッダだのなんだのといった一連のPOST情報はchromeの要素の検証->Networkで実際にPOSTした時の挙動を確認することで設定した。

enjoy!!!