Posted at

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ボタンを作ってみたい