proxy_fetcher 0.16.0 → 0.17.0

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: 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