flaresolverr 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 805eaa37e21156739353ec23d214423de94840dcf60d26f457bef2e8c88cc03e
4
+ data.tar.gz: a95a8e5619094708ff96e25feccb9990317a6e494cc3f5965c0dbdb2c31a7a86
5
+ SHA512:
6
+ metadata.gz: b25cf1cba6e5b12d52f309d05d85aea263e41d2d49fcc0c4b33d18ed3c3521932d7d84336505c3a0ccd3e33a8d4940cba48aeceb7a67d37eefcac8ffe2359b6b
7
+ data.tar.gz: ad339aa6a7b034e34b91467fbfa17c5613106a12e4e81bdcd162dac2371a04d835f74e4937d61f19c920ead9e46edd1c64b250d0167f9fe0bd581e14f50e533a
data/.rubocop.yml ADDED
@@ -0,0 +1,14 @@
1
+ ---
2
+ AllCops:
3
+ NewCops: enable
4
+
5
+ Metrics/AbcSize:
6
+ Exclude:
7
+ - test/**/*
8
+
9
+ Metrics/MethodLength:
10
+ Exclude:
11
+ - test/**/*
12
+
13
+ Style/StringLiterals:
14
+ EnforcedStyle: double_quotes
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2023-01-07
4
+
5
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in flaresolverr.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+
10
+ gem "minitest", "~> 5.0"
data/Gemfile.lock ADDED
@@ -0,0 +1,27 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ flaresolverr (0.1.0)
5
+ docker-api (~> 2.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ docker-api (2.2.0)
11
+ excon (>= 0.47.0)
12
+ multi_json
13
+ excon (0.96.0)
14
+ minitest (5.16.3)
15
+ multi_json (1.15.0)
16
+ rake (13.0.6)
17
+
18
+ PLATFORMS
19
+ x86_64-linux
20
+
21
+ DEPENDENCIES
22
+ flaresolverr!
23
+ minitest (~> 5.0)
24
+ rake (~> 13.0)
25
+
26
+ BUNDLED WITH
27
+ 2.4.1
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # FlareSolverr
2
+
3
+ Ruby API for the FlareSolverr proxy. See <https://github.com/FlareSolverr/FlareSolverr>.
4
+
5
+ ## Installation
6
+
7
+ Install the gem and add to the application's Gemfile by executing:
8
+
9
+ $ bundle add flaresolverr
10
+
11
+ If bundler is not being used to manage dependencies, install the gem by executing:
12
+
13
+ $ gem install flaresolverr
14
+
15
+ ## Usage
16
+
17
+ ```ruby
18
+ require "flaresolver"
19
+
20
+ FlareSolverr.create_image
21
+
22
+ FlareSolverr.container.start
23
+
24
+ FlareSolverr.request("https://example.com").body
25
+ ```
26
+
27
+ ## Contributing
28
+
29
+ Bug reports and pull requests are welcome on GitHub at https://github.com/elebow/ruby-flaresolverr.
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "docker-api"
4
+ require "json"
5
+ require "net/http"
6
+
7
+ module FlareSolverr
8
+ VERSION = "0.1.0"
9
+
10
+ def self.request(url, method: :get, cookies: nil)
11
+ args = {
12
+ cmd: "request.#{method}",
13
+ url: url,
14
+ #session: 0, # TODO. Not yet implemented in FlareSolverr 3.x
15
+ cookies: cookies,
16
+ postData: ("todo" if method == :post) # TODO
17
+ }.compact
18
+
19
+ puts args
20
+
21
+ Net::HTTP.post(URI("http://localhost:8191/v1"),
22
+ args.to_json,
23
+ { "Content-Type" => "application/json" })
24
+ end
25
+
26
+ def self.create_image
27
+ Docker::Image.create("fromImage" => "flaresolverr/flaresolverr:latest")
28
+ end
29
+
30
+ def self.container
31
+ @container ||=
32
+ begin
33
+ create_image
34
+
35
+ Docker::Container.create("Image" => "flaresolverr/flaresolverr:latest",
36
+ "HostConfig" => {
37
+ "PortBindings" => { "8191/tcp" => [{ "HostPort" => "8191" }] }
38
+ })
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,4 @@
1
+ module FlareSolverr
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flaresolverr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Eddie Lebow
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-01-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: docker-api
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ description:
28
+ email:
29
+ - elebow@users.noreply.github.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rubocop.yml"
35
+ - CHANGELOG.md
36
+ - Gemfile
37
+ - Gemfile.lock
38
+ - README.md
39
+ - lib/flaresolverr.rb
40
+ - sig/flaresolverr.rbs
41
+ homepage: https://github.com/elebow/ruby-flaresolverr
42
+ licenses: []
43
+ metadata:
44
+ rubygems_mfa_required: 'true'
45
+ homepage_uri: https://github.com/elebow/ruby-flaresolverr
46
+ source_code_uri: https://github.com/elebow/ruby-flaresolverr
47
+ changelog_uri: https://github.com/elebow/ruby-flaresolverr/blob/trunk/CHANGELOG.md
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 2.6.0
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirements: []
63
+ rubygems_version: 3.4.1
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: Ruby API for Flaresolverr proxy.
67
+ test_files: []