ece_prewarmer 0.1.3 → 0.1.5

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: 20e8e87e2ecefb39735c8c49ede563b047e6aecd
4
- data.tar.gz: 0a9462edc917e130ae783bf625b1260046ad1552
3
+ metadata.gz: 60b9d13d4482a9a9310981a92a63c716807c1c93
4
+ data.tar.gz: 61bc0497385142dff1d5bb8ba19f7fa487046e86
5
5
  SHA512:
6
- metadata.gz: 4ce664af01bb0e3c86c120eeb76120c6b44875d47b73d580251e135d8bf7ecd1c6fb7347505fd0b6c4353c7da83a2e6330828f3dfbc954e5eb1416601a0e80ae
7
- data.tar.gz: 34893a605451f490b4d9a2fec7703b353cbfa0e6c9d1dc77d9739c8a8182410b7f7157f790ee231cc51701404cde935a13c53bba31ea6f9454e7cb7de9470c7f
6
+ metadata.gz: b721be666c2ae0754ce3d2661cac1a96e9d5590fee39fba3c3577b9c4e786298a375bc722364c8d8c2dfb857593d7196eea9ac796a3396e08fcde63ef13c0764
7
+ data.tar.gz: 74ffb3a1ced07098ede80272174fca72fb11fde435e5920c44659fe15cca00470bd6d5f09ab52d1189aca5c6b8e6322eec482f9c654d8838f287bd29731443e2
data/README.md CHANGED
@@ -8,6 +8,14 @@ Se usa mas o menos así:
8
8
  [host ]$ screen
9
9
  [host ]$ unset http_proxy
10
10
  [host ]$ ece-prewarmer -s www.24horas.cl -i 10.132.17.114 -p 8080 -v -t 8
11
+ http://www.24horas.cl:8080/ Queue: 0
12
+ http://www.24horas.cl:8080/envivo/ Queue: 104
13
+ http://www.24horas.cl:8080/internacional/ Queue: 103
14
+ http://www.24horas.cl:8080/nacional/ Queue: 137
15
+ http://www.24horas.cl:8080/videos/ Queue: 169
16
+ http://www.24horas.cl:8080/galerias/ Queue: 168
17
+ http://www.24horas.cl:8080/envivo/?articleId=221352 Queue: 167
18
+ http://www.24horas.cl:8080/envivo/?articleId=110846 Queue: 166
11
19
  ```
12
20
 
13
21
  ## Installation
data/bin/ece-prewarmer CHANGED
@@ -28,6 +28,10 @@ optparse = OptionParser.new do |opts|
28
28
  options[:depth_limit] = o.nil? ? nil : o.to_i
29
29
  end
30
30
 
31
+ opts.on('-dUSERAGENT', '--depth=USER-AGENT', 'USER-AGENT a usar') do |o|
32
+ options[:user_agent] = o.nil? ? nil : o.to_i
33
+ end
34
+
31
35
  opts.on('-tTHREADS', '--threads=THREADS', 'Procesos a lanzar') do |o|
32
36
  options[:threads] = o.nil? ? nil : o.to_i
33
37
  end
@@ -55,12 +59,32 @@ opts[:verbose] = options[:verbose]
55
59
  opts[:port] = options[:port]
56
60
  opts[:threads] = options[:threads]
57
61
  opts[:depth_limit] = options[:depth_limit]
62
+ opts[:user_agent] = options[:user_agent]
63
+
64
+ def shutdown
65
+ Thread.list.each do |thread|
66
+ thread.exit unless thread == Thread.current
67
+ end
68
+ puts "Eliminando entrada de hosts file"
69
+ FileUtils.cp "/tmp/hosts", '/etc/hosts'
70
+ end
71
+
72
+ # Trap ^C
73
+ Signal.trap("INT") {
74
+ shutdown
75
+ exit
76
+ }
77
+
78
+ # Trap `Kill `
79
+ Signal.trap("TERM") {
80
+ shutdown
81
+ exit
82
+ }
58
83
 
59
84
  results = EcePrewarmer.prewarm(host, website, opts)
60
85
 
61
86
  puts "Paginas visitadas: #{results.size}\n"
62
87
 
63
-
64
88
  BEGIN {
65
89
  at_exit {
66
90
  EcePrewarmer.remove_host_alias(website)
@@ -1,3 +1,3 @@
1
1
  module EcePrewarmer
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.5"
3
3
  end
data/lib/ece_prewarmer.rb CHANGED
@@ -7,6 +7,7 @@ module EcePrewarmer
7
7
 
8
8
  def self.add_host_alias(ip, host_alias, file = nil)
9
9
  file ||= '/etc/hosts'
10
+ FileUtils.cp('/etc/hosts', '/tmp/hosts') if file == '/etc/hosts'
10
11
  hosts = Hosts::File.read(file)
11
12
  hosts.elements << Hosts::Entry.new(ip, host_alias)
12
13
  hosts.invalidate_cache!
@@ -22,6 +23,7 @@ module EcePrewarmer
22
23
  end
23
24
  to_delete.compact.each { |i| hosts.elements[i] = nil }
24
25
  hosts.elements.compact!
26
+ hosts.invalidate_cache!
25
27
  hosts.write
26
28
  end
27
29
 
@@ -29,14 +31,14 @@ module EcePrewarmer
29
31
  opts = parse_opts opts
30
32
  url = "http://#{website}:#{opts[:port]}/"
31
33
  add_host_alias(host, website, opts[:hostfile])
32
- results = crawl(url, opts[:port], opts[:verbose], opts[:threads], opts[:depth_limit])
34
+ results = crawl(url, opts[:port], opts[:verbose], opts[:threads], opts[:depth_limit], opts[:user_agent])
33
35
  remove_host_alias(website, opts[:hostfile])
34
36
  results
35
37
  end
36
38
 
37
- def self.crawl(url, port, verbose, threads, depth)
39
+ def self.crawl(url, port, verbose, threads, depth, user_agent)
38
40
  result = []
39
- Anemone.crawl(url, verbose: verbose, threads: threads, depth_limit: depth) do |anemone|
41
+ Anemone.crawl(url, verbose: verbose, threads: threads, depth_limit: depth, user_agent: user_agent) do |anemone|
40
42
  links = []
41
43
  anemone.on_every_page do |page|
42
44
  links.push page.url
@@ -58,6 +60,8 @@ module EcePrewarmer
58
60
  opts[:verbose] ||= false
59
61
  opts[:port] ||= 80
60
62
  opts[:depth_limit] ||= false
63
+ # Chrome by default
64
+ opts[:user_agent] ||= "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36"
61
65
  opts
62
66
  end
63
67
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ece_prewarmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patricio Bruna
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-25 00:00:00.000000000 Z
11
+ date: 2015-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anemone