docapurl 0.2.1 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c175e73c80948788100dfec7dab654d13cd0ab9c2f1e1f195cb27be55c858b23
4
- data.tar.gz: e8c774fd4072aa0cd047afbc7ec7345e9f9a145717ba3c058342502cae6ff6ba
3
+ metadata.gz: 5aa0b10bd4486ba6c93c290fb5f3e0ee43197ae56c32f6c9b47352393a2f5eac
4
+ data.tar.gz: 6efd81401f6a3e631425fbced1e11bf1506b6c3e34fbb41614fb985c3a35ad7e
5
5
  SHA512:
6
- metadata.gz: 1aa1857f6b4309ca714ddf6eb53c36bfdde2191db93efc07d2e23df4209a507ade2d48a8e0959710dd229c560642261d2c204dad99262b57d5878cbaa9321c65
7
- data.tar.gz: 8478697b36cc173f4efb4e02f01ea42e34d3c31300df6e1300599c19d2bf1b36dc159ed3389238780ffa46847ef9dc67c3d3b0a28802a2d15378a9f96b916835
6
+ metadata.gz: 921bdbf8311230dabb6869115dc8a1eb34d1b820bbd348747bd77a5690a8d336270d577f71e5f36bef374bd0f9ff7ce9035711ae9b623c6e935059153cae9d45
7
+ data.tar.gz: 952f61d8f37051e404716d77fb0f1bebc80232e9bc07f616dae04183eb065a6fb84d9bd47c0bd975f45a420c9d47dc1a3a198e2f14f45e886844bdba009ab738
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- docapurl (0.2.1)
4
+ docapurl (0.2.2)
5
5
  ferrum (~> 0.11)
6
6
  thor
7
7
 
@@ -4,7 +4,7 @@ require 'logger'
4
4
  module Docapurl
5
5
  class Browser
6
6
  SYSTEM_MAX_PAGE_DOWN_TO_BOTTOM = 50
7
- attr_accessor :browser, :save_path, :logger
7
+ attr_accessor :browser, :save_path, :logger, :context
8
8
 
9
9
  def initialize(options)
10
10
  @save_path = options[:save_path]
@@ -13,10 +13,12 @@ module Docapurl
13
13
  options[:slowmo] = 0.5
14
14
  @logger = options[:logger] || Logger.new(STDOUT)
15
15
  @browser = Ferrum::Browser.new options
16
+ @context = browser.contexts.create
17
+ yield(self) if block_given?
16
18
  end
17
19
 
18
20
  def cap(url, options)
19
-
21
+ page = @context.create_page
20
22
  options[:quality] ||= 90
21
23
  options[:full] = true if options[:full].nil?
22
24
  options[:path] ||= @save_path
@@ -25,14 +27,14 @@ module Docapurl
25
27
  logger.info "browser begin to visit url #{url}"
26
28
 
27
29
  set_callback("before_visit_func", options)
28
- browser.go_to(url)
30
+ page.go_to(url)
29
31
  set_callback("after_visit_func", options)
30
32
 
31
33
 
32
34
  logger.info 'visited'
33
35
  max_pagedown = options[:max_pagedown] || 5
34
36
  pagedown_to_bottom = options.delete :pagedown_to_bottom
35
- visit_whole_page(browser, max_pagedown: max_pagedown, pagedown_to_bottom: pagedown_to_bottom)
37
+ visit_whole_page(browser, page: page, max_pagedown: max_pagedown, pagedown_to_bottom: pagedown_to_bottom)
36
38
 
37
39
  sleep_before_screen = options.delete :sleep_before_screen
38
40
  logger.info "sleep #{sleep_before_screen.to_i} second before screenshot"
@@ -40,7 +42,7 @@ module Docapurl
40
42
 
41
43
 
42
44
  set_callback("before_screenshot_func", options)
43
- browser.screenshot(**options)
45
+ page.screenshot(**options)
44
46
  set_callback("after_screenshot_func", options)
45
47
 
46
48
  logger.info "screenshot ended, path = #{options[:path]}"
@@ -48,6 +50,7 @@ module Docapurl
48
50
 
49
51
  def close
50
52
  return if browser.nil?
53
+ context.dispose unless context.nil?
51
54
 
52
55
  logger.info 'close browser'
53
56
  browser.quit
@@ -69,10 +72,10 @@ module Docapurl
69
72
 
70
73
  page_down_count.times do
71
74
  logger.info "press PageDown .."
72
- browser.keyboard.type(:PageDown)
75
+ page.keyboard.type(:PageDown)
73
76
  end
74
77
  logger.info "press HOME .."
75
- browser.keyboard.type(:Home)
78
+ page.keyboard.type(:Home)
76
79
  end
77
80
 
78
81
  private
@@ -1,3 +1,3 @@
1
1
  module Docapurl
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docapurl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - atpking
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-11 00:00:00.000000000 Z
11
+ date: 2021-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler