hotel_price 0.5.4 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a82631788a305757b3d0bffbe8298a441fba18511d678a80c20a2e045f9d408
4
- data.tar.gz: 8eadeb31ec3d5f4e2dc179f51e15cf3bd2955b5a5afdf8c427ab68f565880833
3
+ metadata.gz: 936bc9b0a0c708967b88a86509f12e5a677f2b2ee6bcd88698154e801935418e
4
+ data.tar.gz: 01e264e7b9391bcb5e8f872f5097673665d2135c60ef94033a0b370105a7f376
5
5
  SHA512:
6
- metadata.gz: 1f1cf23d50086583c2096adefcd7a207cad65e775a5810c8e89ea0690a4a4995cff6dd8c0d2fe88dd59569f5768b1271c9cbe5ad09aa6348c6173dc51ee0b29a
7
- data.tar.gz: d254d83f23aabb34bc1164b8d263cecc13d2fc26d7b4ca4a63401399245304f05c786384ed18eda81e3bb84621386e930c4d59b4442aab7dd9068d9383057346
6
+ metadata.gz: f8d200030f6757cea8ab13a2d93264bb1f34aff18784b93ad74f6295e6f6f54b5d3512276d4122cb99dcbcf601ca9f66abf2616e3889c022ca487dbc06a3d683
7
+ data.tar.gz: 438aaefa420b71023d57f6df72ee33f262347e54a8afdcda01a9f96607149aa32d51daf7751124f3853eab59f64f2e63ef1abb458bed6f46363b6ee27899ff52
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hotel_price (0.5.3)
4
+ hotel_price (0.5.4)
5
5
  activesupport (~> 6.0.2.1)
6
6
  json (~> 2.3.0)
7
7
  nokogiri (~> 1.10.9)
@@ -23,7 +23,7 @@ module HotelPrice::Agoda
23
23
  room_name_element = driver.find_elements(:xpath, "//span[@data-selenium='masterroom-title-name']")
24
24
  room_name = room_name_element.first.text unless room_name_element.empty?
25
25
 
26
- { date: date, min_price: price, hotel_name: hotel_name, room_name: room_name }
26
+ { checkin_date: checkin_date, min_price: price, hotel_name: hotel_name, room_name: room_name }
27
27
  end
28
28
 
29
29
  def self.make_query_string(checkin_date, num_adults)
@@ -26,7 +26,7 @@ module HotelPrice::Booking
26
26
  room_name_element = driver.find_elements(:class_name, "hprt-ws-roomtype-link")
27
27
  room_name = room_name_element.first.text unless room_name_element.empty?
28
28
 
29
- { date: date, min_price: price, hotel_name: hotel_name, room_name: room_name }
29
+ { checkin_date: checkin_date, min_price: price, hotel_name: hotel_name, room_name: room_name }
30
30
  end
31
31
 
32
32
  def self.make_query_string(checkin_date, num_adults)
@@ -23,7 +23,7 @@ module HotelPrice::Expedia
23
23
  room_name_element = driver.find_elements(:xpath, "//h3[@data-stid='room-info-title-heading']")
24
24
  room_name = room_name_element.first.text unless room_name_element.empty?
25
25
 
26
- { date: date, min_price: price, hotel_name: hotel_name, room_name: room_name }
26
+ { checkin_date: checkin_date, min_price: price, hotel_name: hotel_name, room_name: room_name }
27
27
  end
28
28
 
29
29
  def self.make_query_string(checkin_date, num_adults)
@@ -2,7 +2,7 @@ module HotelPrice::Rakuten
2
2
  class RakutenAPI
3
3
  def initialize params
4
4
  @config = {
5
- rakuten_hotel_id: params[:rakuten_hotel_id] ||= 0,
5
+ rakuten_hotel_id: params[:rakuten_hotel_id].to_s ||= 0,
6
6
  rakuten_api_key: params[:rakuten_api_key] ||= ENV["RT_API_KEY"]
7
7
  }
8
8
  end
@@ -45,56 +45,7 @@ module HotelPrice::Rakuten
45
45
  "format=json&sort=%2BroomCharge&searchPattern=1&applicationId=#{@config[:rakuten_api_key]}&hotelNo=#{rakuten_hotel_id}&adultNum=#{num_adults}&checkinDate=#{checkin_date}&checkoutDate=#{checkout_date}&squeezeCondition="
46
46
  end
47
47
 
