LoginSignup
1
1

More than 5 years have passed since last update.

自分の Qiita などでの公開リソースを一覧する

Posted at

自分の Qiita などでの公開リソースを一覧する

世の中に対してオープンに公開するソフトウェア系のリソースは、大昔は自らのサイトに集約して置いていましたが、最近は GitHub などのサービスが一般的になり複数のサービスにまたがって公開することが多くなりました。

そうすると、今度は自分のリソースがどのように公開されているのか、全体像が見えにくくなります。

そこで、リソースを置いている各サービスを巡回して情報を収集し、Web ページ1ページで全体を一望できるようにしてみました。

各サービスを巡回して情報を収集し一覧ページのHTMLを生成するスクリプト(homepage.rb)

❶ 巡回するサービス

巡回するサービスは、

RubyGems
GitHub
Qiita
LinkData.org

です。

原則としてマイ・ページ相当のページのHTMLを解析しますが、HTML で取得できない情報を REST API で補います。

❷ Qiita API

Qiita に関しては、REST API を用いて記事の参照や更新ができるようになっています(→Qiita API v2ドキュメント)。

qiita-api-doc.rb
require 'json'
require 'open-uri'
require 'pp'
pp JSON.parse(open('http://qiita.com/api/v2/schema?locale=ja', 'r', &:read)) #=>
# …
# "like"=>
#  {"description"=>"投稿につけられた「いいね!」を表します。Qiita:Teamでのみ有効です。",
#   "links"=>
#    [{"description"=>"投稿につけられた「いいね!」を作成日時の降順で返します。Qiita:Teamでのみ有効です。",
# …
# "user"=>
#  {"description"=>"Qiita上のユーザを表します。",
#   "links"=>
#    [{"description"=>"投稿をストックしているユーザ一覧を、ストックした日時の降順で返します。",
#      "href"=>"/api/v2/items/:item_id/stockers",
# …

上記のとおり、API からは Stock や Like を取得できますが、Like については Qiita:Team でのみ有効とのことです。

一方、逆にマイ・ページ相当のページのHTMLからは Like数は取得できますが、Stockユーザ数は取得できません。

そこで、主に HTML を解析する homepage.rb に REST API で stock を取得するメソッドを追加して情報を補うことにしました。

homepage.rb
# …
require 'json'
require 'rest-client'
# …

QIITA_API = RestClient::Resource.new('http://qiita.com/api/v2')

def stocks(id)
  JSON.parse(QIITA_API["/items/#{id}/stockers"].get.body)
end
# …

❸ 公開リソース一覧ページ

結果、出来上がった公開リソース一覧ページは、

 http://www.asahi-net.or.jp/~dd6t-sg/

の左フレームに嵌め込んで公開しています1

❹ Qiita への Contribution

本記事を書いている時点では、各 Qiita 記事の Like と Stock は、

 機械学習関連ブックマークなど(2016-11-26) Like:0, Stock:2
 機械学習関連情報をトピックモデルで分類する(2016-11-09) Like:10, Stock:9

などで、その他の記事の Like と Stock は一致しています。

これには 2016年11月16日のQiitaの変更が影響しているようです。

2016年11月16日以前は Like がなく、Contribution は Stock数でカウントされていました。

2016年11月16日に Like が追加され、Contribution は Like数でカウントされるようになりました。
この際、2016年11月16日時点での Stock 数はそのまま Like数となりましたが、以降 Stock と Like は連動していません。

このため、2016年11月16日以降の公開である機械学習関連ブックマークなどは Stock はされているものの Like はノーカウントとなっているわけです。

機械学習関連ブックマークなどの主題であるbookmarksは、現在も逐次更新中で、いちばん手間もかかっているので、なんとか広く利用していただければと思っています。


  1. このフレームは動的に生成しているのではなく、適宜手動で更新しています。 

1
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
1
1