kobot 1.2.1 → 1.2.2
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/CHANGELOG.md +4 -0
- data/bin/console +1 -0
- data/lib/kobot.rb +0 -2
- data/lib/kobot/config.rb +0 -1
- data/lib/kobot/credential.rb +0 -1
- data/lib/kobot/engine.rb +14 -16
- data/lib/kobot/exception.rb +0 -2
- data/lib/kobot/mailer.rb +0 -2
- data/lib/kobot/option.rb +0 -2
- data/lib/kobot/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: c5280569d35d3db17de90830bc1b6b2fa7fd4ec17c1b3efae0772a2329288fbe
|
4
|
+
data.tar.gz: 51a08ceb2e07e577a503e6c5bbd17352e664612a9b6ae6fd6e3ca9aedc56a71e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ce2200116a9c36f384edbc2a0a2b47b37819ddb44fb8f590a1a1af1afd0859ea4d56c2022c4990f720f9bbd42eb4aaaf26986333298ed61580a4ad37b41bbed
|
7
|
+
data.tar.gz: 783cd8e9c729404108119fc2c26b49729852c68e40e415dad7d5ab92066021a4c2496fe3aaeab355911ad174b848af1cda99510496a53ff282f5d4fa42f8d244
|
data/CHANGELOG.md
CHANGED
@@ -14,3 +14,7 @@
|
|
14
14
|
- Improved logging for better readability in logs
|
15
15
|
- Switched to builtin Logger#deprecate from Logger#warn for deprecations
|
16
16
|
- Renamed internal method to skip? from holiday? as it was meant for skipping any specified date
|
17
|
+
|
18
|
+
### v1.2.2
|
19
|
+
- Improved login screen wait and logging
|
20
|
+
- Applied fix for offenses about empty lines and long lines reported by Rubocop
|
data/bin/console
CHANGED
data/lib/kobot.rb
CHANGED
data/lib/kobot/config.rb
CHANGED
data/lib/kobot/credential.rb
CHANGED
data/lib/kobot/engine.rb
CHANGED
@@ -6,7 +6,6 @@ module Kobot
|
|
6
6
|
# The core class that launches browser, logins to KOT, reads today
|
7
7
|
# record, and conducts clock in or clock out action based on config.
|
8
8
|
class Engine
|
9
|
-
|
10
9
|
def initialize
|
11
10
|
@now = Time.now.getlocal(Config.kot_timezone_offset)
|
12
11
|
@today = @now.strftime(Config.kot_date_format)
|
@@ -93,6 +92,8 @@ module Kobot
|
|
93
92
|
def login
|
94
93
|
Kobot.logger.info("Navigate to: #{@top_url}")
|
95
94
|
@browser.get @top_url
|
95
|
+
@wait.until { @browser.find_element(id: 'modal_window') }
|
96
|
+
Kobot.logger.info "Page title: #{@browser.title}"
|
96
97
|
Kobot.logger.debug do
|
97
98
|
"Login with id=#{Credential.kot_id} and password=#{Credential.kot_password}"
|
98
99
|
end
|
@@ -139,8 +140,12 @@ module Kobot
|
|
139
140
|
@kot_today = date_cell.text
|
140
141
|
@kot_today_css_class = date_cell.attribute('class')
|
141
142
|
@kot_today_type = tr.find_element(css: 'td.work_day_type').text
|
142
|
-
@kot_today_clock_in = tr.find_element(
|
143
|
-
|
143
|
+
@kot_today_clock_in = tr.find_element(
|
144
|
+
css: 'td.start_end_timerecord[data-ht-sort-index="START_TIMERECORD"]'
|
145
|
+
).text
|
146
|
+
@kot_today_clock_out = tr.find_element(
|
147
|
+
css: 'td.start_end_timerecord[data-ht-sort-index="END_TIMERECORD"]'
|
148
|
+
).text
|
144
149
|
Kobot.logger.debug do
|
145
150
|
{
|
146
151
|
kot_toay: @kot_today,
|
@@ -158,26 +163,19 @@ module Kobot
|
|
158
163
|
raise KotRecordError, "Today=#{@today} is not found on kot" if @kot_today.strip.empty?
|
159
164
|
|
160
165
|
if kot_weekend?
|
161
|
-
unless Config.force
|
162
|
-
raise KotRecordError,
|
163
|
-
"Today=#{@today} is marked as weekend on kot: #{@kot_today}"
|
164
|
-
end
|
166
|
+
raise KotRecordError, "Today=#{@today} is marked as weekend on kot: #{@kot_today}" unless Config.force
|
165
167
|
|
166
168
|
Kobot.logger.info(
|
167
169
|
"[Force] should have exited: today=#{@today} is marked as weekend on kot: #{@kot_today}"
|
168
170
|
)
|
169
171
|
end
|
170
172
|
|
171
|
-
|
172
|
-
|
173
|
-
raise KotRecordError,
|
174
|
-
"Today=#{@today} is marked as public holiday on kot: #{@kot_today}"
|
175
|
-
end
|
173
|
+
return unless kot_public_holiday?
|
174
|
+
raise KotRecordError, "Today=#{@today} is marked as public holiday on kot: #{@kot_today}" unless Config.force
|
176
175
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
end
|
176
|
+
Kobot.logger.info(
|
177
|
+
"[Force] should have exited: today=#{@today} is marked as public holiday on kot: #{@kot_today}"
|
178
|
+
)
|
181
179
|
end
|
182
180
|
|
183
181
|
def clock_in!
|
data/lib/kobot/exception.rb
CHANGED
data/lib/kobot/mailer.rb
CHANGED
@@ -3,11 +3,9 @@
|
|
3
3
|
require 'net/smtp'
|
4
4
|
|
5
5
|
module Kobot
|
6
|
-
|
7
6
|
# Responsible for sending email notifications in SMTP with Gmail
|
8
7
|
class Mailer
|
9
8
|
class << self
|
10
|
-
|
11
9
|
# Sends email in preconfigured Gmail SMTP credential and to the recipient
|
12
10
|
# configured by #{Config.gmail_notify_to} or self if not configured, with
|
13
11
|
# email subject set by #{Config.gmail_notify_subject}.
|
data/lib/kobot/option.rb
CHANGED
data/lib/kobot/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kobot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Jiang
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: webdrivers
|