miteru 0.3.1 → 0.3.2

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: '08e49cafafb4f0ca46b1aad40e1de0ce09e1098dd49395aa38ac98fd0d08e09f'
4
- data.tar.gz: ace78f1898e2ef84573abb7ef8b624819d6819eb7924a21e6fb6189c918cfe98
3
+ metadata.gz: 4b6ffb792e263519ab645ef14235c5fb6cfa08919375bbaf2064528515dacd43
4
+ data.tar.gz: a67289780e2d42dfbbcd0a4b8142487e3ba22c5aa5addeef5707fe107161ecb5
5
5
  SHA512:
6
- metadata.gz: a0cd62ad104dda985f0de5d023295079f43638553c08ba11a4c3c67e4271423d50860f6eb0349c10c2a25cc91ed57c231e452434ae657c848ba890499b0dcb76
7
- data.tar.gz: 69f50f7a12ab6433f6ec1cb517779aaa92ab2f714f261f9ac8786e859a7d9b1c955ef503d7e355166f5481010ce7666ffe14f87c906f8011fbf2a80ca81cf487
6
+ metadata.gz: 5e43966e7560b60cc4e09930ef9f390862747380419267b0135dc7b86edf3aec83f1fb18732e3553a8adb805fc08c70654327c89bf973c171d3aa1bc59c70b4b
7
+ data.tar.gz: 906207242b7cafbba681f19d73df74b4e3c5160d8982e0144cc5d2f30c53917593e3abde329b3666400f2f27db9055c55bef4f880df5f20cc973add7e077ea6c
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # Miteru
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/miteru.svg)](https://badge.fury.io/rb/miteru)
3
4
  [![Build Status](https://travis-ci.org/ninoseki/miteru.svg?branch=master)](https://travis-ci.org/ninoseki/miteru)
4
5
  [![Maintainability](https://api.codeclimate.com/v1/badges/d90e1b5bbdd9663a17d1/maintainability)](https://codeclimate.com/github/ninoseki/miteru/maintainability)
5
6
  [![Coverage Status](https://coveralls.io/repos/github/ninoseki/miteru/badge.svg?branch=master)](https://coveralls.io/github/ninoseki/miteru?branch=master)
data/lib/miteru.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "miteru/error"
4
- require "miteru/downloader"
4
+ require "miteru/http_client"
5
5
  require "miteru/website"
6
6
  require "miteru/crawler"
7
7
  require "miteru/cli"
data/lib/miteru/cli.rb CHANGED
@@ -27,7 +27,7 @@ module Miteru
27
27
  zip_files.each do |path|
28
28
  target_url = "#{url}/#{path}"
29
29
  begin
30
- destination = Downloader.download(target_url, base_dir)
30
+ destination = HTTPClient.download(target_url, base_dir)
31
31
  puts "Download #{target_url} as #{destination}"
32
32
  rescue Down::Error => e
33
33
  puts "Failed to download: #{target_url} (#{e})"
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "http"
4
+ require "down/http"
5
+ require "securerandom"
6
+
7
+ module Miteru
8
+ class HTTPClient
9
+ DEFAULT_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
10
+ attr_reader :ssl_context
11
+ def initialize
12
+ ctx = OpenSSL::SSL::SSLContext.new
13
+ ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE
14
+ @ssl_context = ctx
15
+ end
16
+
17
+ def download(url, base_dir)
18
+ destination = download_to(base_dir, save_filename)
19
+ down = Down::Http.new(default_options) { |client| client.headers(default_headers) }
20
+ down.download(url, destination: destination)
21
+ destination
22
+ end
23
+
24
+ def self.download(url, base_dir = "/tmp")
25
+ new.download(url, base_dir)
26
+ end
27
+
28
+ def get(url)
29
+ HTTP.headers(default_headers).get(url, default_options)
30
+ end
31
+
32
+ def self.get(url)
33
+ new.get url
34
+ end
35
+
36
+ private
37
+
38
+ def default_headers
39
+ { user_agent: DEFAULT_UA }
40
+ end
41
+
42
+ def default_options
43
+ { ssl_context: ssl_context }
44
+ end
45
+
46
+ def save_filename
47
+ "#{SecureRandom.alphanumeric}.zip"
48
+ end
49
+
50
+ def download_to(base_dir, save_filename)
51
+ "#{base_dir}/#{save_filename}"
52
+ end
53
+ end
54
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Miteru
4
- VERSION = "0.3.1"
4
+ VERSION = "0.3.2"
5
5
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "http"
4
3
  require "oga"
5
4
 
6
5
  module Miteru
@@ -49,9 +48,7 @@ module Miteru
49
48
  end
50
49
 
51
50
  def get
52
- ctx = OpenSSL::SSL::SSLContext.new
53
- ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE
54
- HTTP.get(url, ssl_context: ctx)
51
+ HTTPClient.get url
55
52
  end
56
53
 
57
54
  def doc
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miteru
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manabu Niseki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-19 00:00:00.000000000 Z
11
+ date: 2018-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -213,8 +213,8 @@ files:
213
213
  - lib/miteru.rb
214
214
  - lib/miteru/cli.rb
215
215
  - lib/miteru/crawler.rb
216
- - lib/miteru/downloader.rb
217
216
  - lib/miteru/error.rb
217
+ - lib/miteru/http_client.rb
218
218
  - lib/miteru/version.rb
219
219
  - lib/miteru/website.rb
220
220
  - miteru.gemspec
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "down"
4
- require "securerandom"
5
-
6
- module Miteru
7
- class Downloader
8
- attr_reader :url, :base_dir
9
- def initialize(url, base_dir = "/tmp")
10
- @url = url
11
- @base_dir = base_dir
12
- end
13
-
14
- def save_filename
15
- "#{SecureRandom.alphanumeric}.zip"
16
- end
17
-
18
- def destination
19
- @destination ||= "#{base_dir}/#{save_filename}"
20
- end
21
-
22
- def download
23
- Down.download(url, destination: destination)
24
- destination
25
- end
26
-
27
- def self.download(url, base_dir = "/tmp")
28
- new(url, base_dir).download
29
- end
30
- end
31
- end