Ruby
QiitaAPI

QiitaAPIにトレンドが見当たらないので泣いてたら

2018/02/19

.jsonつけたらイケた
どしてもっと早く教えてくれないのん(´;ω;`)

https://qiita.com/trend.json

追記

2018/03/22 9:00〜13:00頃
未ログインだと見れなくなってもうた(´;ω;`)

しょうがないからAPI経由で、過去x日でxストック以上された記事
https://qiita.com/search?q=stocks:>20+created:>2018-03-01
とかそんな感じのやつを取得して代用することにした

試してないけど多分こんな感じ

kuso_qiita.rb
require 'active_support'
require 'active_support/core_ext'
require 'qiita'

Time.zone = 'Asia/Tokyo'

def qiita_search_pages(qiita_client)
  search_deadline = 8.days.ago.strftime('%F')
  query = "stocks:>20 created:>#{search_deadline}"

  # 読んでも10ページまで
  (1..10).each_with_object([]) do |page, trend_pages|
    trend_page = qiita_search_page(qiita_client, page, query)
    trend_pages << trend_page

    break trend_pages if trend_page.next_page_url.blank?
  end
end

def qiita_search_page(qiita_client, page, query)
  qiita_client.list_items(page: page, per_page: 100, query: query)
end

qiita_client = Qiita::Client.new(access_token: ENV['QIITA_ACCESS_TOKEN'])

pages = qiita_search_pages(qiita_client)

#####
# 例えばuuid一覧を取得
#####

def qiita_pages_uuids(pages)
  pages.inject([]) do |uuids, page|
    uuids.concat(page.body.map { |item| item['id'] })
  end
end

uuids = qiita_pages_uuids(pages)

p uuids.map(&:presence).compact.uniq

いいね数で検索させてくれよ全くロクな事しねえな