4
1

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.

ボット・クローラーAdvent Calendar 2016

Day 12

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

Posted at

TL;DR

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

中身

  • 環境変数に、以下のような情報をセット
    • 取得する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ボタンを作ってみたい
4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?