Class: Archaeo::AvailabilityApi

Inherits:
Object
  • Object
show all
Defined in:
lib/archaeo/availability_api.rb

Overview

Client for the Wayback Machine Availability API.

Check whether a URL has been archived and retrieve the closest available snapshot for a given point in time.

Constant Summary collapse

ENDPOINT =
"https://archive.org/wayback/available"

Instance Method Summary collapse

Constructor Details

#initialize(client: HttpClient.new) ⇒ AvailabilityApi

Returns a new instance of AvailabilityApi.



14
15
16
# File 'lib/archaeo/availability_api.rb', line 14

def initialize(client: HttpClient.new)
  @client = client
end

Instance Method Details

#available?(url) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/archaeo/availability_api.rb', line 36

def available?(url)
  near(url).available?
end

#near(url, timestamp: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/archaeo/availability_api.rb', line 18

def near(url, timestamp: nil)
  params = { "url" => url }
  params["timestamp"] = timestamp.to_s if timestamp

  response = @client.get(
    "#{ENDPOINT}?#{URI.encode_www_form(params)}",
  )
  parse_response(response, url)
end

#newest(url) ⇒ Object



32
33
34
# File 'lib/archaeo/availability_api.rb', line 32

def newest(url)
  near(url, timestamp: Timestamp.now)
end

#oldest(url) ⇒ Object



28
29
30
# File 'lib/archaeo/availability_api.rb', line 28

def oldest(url)
  near(url, timestamp: Timestamp.new(year: 1994, month: 1, day: 1))
end