48
- def get_min_price params
49
- params[:breakfast] ||= ""
50
- try = 0
51
- begin
52
- base_url = "https://app.rakuten.co.jp/services/api/Travel/VacantHotelSearch/20131024?format=json&sort=%2BroomCharge&searchPattern=1"
53
- url = [base_url, "&applicationId=", @config[:rakuten_api_key], "&adultNum=", params[:adult_num].to_s, "&checkinDate=", params[:checkin_date].to_s, "&checkoutDate=", (Date.parse(params[:checkin_date]) + 1).strftime("%Y-%m-%d"), "&hotelNo=", @config[:rakuten_hotel_id].to_s, "&squeezeCondition=", params[:breakfast]].join
54
- json = Net::HTTP.get(URI.parse(url))
55
- result = JSON.parse(json)
56
- try = 0
57
- begin
58
- data_hash = if result["error"] == "not_found"
59
- {
60
- date: DateTime.now.strftime("%Y-%m-%d"),
61
- checkin_date: params[:checkin_date],
62
- rakuten_hotel_id: params[:rakuten_hotel_id],
63
- adult_num: params[:adult_num],
64
- breakfast: params[:breakfast],
65
- plan_num: 0,
66
- min_price: 0
67
- }
68
- elsif result["error"] == "wrong_parameterd"
69
- "入力した値が正しくありません。"
70
- else
71
- {
72
- date: DateTime.now.strftime("%Y-%m-%d"),
73
- checkin_date: result["hotels"][0]["hotel"][1]["roomInfo"][1]["dailyCharge"]["stayDate"],
74
- rakuten_hotel_id: params[:rakuten_hotel_id],
75
- hotel_name: result["hotels"][0]["hotel"][0]["hotelBasicInfo"]["hotelName"],
76
- adult_num: params[:adult_num],
77
- breakfast: params[:breakfast],
78
- plan_num: result["pagingInfo"]["recordCount"],
79
- room_name: result["hotels"][0]["hotel"][1]["roomInfo"][0]["roomBasicInfo"]["roomName"],
80
- plan_name: result["hotels"][0]["hotel"][1]["roomInfo"][0]["roomBasicInfo"]["planName"],
81
- min_price: result["hotels"][0]["hotel"][1]["roomInfo"][1]["dailyCharge"]["rakutenCharge"]
82
- }
83
- end
84
- rescue StandardError => e
85
- try += 1
86
- sleep 2
87
- puts "エラー発生。リトライします。\n #{e.message}"
88
- retry if try < 5
89
- end
90
- rescue StandardError => e
91
- try += 1
92
- sleep 5
93
- retry if try < 5
94
- end
95
- data_hash
96
- end
97
-
48
+
98
49
  def hotel_info
99
50
  uri = URI.parse("https://app.rakuten.co.jp/services/api/Travel/HotelDetailSearch/20131024?hotelNo=" + @config[:rakuten_hotel_id].to_s + "&applicationId=" + @config[:rakuten_api_key].to_s + "&datumType=1&responseType=large")
100
51
  json = Net::HTTP.get(uri)
@@ -462,7 +462,6 @@ module HotelPrice::Rakuten
462
462
  # end
463
463
 
464
464
  def daily_data
465
- puts "start"
466
465
  @driver.find_element(:xpath, "/html/body/table[2]/tbody/tr/td[3]/table[2]/tbody/tr[1]/td[1]/table/tbody/tr/td[3]/a/img").click
467
466
  @driver.find_element(:xpath, "/html/body/table[2]/tbody/tr/td[3]/table[5]/tbody/tr[2]/td[1]/table/tbody/tr[3]/td/table/tbody/tr/td[1]/input").click
468
467
  sleep 3
@@ -476,7 +475,6 @@ module HotelPrice::Rakuten
476
475
  select = Selenium::WebDriver::Support::Select.new(@driver.find_element(:name, "f_date"))
477
476
  select.select_by(:value, value)
478
477
  end
479
- puts "scraper"
480
478
  @driver.find_element(:xpath, '//input[@value = "表示"]').click
481
479
  rows = @driver.find_elements(:xpath, "//tr")
482
480
  data = []
@@ -84,7 +84,7 @@ module HotelPrice::Rakuten
84
84
  driver.get "https://hotel.travel.rakuten.co.jp/hotelinfo/plan/#{rakuten_hotel_id}"
85
85
  driver.find_element(:id, "focus1").click
86
86
  driver.find_element(:id, "dh-squeezes-submit").click
87
- sleep 30
87
+ sleep 3
88
88
  plan_num = driver.find_elements(:class, "planThumb")
89
89
  driver.quit
90
90
  plan_num.size
@@ -93,10 +93,10 @@ module HotelPrice::Rakuten
93
93
  def self.get_dayuse_plan_num rakuten_hotel_id, mode = 0
94
94
  driver = HotelPrice.get_selenium_driver mode
95
95
  driver.get "https://hotel.travel.rakuten.co.jp/hotelinfo/plan/#{rakuten_hotel_id}"
96
- sleep 10
96
+ sleep 5
97
97
  driver.find_element(:id, "du-radio").click
98
98
  driver.find_element(:id, "dh-submit").click
99
- sleep 10
99
+ sleep 5
100
100
  plan_num = driver.find_elements(:class, "planThumb")
101
101
  driver.quit
102
102
  plan_num.size
@@ -1,3 +1,3 @@
1
1
  module HotelPrice
2
- VERSION = "0.5.4"
2
+ VERSION = "0.5.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotel_price
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fumitake Kawasaki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-04-14 00:00:00.000000000 Z
12
+ date: 2020-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler