Module: FlareSolverr

Defined in:
lib/flaresolverr.rb

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.containerObject



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/flaresolverr.rb', line 31

def self.container
  @container ||=
    begin
      create_image

      Docker::Container.create("Image" => "flaresolverr/flaresolverr:latest",
                               "HostConfig" => {
                                 "PortBindings" => { "8191/tcp" => [{ "HostPort" => "8191" }] }
                               })
    end
end

.create_imageObject



27
28
29
# File 'lib/flaresolverr.rb', line 27

def self.create_image
  Docker::Image.create("fromImage" => "flaresolverr/flaresolverr:latest")
end

.request(url, method: :get, cookies: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/flaresolverr.rb', line 10

def self.request(url, method: :get, cookies: nil)
  args = {
    cmd: "request.#{method}",
    url: url,
    #session: 0, # TODO. Not yet implemented in FlareSolverr 3.x
    cookies: cookies,
    postData: ("todo" if method == :post) # TODO
  }.compact

  response_json = Net::HTTP.post(URI("http://localhost:8191/v1"),
                                 args.to_json,
                                 { "Content-Type" => "application/json" })
                           .body

  JSON.parse(response_json, symbolize_names: true)[:solution]
end