Class: PhishTank::URLRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/phishtank/url_request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ URLRequest

Returns a new instance of URLRequest.



7
8
9
# File 'lib/phishtank/url_request.rb', line 7

def initialize(url)
  @url = URI.encode(url)
end

Instance Attribute Details

#docObject (readonly)

Returns the value of attribute doc.



5
6
7
# File 'lib/phishtank/url_request.rb', line 5

def doc
  @doc
end

#urlObject (readonly)

Returns the value of attribute url.



5
6
7
# File 'lib/phishtank/url_request.rb', line 5

def url
  @url
end

Instance Method Details

#in_database?Boolean

Returns:

  • (Boolean)


22
23
24
25
# File 'lib/phishtank/url_request.rb', line 22

def in_database?
  in_database = @doc.xpath("/response/results/url0/in_database").text
  in_database =~ /true/ ? true : false 
end

#paramsObject



41
42
43
44
45
# File 'lib/phishtank/url_request.rb', line 41

def params
  { :format   => "XML",
    :app_key  => PhishTank.configuration.api_key,
    :url      => @url }
end

#parse_response(body) ⇒ Object



51
52
53
# File 'lib/phishtank/url_request.rb', line 51

def parse_response(body)
  @doc = Nokogiri::XML(body)
end

#result_dataObject



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/phishtank/url_request.rb', line 27

def result_data
  search_result = @doc.xpath("/response/results/url0")
  result = OpenStruct.new
  result.url          = search_result.at("url").text
  result.in_database  = true
  result.phish_id     = search_result.at("phish_id").text
  result.detail_page  = search_result.at("phish_detail_page").text
  result.verified     = search_result.at("verified").text
  result.verified_at  = search_result.at("verified_at").text
  result.valid        = search_result.at("valid").text
  # result.submitted_at = search_result.at("submitted_at").text
  result
end

#searchObject



11
12
13
14
15
16
17
18
19
20
# File 'lib/phishtank/url_request.rb', line 11

def search
  response = Typhoeus::Request.post(search_uri, :params => params)
  parse_response(response.body)
  
  if in_database?
    result_data
  else
    false
  end
end

#search_uriObject



47
48
49
# File 'lib/phishtank/url_request.rb', line 47

def search_uri
  "http://checkurl.phishtank.com/checkurl/"
end