narou_agent 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7fccb4f34966c25c57ff092f9c6979b6ed4f056b7ffd091220c7625f966c820
4
- data.tar.gz: 435be6ac49afc7df323f24fafc939c02d7f82a6d54e0897e9259b0a5288aeca0
3
+ metadata.gz: 56fd3d8fd44edffb590ebaba8bfe2071ecd1e55295819e741fde05fbf00dbdb7
4
+ data.tar.gz: 74199069044c56d567a855eb4550f37b132d2a1e0c7ac9ddde39a071074e6220
5
5
  SHA512:
6
- metadata.gz: 1cf2ab2155fa756789ab12b7886560f6c131a5a5a4f327b0a8644d3eb601cb3485a07ff51a1fab24c4d1067cff30a0f5e576b8b12a0d7afbbe8b2eee1f37f504
7
- data.tar.gz: 406290b2ab6030f3509ef2dbb2171a1ecba45ffd0a4d8c41b381a2b4cbf8a89d168f58fd3ccd34308966bbd3a6e1c69ed7e7a01ee7effcc11c94bb8ae2b37214
6
+ metadata.gz: adc52215e6ec5e24900f2e00a979433ad4cfadfa2c0d0509226281c4980a2f28c9229c4643e18447606cd640f771f8cdd23a0fe3a537df923418de9fd1564e93
7
+ data.tar.gz: d493a87d7c0536b2840aa24c1582ac43b1fcdf60511946da7d29a35f22b0c2b388fd9ae579eda5dddc23f012706521c0e5babf5faec8d862c7a9d694b1ba224c
data/lib/narou_agent.rb CHANGED
@@ -32,14 +32,14 @@ class NarouAgent
32
32
  @logged_in = true
33
33
  end
34
34
 
35
- def create_part(ncode:, subtitle:, body:, wait_duration: DEFAULT_WAIT_DURATION)
35
+ def create_part(ncode:, subtitle:, body:, date: nil, wait_duration: DEFAULT_WAIT_DURATION)
36
36
  raise NotLoggedInError unless logged_in?
37
- Actions::CreatePart.new(self).run(ncode, subtitle, body, wait_duration)
37
+ Actions::CreatePart.new(self).run(ncode, subtitle, body, date, wait_duration)
38
38
  end
39
39
 
40
- def update_part(ncode:, part_id:, subtitle:, body:)
40
+ def update_part(ncode:, part_id:, subtitle:, body:, date: nil)
41
41
  raise NotLoggedInError unless logged_in?
42
- Actions::UpdatePart.new(self).run(ncode, part_id, subtitle, body)
42
+ Actions::UpdatePart.new(self).run(ncode, part_id, subtitle, body, date)
43
43
  end
44
44
 
45
45
  def delete_part(ncode:, part_id:)
@@ -1,12 +1,19 @@
1
1
  class NarouAgent
2
2
  module Actions
3
3
  class CreatePart < Action
4
- def run(ncode, subtitle, body, wait_duration)
4
+ def run(ncode, subtitle, body, date = nil, wait_duration = NarouAgent::DEFAULT_WAIT_DURATION)
5
5
  driver.get(new_part_url(ncode))
6
6
 
7
7
  driver.find_element(name: 'novel').send_keys(body)
8
8
  driver.find_element(name: 'subtitle').send_keys(subtitle)
9
9
 
10
+ if !date.nil? && date > Time.now
11
+ driver.script <<~JAVASCRIPT
12
+ $('.hasDatepicker').datepicker('setDate', new Date('#{date.strftime('%F')}'));
13
+ JAVASCRIPT
14
+ Selenium::WebDriver::Support::Select.new(driver.find_element(:name, 'hour')).select_by(:value, date.hour.to_s)
15
+ end
16
+
10
17
  driver.find_element(css: '#ziwainput[value="次話投稿[確認]"]').click
11
18
  driver.find_element(css: '#ziwainput[value="次話投稿[実行]"]').click
12
19
 
@@ -15,7 +22,7 @@ class NarouAgent
15
22
  sleep wait_duration
16
23
 
17
24
  driver.navigate.to(novel_url(ncode))
18
- driver.find_element(link: subtitle).attribute('href')
25
+ driver.find_element(link: subtitle)['href']
19
26
  rescue Selenium::WebDriver::Error::WebDriverError => e
20
27
  raise ActionFailedError.new(e)
21
28
  end
@@ -1,16 +1,24 @@
1
1
  class NarouAgent
2
2
  module Actions
3
3
  class UpdatePart < Action
4
- def run(ncode, part_id, subtitle, body)
4
+ def run(ncode, part_id, subtitle, body, date = nil)
5
5
  driver.get(edit_part_url(ncode, part_id))
6
6
 
7
- subtitle_input = driver.find_element(name: 'subtitle')
8
- subtitle_input.clear
9
- subtitle_input.send_keys(subtitle)
7
+ driver.find_element(name: 'subtitle').tap do |subtitle_input|
8
+ subtitle_input.clear
9
+ subtitle_input.send_keys(subtitle)
10
+ end
11
+ driver.find_element(name: 'novel').tap do |novel_textarea|
12
+ novel_textarea.clear
13
+ novel_textarea.send_keys(body)
14
+ end
10
15
 
11
- novel_textarea = driver.find_element(name: 'novel')
12
- novel_textarea.clear
13
- novel_textarea.send_keys(body)
16
+ if !date.nil? && date > Time.now
17
+ driver.script <<~JAVASCRIPT
18
+ $('.hasDatepicker').datepicker('setDate', new Date('#{date.strftime('%F')}'));
19
+ JAVASCRIPT
20
+ Selenium::WebDriver::Support::Select.new(driver.find_element(:name, 'hour')).select_by(:value, date.hour.to_s)
21
+ end
14
22
 
15
23
  driver.find_element(css: '#novelmanage[value="編集[確認]"]').click
16
24
  driver.find_element(css: '#novelmanage[value="編集[実行]"]').click
@@ -1,3 +1,3 @@
1
1
  class NarouAgent
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: narou_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fuji Nakahara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-11 00:00:00.000000000 Z
11
+ date: 2018-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver