Qiita
Ruby
hatenabookmark

QiitaアドベントカレンダーのはてブランキングをSlackに通知する

More than 1 year has passed since last update.

TL;DR

企業・学校・団体アドベントカレンダーをみんなで運営していると、「誰が一番はてブ集めたか」って気になるよね。
なので、はてブ数をSlackにランキング形式で投稿するクローラー&ボットを作ったよ、というお話。

https://github.com/nisshiee/adventcalendar-ranking

中身

  • 環境変数に、以下のような情報をセット
    • 取得するQiitaアドベントカレンダー名、年次など
    • 通知先のSlack Incoming WebhookのURL
  • 実行すると以下のように動作
    • Qiitaアドベントカレンダーページをクロールし、記事一覧(投稿済であればURLも取得)を作成
    • はてなブックマークAPIを使って、各記事のはてブ数を取得
    • 記事一覧をはてブ数降順ソートして、それっぽく整形
    • SlackのIncoming Webhookをコールして通知
  • アーキテクチャ
    • Ruby 2.3.3
    • Rake(タスクランナー)
    • Nokogiri(Qiitaアドベントカレンダーページのスクレイピング)

運用

  • herokuにそのままデプロイ可
    • 環境変数をheroku画面からセット(環境変数制御で他のアドベントカレンダーにも使える)
    • schedulerアドオンを使ってDailyでrakeタスクを実行

効果

  • 「はてブ集められた記事とそうでない記事の違いはどこにあるのか」等の議論が発生
  • これから記事投稿予定の人のモチベーション向上

もうちょっとがんばろうと思っている所

  • Deploy to herokuボタンを作ってみたい