ソフトウェア & サービス
次に開催されるCTFを”楽に”知るためにやったこと
Yuya Kanesawa
こんにちは.大学2年生も終わり,春休みを迎えているところです.
経緯
最近,友人同士のSlackのチームができて,そこでワイワイやっていたのですが,僕はふと思いました.
「次に開催されるCTFをすぐ知れたら便利じゃね?」と.
CTFに出場するときは毎回,CTFtimeというCTFerには欠かせないサイトがあるのですが,そこを見て次に開催されるのはこの日だから出てみようか,とかやっていたわけです.
いやいやいや待ってくれと.
なんで毎回サイトまで見に行って確認しないといけないんだ・・・もっと楽に知れたら皆が楽に,自分も楽になるのに・・・と.そう思ったわけです.
そこで,ちょうど友人達とのslackでbotを作っていた僕は,この機能をbotに実装することにしました.
やったこと
最初はCTFtimeのDOMをいじったりして,次に開催されるCTFの情報を取得しようとしていたわけですが,あることに気が付きました.
「もしかしてAPIあるんじゃ・・・?」
そこで「ctftime api」とかで検索してみたところ・・・
ありました!!!!!!!!!!!!!!
Events information (past and upcoming)というのが使えそうですね.
使い方としては,
https://ctftime.org/api/v1/events/?limit=100&start=1422019499&finish=1423029499
このようにlimitとstartとfinishにそれぞれ値を与えればいいらしいです.
今欲しいのは次に開催される1件のみなので,limitに1,startに現在のtimestampを使えばいけるはずです.
特定の文言にだけ反応するように書いてから,文面などをいい感じに整形してあげて,APIを叩くと・・・
こんな風に,次に開催されるCTFが取得出来ました!(Locationはonlineじゃない場合は空白になるっぽいです)
このbotは僕が好きな漫画である「ポプテピピック」に登場するキャラクターを元に作っております.
少々口が悪いなと思った皆さん,
こんな風に「お疲れやな」と言ってくれる優しさも兼ね備えたbotなんですよ〜
まとめ
話が少しそれましたが,API便利ですよねって話でした.
おわり