cxeed 0.2.2 → 0.3.0

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
  SHA1:
3
- metadata.gz: a1b6f37b1c8c68d786c3821952f708cf4e8bc3af
4
- data.tar.gz: 1e90b04cf21a0acd5dc4a58fafdc401b0d7f808f
3
+ metadata.gz: 4d5a339d47926bb079adfcd295658c88025af064
4
+ data.tar.gz: 65776ae738b2a604c50614e2be87b76abbc12c5f
5
5
  SHA512:
6
- metadata.gz: bd18fbfe74a1925c92d0c0585ff9d6f430f61aad4534d82b439d70c3916626fa19dc85be4a34cdb7ff0e65edf31d94d25965994add9f75a8c54288743f438fd6
7
- data.tar.gz: 2330fd356aaed5d41178ecb2e12863c00682ed88f4866f4049efb79c67479089379a2deb8e1f15e74b9f440068aa943ed45f03f54006770141ae1587a4234adb
6
+ metadata.gz: 283e51e476ac7d49b3a2c9224ee73a36756677165c76877970467dea576d856c0b7ba90131ae48561ed30e774d52ecc163b67eb5c1975cba506af8bdf4e7389e
7
+ data.tar.gz: f28a19a33e7f9e904d548d9c9ae8adec2400012fd6dd3365740fc08570084375ae4acd9ddda1d28b96228de3b80a108bed1d39c88c72d0c88ae54eed273d5d97
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cxeed (0.2.1)
4
+ cxeed (0.3.0)
5
5
  selenium-webdriver
6
6
  thor
7
7
 
data/README.md CHANGED
@@ -34,12 +34,16 @@ install it yourself as:
34
34
  $ cxeed arrive
35
35
  or
36
36
  $ cxeed arrive 10:00
37
+ or
38
+ $ cxeed arrive 10:00 2017/09/27
37
39
 
38
40
  退社を報告します。引数なしで現在の時刻を入力します。
39
41
 
40
42
  $ cxeed leave
41
43
  or
42
44
  $ cxeed leave 19:00
45
+ or
46
+ $ cxeed leave 19:00 2017/09/27
43
47
 
44
48
  今日の勤怠を見ます。
45
49
 
data/hoge.png ADDED
Binary file
data/lib/cxeed/command.rb CHANGED
@@ -45,24 +45,24 @@ module Cxeed
45
45
  end
46
46
  end
47
47
 
48
- desc 'arrive [time]', 'submit arrival time (time format is "%H:%M")'
49
- def arrive(time = Time.now.strftime('%H:%M'))
48
+ desc 'arrive [time] [date]', 'submit arrival time (time format is "%H:%M") (date format 2017/09/27)'
49
+ def arrive(time = Time.now.strftime('%H:%M'), date = Time.now.strftime('%Y/%m/%d'))
50
50
  cred = Cxeed::Credential.new
51
51
  proxy = Cxeed::Proxy.new cred
52
52
 
53
- proxy.arrive time
53
+ proxy.arrive time, DateTime.parse(date)
54
54
 
55
- puts "arrive #{ time}"
55
+ puts "arrive #{ date } #{ time}"
56
56
  end
57
57
 
58
- desc 'leave [time]', 'submit leave time (time format is "%H:%M")'
59
- def leave(time = Time.now.strftime('%H:%M'))
58
+ desc 'leave [time] [date]', 'submit leave time (time format is "%H:%M") (date format 2017/09/27)'
59
+ def leave(time = Time.now.strftime('%H:%M'), date = Time.now.strftime('%Y/%m/%d'))
60
60
  cred = Cxeed::Credential.new
61
61
  proxy = Cxeed::Proxy.new cred
62
62
 
63
- proxy.leave time
63
+ proxy.leave time, DateTime.parse(date)
64
64
 
65
- puts "leave #{ time}"
65
+ puts "leave #{ date } #{ time }"
66
66
  end
67
67
 
68
68
  desc 'today', 'show today attendance'
data/lib/cxeed/proxy.rb CHANGED
@@ -3,6 +3,8 @@ require 'selenium-webdriver'
3
3
 
