proxy_fetcher 0.16.0 → 0.17.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: 985e3e5cffffa62960dbe04510e232b5a8e652119acb2cc787824e0834f10870
4
- data.tar.gz: beb50433ddf5d298ca1c7c45af357395cb24f87b695231159b3b52ad8429cd8b
3
+ metadata.gz: a35a9ffcd025603a3fe87c281a3d9d19fc68a7c88ae75adb6f9ef63b8b55c121
4
+ data.tar.gz: 2a9657da7a409c3ae13e5425da5623e351a04a75495546613473698004efe2a1
5
5
  SHA512:
6
- metadata.gz: 28ee05704cdcf8dc48881119a208dad97408d3c50f34b691e6062ca6a8697f3ffe58ba5056c0c8d07f8fec9f5f977927877341572716fe6db3a28876b537264d
7
- data.tar.gz: c0533aa9584e02300734385ae8552c5e50d9836f7647337eb797eb11aa50b0edd93bc6a54eb3b22059ac4eed26adbb8ea21dcca9285d9bceff019c67a797146c
6
+ metadata.gz: 6b74bd11f91f0ef06bd754d048fd28705859f6c30b1f4a126a0dfbaa4b697d099efd4c26d4f6a98cbc3c47367baef3a3b5a0a80e099bc3fa5f1bfc3108b51def
7
+ data.tar.gz: 7b37eddbe892c7ce0f7343d231a18166213a4c9dd2bdd3dbe3720fe1f1c799474a7c2a312adc56134e587d58aebe34bb2b0dad2da51a21a355e846759c1e084b
@@ -32,9 +32,9 @@ jobs:
32
32
  gemfile: gemfiles/nokogiri.gemfile
33
33
  experimental: true
34
34
  - ruby: head
35
- os: ubuntu-latest
36
- gemfile: gemfiles/oga.gemfile
37
- experimental: true
35
+ os: ubuntu-latest
36
+ gemfile: gemfiles/oga.gemfile
37
+ experimental: true
38
38
  - ruby: jruby
39
39
  os: ubuntu-latest
40
40
  gemfile: gemfiles/nokogiri.gemfile
data/CHANGELOG.md CHANGED
@@ -6,6 +6,15 @@ Reverse Chronological Order:
6
6
 
7
7
  ...
8
8
 
9
+ ## `0.17.0` (2023-06-02)
10
+
11
+ * Remove dead providers
12
+
13
+ ## `0.16.0` (2022-02-04)
14
+
15
+ * Fix providers
16
+ * Improve HTTP.rb dependency
17
+
9
18
  ## `0.15.1` (2021-02-17)
10
19
 
11
20
  * Support for Ruby 3.0
@@ -13,7 +13,7 @@ module ProxyFetcher
13
13
  # Major version number
14
14
  MAJOR = 0
15
15
  # Minor version number
16
- MINOR = 16
16
+ MINOR = 17
17
17
  # Smallest version number
18
18
  TINY = 0
19
19
 
data/lib/proxy_fetcher.rb CHANGED
@@ -41,9 +41,6 @@ module ProxyFetcher
41
41
  require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/mtpro"
42
42
  require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxy_list"
43
43
  require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxypedia"
44
- require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxyscrape_http"
45
- require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxyscrape_socks4"
46
- require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxyscrape_socks5"
47
44
  require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/xroxy"
48
45
  end
49
46
 
@@ -12,9 +12,6 @@ describe "Proxy classes" do
12
12
  [:mtpro, "MTPro"],
13
13
  [:proxy_list, "ProxyList"],
14
14
  [:proxypedia, "Proxypedia"],
15
- [:proxyscrape_http, "ProxyscrapeHTTP"],
16
- [:proxyscrape_socks4, "ProxyscrapeSOCKS4"],
17
- [:proxyscrape_socks5, "ProxyscrapeSOCKS5"],
18
15
  [:xroxy, "XRoxy"]
19
16
  ].each do |(provider_name, provider_klass)|
20
17
  describe Object.const_get("ProxyFetcher::Providers::#{provider_klass}") do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proxy_fetcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikita Bulai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-04 00:00:00.000000000 Z
11
+ date: 2023-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -97,9 +97,6 @@ files:
97
97
  - lib/proxy_fetcher/providers/mtpro.rb
98
98
  - lib/proxy_fetcher/providers/proxy_list.rb
99
99
  - lib/proxy_fetcher/providers/proxypedia.rb
100
- - lib/proxy_fetcher/providers/proxyscrape_http.rb
101
- - lib/proxy_fetcher/providers/proxyscrape_socks4.rb
102
- - lib/proxy_fetcher/providers/proxyscrape_socks5.rb
103
100
  - lib/proxy_fetcher/providers/xroxy.rb
104
101
  - lib/proxy_fetcher/proxy.rb
105
102
  - lib/proxy_fetcher/utils/http_client.rb
@@ -139,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
136
  - !ruby/object:Gem::Version
140
137
  version: '0'
141
138
  requirements: []
142
- rubygems_version: 3.0.8
139
+ rubygems_version: 3.1.6
143
140
  signing_key:
144
141
  specification_version: 4
