Sha256: 3d62f1809cca37f39986a4372c2b3c031d2a08a6e146752217183659517acf55

Contents?: true

Size: 993 Bytes

Versions: 1

Compression:

Stored size: 993 Bytes

Contents

# frozen_string_literal: true

require 'mechanize'

module QiitaTrend
  class Page
    attr_reader :html

    QIITA_URI = 'https://qiita.com/'

    def initialize(ua)
      @html = create_html(ua)
    end

    private

    def create_html(ua)
      # キャッシュが存在する場合はキャッシュから取得
      cache = QiitaTrend::Cache.new(target_trend + '.html')
      return cache.load_cache if cache.cached?

      # キャッシュが存在しない場合はキャッシュを作成しページ情報を取得する
      agent = Mechanize.new
      agent.user_agent_alias = ua
      page = agent.get QIITA_URI
      cache.create_cache(page.body)

      page.body
    end

    def target_trend
      if Time.now.hour >= 5 && Time.now.hour < 17
        Date.today.strftime('%Y%m%d') + '05'
      elsif Time.now.hour >= 17
        Date.today.strftime('%Y%m%d') + '17'
      elsif Time.now.hour < 5
        (Date.today - 1).strftime('%Y%m%d') + '17'
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
qiita_trend-0.2.1 lib/qiita_trend/page.rb