4
4
  module Cxeed
5
5
  class Proxy
6
+ BACKSPACE = "\ue003".freeze
7
+
6
8
  def initialize(credential)
7
9
  caps = Selenium::WebDriver::Remote::Capabilities.chrome('chromeOptions': {args: %i(--headless --disable-gpu window-size=1920,1080)})
8
10
  @driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
@@ -41,11 +43,27 @@ module Cxeed
41
43
  @driver.switch_to.frame @driver.find_element(name: 'FRAME2')
42
44
  end
43
45
 
44
- def arrive(time = Time.now.strftime('%H:%M'))
46
+ # 引数の日付の入力画面に遷移する
47
+ def open_date(date)
48
+ # 処理期間の入力
49
+ @driver.find_element(:xpath, '//input[@name="StartYMD"]').send_keys(BACKSPACE * 8)
50
+ @driver.find_element(:xpath, '//input[@name="StartYMD"]').send_keys(date.strftime('%Y%m%d'))
51
+ @driver.find_element(:xpath, '//input[@name="EndYMD"]').send_keys(BACKSPACE * 8)
52
+ @driver.find_element(:xpath, '//input[@name="EndYMD"]').send_keys(date.strftime('%Y%m%d'))
53
+
54
+ # 検索
55
+ @driver.find_element(:xpath, '//input[@name="srchbutton"]').click
56
+
57
+ @driver.save_screenshot 'hoge.png'
58
+ end
59
+
60
+ def arrive(time = Time.now.strftime('%H:%M'), date = Time.now)
45
61
  login
46
62
 
47
63
  navigate_to_input_form
48
64
 
65
+ open_date(date)
66
+
49
67
  # 出勤時間の入力
50
68
  work_field = @driver.find_element(:xpath, '//td[@id="grdXyw1100G-rc-0-6"]')
51
69
  @driver.action.send_keys(work_field, time).perform
@@ -54,11 +72,13 @@ module Cxeed
54
72
  @driver.find_element(:xpath, '//input[@name="regbutton"]').click
55
73
  end
56
74
 
57
- def leave(time = Time.now.strftime('%H:%M'))
75
+ def leave(time = Time.now.strftime('%H:%M'), date = Time.now)
58
76
  login
59
77
 
60
78
  navigate_to_input_form
61
79
 
80
+ open_date(date)
81
+
62
82
  # 退勤時間の入力
63
83
  work_field = @driver.find_element(:xpath, '//td[@id="grdXyw1100G-rc-0-9"]')
64
84
  @driver.action.send_keys(work_field, time).perform
@@ -89,12 +109,10 @@ module Cxeed
89
109
  # 日付の整形
90
110
  day_str = DateTime.parse(day).strftime('%Y%m%d')
91
111
 
92
- backspace = "\ue003"
93
-
94
112
  # 処理期間の入力
95
- @driver.find_element(:xpath, '//input[@name="StartYMD"]').send_keys(backspace * 8)
113
+ @driver.find_element(:xpath, '//input[@name="StartYMD"]').send_keys(BACKSPACE * 8)
96
114
  @driver.find_element(:xpath, '//input[@name="StartYMD"]').send_keys(day_str)
97
- @driver.find_element(:xpath, '//input[@name="EndYMD"]').send_keys(backspace * 8)
115
+ @driver.find_element(:xpath, '//input[@name="EndYMD"]').send_keys(BACKSPACE * 8)
98
116
  @driver.find_element(:xpath, '//input[@name="EndYMD"]').send_keys(day_str)
99
117
 
100
118
  # 検索
data/lib/cxeed/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cxeed
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cxeed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rhythm191
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-26 00:00:00.000000000 Z
11
+ date: 2017-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -103,6 +103,7 @@ files:
103
103
  - bin/setup
104
104
  - cxeed.gemspec
105
105
  - exe/cxeed
106
+ - hoge.png
106
107
  - lib/cxeed.rb
107
108
  - lib/cxeed/attendance.rb
108
109
  - lib/cxeed/command.rb