145
142
  summary: Ruby gem for dealing with proxy lists from different providers
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "csv"
4
-
5
- module ProxyFetcher
6
- module Providers
7
- # FreeProxyList provider class.
8
- class ProxyscrapeHTTP < Base
9
- # Provider URL to fetch proxy list
10
- def provider_url
11
- "https://api.proxyscrape.com/v2/?request=getproxies&protocol=http"
12
- end
13
-
14
- # Loads provider HTML and parses it with internal document object.
15
- #
16
- # @param url [String]
17
- # URL to fetch
18
- #
19
- # @param filters [Hash]
20
- # filters for proxy provider
21
- #
22
- # @return [Array]
23
- # Collection of extracted proxies with ports
24
- #
25
- def load_document(url, filters = {})
26
- html = load_html(url, filters)
27
-
28
- CSV.parse(html, col_sep: "\t").map(&:first)
29
- end
30
-
31
- # Fetches HTML content by sending HTTP request to the provider URL and
32
- # parses the txt document to return all the proxy entries (ip addresses
33
- # and ports).
34
- #
35
- # @return [Array]
36
- # Collection of extracted proxies with ports
37
- #
38
- def load_proxy_list(filters = {})
39
- load_document(provider_url, filters)
40
- end
41
-
42
- # Converts String to <code>ProxyFetcher::Proxy</code> object.
43
- #
44
- # @param node [String]
45
- # String
46
- #
47
- # @return [ProxyFetcher::Proxy]
48
- # Proxy object
49
- #
50
- def to_proxy(node)
51
- addr, port = node.split(":")
52
-
53
- ProxyFetcher::Proxy.new.tap do |proxy|
54
- proxy.addr = addr
55
- proxy.port = Integer(port)
56
- proxy.country = "Unknown"
57
- proxy.anonymity = "Unknown"
58
- proxy.type = ProxyFetcher::Proxy::HTTP
59
- end
60
- end
61
- end
62
-
63
- ProxyFetcher::Configuration.register_provider(:proxyscrape_http, ProxyscrapeHTTP)
64
- end
65
- end
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "csv"
4
-
5
- module ProxyFetcher
6
- module Providers
7
- # FreeProxyList provider class.
8
- class ProxyscrapeSOCKS4 < Base
9
- # Provider URL to fetch proxy list
10
- def provider_url
11
- "https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks4"
12
- end
13
-
14
- # Loads provider HTML and parses it with internal document object.
15
- #
16
- # @param url [String]
17
- # URL to fetch
18
- #
19
- # @param filters [Hash]
20
- # filters for proxy provider
21
- #
22
- # @return [Array]
23
- # Collection of extracted proxies with ports
24
- #
25
- def load_document(url, filters = {})
26
- html = load_html(url, filters)
27
-
28
- CSV.parse(html, col_sep: "\t").map(&:first)
29
- end
30
-
31
- # Fetches HTML content by sending HTTP request to the provider URL and
32
- # parses the txt document to return all the proxy entries (ip addresses
33
- # and ports).
34
- #
35
- # @return [Array]
36
- # Collection of extracted proxies with ports
37
- #
38
- def load_proxy_list(filters = {})
39
- load_document(provider_url, filters)
40
- end
41
-
42
- # Converts String to <code>ProxyFetcher::Proxy</code> object.
43
- #
44
- # @param node [String]
45
- # String
46
- #
47
- # @return [ProxyFetcher::Proxy]
48
- # Proxy object
49
- #
50
- def to_proxy(html_node)
51
- addr, port = html_node.split(":")
52
-
53
- ProxyFetcher::Proxy.new.tap do |proxy|
54
- proxy.addr = addr
55
- proxy.port = Integer(port)
56
- proxy.country = "Unknown"
57
- proxy.anonymity = "Unknown"
58
- proxy.type = ProxyFetcher::Proxy::SOCKS4
59
- end
60
- end
61
- end
62
-
63
- ProxyFetcher::Configuration.register_provider(:proxyscrape_socks4, ProxyscrapeSOCKS4)
64
- end
65
- end
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "csv"
4
-
5
- module ProxyFetcher
6
- module Providers
7
- # FreeProxyList provider class.
8
- class ProxyscrapeSOCKS5 < Base
9
- # Provider URL to fetch proxy list
10
- def provider_url
11
- "https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks5"
12
- end
13
-
14
- # Loads provider HTML and parses it with internal document object.
15
- #
16
- # @param url [String]
17
- # URL to fetch
18
- #
19
- # @param filters [Hash]
20
- # filters for proxy provider
21
- #
22
- # @return [Array]
23
- # Collection of extracted proxies with ports
24
- #
25
- def load_document(url, filters = {})
26
- html = load_html(url, filters)
27
-
28
- CSV.parse(html, col_sep: "\t").map(&:first)
29
- end
30
-
31
- # Fetches HTML content by sending HTTP request to the provider URL and
32
- # parses the txt document to return all the proxy entries (ip addresses
33
- # and ports).
34
- #
35
- # @return [Array]
36
- # Collection of extracted proxies with ports
37
- #
38
- def load_proxy_list(filters = {})
39
- load_document(provider_url, filters)
40
- end
41
-
42
- # Converts String to <code>ProxyFetcher::Proxy</code> object.
43
- #
44
- # @param node [String]
45
- # String
46
- #
47
- # @return [ProxyFetcher::Proxy]
48
- # Proxy object
49
- #
50
- def to_proxy(html_node)
51
- addr, port = html_node.split(":")
52
-
53
- ProxyFetcher::Proxy.new.tap do |proxy|
54
- proxy.addr = addr
55
- proxy.port = Integer(port)
56
- proxy.country = "Unknown"
57
- proxy.anonymity = "Unknown"
58
- proxy.type = ProxyFetcher::Proxy::SOCKS5
59
- end
60
- end
61
- end
62
-
63
- ProxyFetcher::Configuration.register_provider(:proxyscrape_socks5, ProxyscrapeSOCKS5)
64
- end
65
- end