truenorth 0.7.0 → 0.7.1
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 +4 -4
- data/lib/truenorth/browser_client.rb +26 -22
- data/lib/truenorth/cli.rb +6 -0
- data/lib/truenorth/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 15c7a78be2009cc55365128505f78d049bf5695e315ea81a2fc463d580f33892
|
|
4
|
+
data.tar.gz: e016cb6b1f04c46cd837f4cb25f30c9f38b13107864221dcfa23f0c9782475f0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4671765383cf22430c69a37e2823202f068ca0544f551150f4697383d2390f5001c59bb98dfefb5f13dc56259fec671ef2be93ff26de9ecdac04f76fdee48749
|
|
7
|
+
data.tar.gz: 6340c6a6b700363a65bb83ca2041c982e6f8374b9ac182805f575a104f0b3e67629ab0ff12dba299de68c68b675c769ce8bc3f78bc27e12dc6ccd426346c1ecf
|
|
@@ -127,30 +127,34 @@ module Truenorth
|
|
|
127
127
|
|
|
128
128
|
log "Clicked slot: #{slot_info[:court]} at #{slot_info[:time]}"
|
|
129
129
|
|
|
130
|
-
#
|
|
131
|
-
panel_state =
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
130
|
+
# Wait for reservation panel to appear with Save button (poll up to 10 seconds)
|
|
131
|
+
panel_state = nil
|
|
132
|
+
10.times do |i|
|
|
133
|
+
sleep 1
|
|
134
|
+
panel_state = @browser.evaluate(<<~JS)
|
|
135
|
+
(function() {
|
|
136
|
+
var panel = document.querySelector('[id*="reservationPanel"]');
|
|
137
|
+
var saveBtn = document.querySelector('.btn-save');
|
|
138
|
+
var fromTime = document.querySelector('select[name*="fromTime_input"]');
|
|
139
|
+
return {
|
|
140
|
+
hasPanel: !!panel,
|
|
141
|
+
panelVisible: panel ? panel.offsetWidth > 0 : false,
|
|
142
|
+
hasSaveBtn: !!saveBtn,
|
|
143
|
+
saveBtnVisible: saveBtn ? saveBtn.offsetWidth > 0 : false,
|
|
144
|
+
saveBtnId: saveBtn ? saveBtn.id : null,
|
|
145
|
+
fromTime: fromTime ? fromTime.value : null
|
|
146
|
+
};
|
|
147
|
+
})()
|
|
148
|
+
JS
|
|
149
|
+
log "Panel check #{i + 1}/10: #{panel_state.inspect}"
|
|
150
|
+
|
|
151
|
+
break if panel_state['saveBtnVisible']
|
|
152
|
+
end
|
|
147
153
|
|
|
148
154
|
unless panel_state['saveBtnVisible']
|
|
149
|
-
log 'Save button not visible after
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
log 'Saved screenshot to /tmp/no_save_btn.png'
|
|
153
|
-
end
|
|
155
|
+
log 'Save button not visible after 10s of waiting'
|
|
156
|
+
@browser.screenshot(path: '/tmp/no_save_btn.png', full: true)
|
|
157
|
+
log 'Saved screenshot to /tmp/no_save_btn.png'
|
|
154
158
|
raise BookingError, 'Reservation panel did not appear after clicking slot'
|
|
155
159
|
end
|
|
156
160
|
|
data/lib/truenorth/cli.rb
CHANGED
|
@@ -139,6 +139,12 @@ module Truenorth
|
|
|
139
139
|
say 'Fetching reservations...', :cyan
|
|
140
140
|
results = client.reservations
|
|
141
141
|
|
|
142
|
+
# Retry once if results are empty (transient session issues)
|
|
143
|
+
if results.empty?
|
|
144
|
+
client = Client.new(debug: options[:debug])
|
|
145
|
+
results = client.reservations
|
|
146
|
+
end
|
|
147
|
+
|
|
142
148
|
if options[:json]
|
|
143
149
|
puts JSON.pretty_generate(results)
|
|
144
150
|
else
|
data/lib/truenorth/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: truenorth
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- usiegj00
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-02-
|
|
11
|
+
date: 2026-02-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|