GithubのContribute数をツイートするTwitterbotを作った話

一時期mediumに浮気していましたが、はてなブログに出戻りします。

medium.com

Twitterbotを作成した

下のような感じでGithubへのContribute数を投稿するものを作成しました。

作成方法

下記の記事を参考させていただきました。

b0npu.hatenablog.com

herokuにデプロイされたRubyからTwitterへ投稿する方法は全く同じ方法を使っています。

GithubのContribute数を取得する

GithubにはAPIが用意されていて、これを叩けばGithubへのContributeの詳細が取れます。

これを使って以前はこんなアプリケーションを作成しました。

jesus9387.hatenablog.com

APIはこちら

https://developer.github.com/v3/

APIドキュメントを詳しく読んでないですが、この方法だとPrivateリポジトリが見えないんですよね。

たぶん、Privateリポジトリへのコミット数も多分取れると思いますが、自分はスクレイピングしましたwww (スクレイピングは自己責任でお願いします)

だって、ここにcontribute数が書いてあるんだもの。

スクリーンショット 2017-12-27 13.23.06.png (44.8 kB)

実際にスクレイピングしているクラスはこちら gemはnokogiriを使用しています。

require 'nokogiri'
require 'open-uri'

class GithubContributeCount

  def create_tweet_text
    count = count_contribute
    "通算で" + count + "回Githubへコミットしています。https://github.com/yshogo Github contribute count app author shogo yamda"
  end

  private
    def count_contribute
      html = Nokogiri::HTML open 'https://github.com/yshogo'
      text = html.xpath('//h2[@class = "f4 text-normal mb-2"]').first.inner_text
      text.delete! 'in the last year'
      text.delete! 'cobuo'
      text.gsub(/[\r\n]/,"")
    end
end

全体のソースコードは下記におきました。 よろしければどうぞ。

github.com