1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

コマンド1つで競プロコンテストの予定一覧を取得

Last updated at Posted at 2019-03-18

要約

競プロのコンテストの予定をいちいちwebサイトに行って確認するのが面倒なのでコマンド化しました。コードは1行も書いてなくて既存のものを組み合わせただけです。

環境

Ubuntu 18.04
Anaconda 4.6.8
Python 3.7.1

手順

まずCompetitive Programming Contests Calenderにアクセスし、右下のボタンで自分のGoogleカレンダーに追加。

Googleカレンダーにアクセスし、設定ページから追加したカレンダーのカレンダーIDをメモしておきましょう。

次にGoogleCalenderAPIからデータを取得します。
GoogleCalenderAPIのPython QuickStartに従って進めていきます。

Step1ではAPIkeyをダウンロードします。jsonファイルを.pyファイルと同じフォルダにダウンロードします。

Step2では以下のコマンドを実行して必要なパッケージをインストールします。

pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

Step3で書かれているコードをまるごとコピーして新規ファイル(calender.pyとか適当に名前をつけて)に貼り付けます。このとき変数のcalenderIdを'primary'から先程メモしたカレンダーIDに書き換えてください。また、'credentials.json'に相対パスでも絶対パスでもいいので付け加えてください。

この時点で

python calender.py

を実行するとWebブラウザで認証画面が開き、認証するとコンテストの予定が表示されると思います。

Getting the upcoming 10 events
2019-03-15T22:00:00+09:00 [topcoder] Quantum Computing Series - MM
2019-03-16T10:00:00+09:00 [topcoder] MM 109 (10-Day)
2019-03-19T23:35:00+09:00 [Codeforces] #547 (Div. 3)
2019-03-21T00:00:00+09:00 [topcoder] SRM 753
2019-03-21 [topcoder] Geolocation Algo Challenge
2019-03-21T01:05:00+09:00 [CSA] FII Code #3
2019-03-22T00:35:00+09:00 [Codeforces] #548 (Div. 2)
2019-03-22T21:20:00+09:00 [yukicoder] #208
2019-03-23T00:05:00+09:00 [Codeforces] Educational #62 (Rated for Div. 2)
2019-03-23T13:00:00+09:00 [AtCoder] CADDi 2019 (Japanese)

ここまでで十分な方はこれでOKです。

更に単一コマンド化したかったのでそれを行うパッケージを

pip3 install pyinstall

でインストールします。
インストールできたら以下のコマンドを実行します。

pyinstaller calender.py --onefile --hidden-import googleapiclient

するとdistディレクトリが生成されて、中にcalenderファイルができます。
これを実行すると先程と同じ結果が得られます。

このファイルのpathを~/.bashrcにaliasで書いておけばどこにいてもコマンド一つでコンテストの予定を見ることができます。

alias calender="~/dist/calender"
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?