lib/qiita_trend/trend.rb in qiita_trend-0.4.7 vs lib/qiita_trend/trend.rb in qiita_trend-0.4.8

- old
+ new

@@ -15,14 +15,15 @@ # # @param [TrendType] trend_type トレンドタイプ # @param [String] date 「YYYYMMDD05」,「YYYYMMDD17」形式のどちらか # @raise [LoginFailureError] ログインに失敗した時に発生する # @raise [NotExistsCacheError] 存在しないキャッシュファイルを指定した時に発生する - def initialize(trend_type = TrendType::DAILY, date = nil) + def initialize(trend_type = TrendType::NORMAL, date = nil) page = Page.new(trend_type, date) parsed_html = Nokogiri::HTML.parse(page.html) - trends_data = JSON.parse(parsed_html.xpath('//script[@data-component-name="NewHomeArticleTrendFeed"]')[0].text) + xpath_str = "//script[@data-component-name=\"#{data_component_name(trend_type)}\"]" + trends_data = JSON.parse(parsed_html.xpath(xpath_str)[0].text) @data = trends_data['trend']['edges'] end # Qiitaの対象のトレンドをすべて取得 # @@ -50,9 +51,16 @@ trend['is_new_arrival'] == true end end private + + # QiitaのトレンドのFeed名を取得する + # + # @return [String] トレンドタイプによるFeed名 + def data_component_name(trend_type) + trend_type == TrendType::PERSONAL ? 'HomePersonalizedFeed' : 'NewHomeArticleTrendFeed' + end # ユーザーの画像のURLを取得する # URLデコードしクエリーパラメータを排除する # # @return [String] ユーザーの画像のURL