kakuyomu_agent 0.3.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df46330ed2ed382cb48584d81784b1741617198d54ac917d8ebf81fa953a308a
4
- data.tar.gz: 62acb18cd078c471118843930cf21a69824e00f39205ff898c5ab8a65d53c7ae
3
+ metadata.gz: 8bd7ae5a232382bdb675d7ccbe33ec111faa4be0f5aba100a899b0cebf15d0ad
4
+ data.tar.gz: 6d1f83cc522b51fcf1fbc13ffb15eff440665c6b1ab8bb2aed3e1ab6b95f646b
5
5
  SHA512:
6
- metadata.gz: 373249746dafa9f5cb2ad1f63aa006842f048548bba0ec3b82d8ae94c9b88ca92dde3f25dc7b5d5df78748fe82962a75f9c6efe7d51ae26604901564e0660f1e
7
- data.tar.gz: 6c8e003cd34eee24984ef22a0cd6f02acb04b4ab5cb6a374fe33e09865e651c259928c862c0699c842ef9b682c0c2b7adc3f8b416cc55293167c26f41f8bfaad
6
+ metadata.gz: 2eb0598016b5aacc23bbf10c73d3461100cb1ccf8555fffb044799bd234f2a0c47d3f3d9f006e857546df0efd95647adb79f214a70ca1f8aee1d3b220bbce429
7
+ data.tar.gz: 3a42bcb5f634c23e83fa13fe151ad343ee0f3afc21b1575ab41efa8d13b702f476558ceaf8d2350fe2c2861773bc8edc2f9ad86d146ba7d3f7c4686d6e720e6a
@@ -35,9 +35,9 @@ class KakuyomuAgent
35
35
  Actions::CreateEpisode.new(self).run(work_id, title, body, date)
36
36
  end
37
37
 
38
- def update_episode(work_id:, episode_id:, title:, body:)
38
+ def update_episode(work_id:, episode_id:, title:, body:, date: nil)
39
39
  raise NotLoggedInError unless logged_in?
40
- Actions::UpdateEpisode.new(self).run(work_id, episode_id, title, body)
40
+ Actions::UpdateEpisode.new(self).run(work_id, episode_id, title, body, date)
41
41
  end
42
42
 
43
43
  def delete_episode(work_id:, episode_id:)
@@ -1,26 +1,54 @@
1
1
  class KakuyomuAgent
2
2
  module Actions
3
3
  class UpdateEpisode < Action
4
- def run(work_id, episode_id, title, body)
4
+ def run(work_id, episode_id, title, body, date = nil)
5
5
  driver.get(edit_episode_url(work_id, episode_id))
6
6
 
7
- title_input = driver.find_element(name: 'title')
8
- title_input.clear
9
- title_input.send_keys(title)
7
+ driver.find_element(name: 'title').tap do |title_input|
8
+ title_input.clear
9
+ title_input.send_keys(title)
10
+ end
11
+ driver.find_element(name: 'body').tap do |body_textarea|
12
+ body_textarea.clear
13
+ body_textarea.send_keys(body)
14
+ end
15
+
16
+ if date.nil? || date < Time.now
17
+ publish
18
+ else
19
+ reserve(date)
20
+ end
21
+
22
+ episode_url(work_id, episode_id)
23
+ rescue Selenium::WebDriver::Error::WebDriverError => e
24
+ raise ActionFailedError.new(e)
25
+ end
10
26
 
11
- body_textarea = driver.find_element(name: 'body')
12
- body_textarea.clear
13
- body_textarea.send_keys(body)
27
+ private
14
28
 
29
+ def publish
15
30
  driver.find_element(id: 'updateButton').click
16
31
 
17
32
  Selenium::WebDriver::Wait.new.until do
18
33
  driver.find_element(id: 'page-my-works-episodes-published')
19
34
  end
35
+ end
20
36
 
21
- episode_url(work_id, episode_id)
22
- rescue Selenium::WebDriver::Error::WebDriverError => e
23
- raise ActionFailedError.new(e)
37
+ def reserve(date)
38
+ driver.find_element(id: 'reserveButton').click
39
+ driver.find_element(name: 'reservation_date').tap do |date_input|
40
+ date_input.clear
41
+ date_input.send_keys(date.strftime('%F'))
42
+ end
43
+ driver.find_element(name: 'reservation_time').tap do |time_input|
44
+ time_input.clear
45
+ time_input.send_keys(date.strftime('%R'))
46
+ end
47
+ driver.find_element(id: 'reservationControl-footer').find_element(tag_name: 'button').click
48
+
49
+ Selenium::WebDriver::Wait.new.until do
50
+ driver.find_element(id: 'modelessMessage')
51
+ end
24
52
  end
25
53
  end
26
54
  end
@@ -1,3 +1,3 @@
1
1
  class KakuyomuAgent
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kakuyomu_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fuji Nakahara