Module: FlightRadar
- Defined in:
- lib/flight_radar.rb,
lib/flight_radar/version.rb
Overview
FlightRadar module for sending requests to FlightRadar24 API
Constant Summary collapse
- VERSION =
'0.3.0'
Class Method Summary collapse
-
.aircraft(registration) ⇒ Hash
Retrieves information about a specific aircraft by registration number.
-
.airline_fleet(airline_code) ⇒ Hash
Retrieves fleet information for a specific airline.
-
.airline_logo(iata, icao) ⇒ Array
Retrieves airline logos based on IATA and ICAO codes.
-
.airlines ⇒ Array
Retrieves a list of airlines.
-
.airport(code) ⇒ Hash
Retrieves traffic statistics for a specific airport.
-
.airports ⇒ Array
Retrieves a list of airports.
-
.bounds(zone) ⇒ String
Converts zone information into bounds string.
-
.country_flag(country) ⇒ String
Retrieves the URL of a country flag based on the country name.
-
.flight_details(flight_id) ⇒ Hash
Retrieves detailed information about a specific flight.
-
.flight_playback(flight_id) ⇒ Hash
Retrieves playback data for a specific flight (alias for flight_details with version parameter).
-
.flights(params = {}) ⇒ Array
Retrieves a list of flights based on specified parameters.
-
.most_tracked ⇒ Hash
Retrieves a list of the most tracked flights.
-
.search(query, limit = 50) ⇒ Hash
Searches for flights, airports, and airlines.
-
.zones ⇒ Hash
Retrieves information about flight tracking zones.
Class Method Details
.aircraft(registration) ⇒ Hash
Retrieves information about a specific aircraft by registration number.
154 155 156 |
# File 'lib/flight_radar.rb', line 154 def aircraft(registration) search(registration) end |
.airline_fleet(airline_code) ⇒ Hash
Retrieves fleet information for a specific airline.
162 163 164 |
# File 'lib/flight_radar.rb', line 162 def airline_fleet(airline_code) search(airline_code) end |
.airline_logo(iata, icao) ⇒ Array
Retrieves airline logos based on IATA and ICAO codes.
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/flight_radar.rb', line 42 def airline_logo(iata, icao) first_logo_url = "#{Core::AIRLINE_LOGO_URL}#{iata}_#{icao}.png" second_logo_url = "#{Core::ALTERNATIVE_AIRLINE_LOGO_URL}#{icao}_logo0.png" # Check the availability of logos and return URLs. result = [] first_request = Request.new(first_logo_url, Core::IMAGE_HEADERS) second_request = Request.new(second_logo_url, Core::IMAGE_HEADERS) result << first_logo_url if first_request.success? result << second_logo_url if second_request.success? result end |
.airlines ⇒ Array
Retrieves a list of airlines.
32 33 34 35 |
# File 'lib/flight_radar.rb', line 32 def airlines request = Request.new(Core::AIRLINES_DATA_URL, Core::JSON_HEADERS) request.content['rows'] end |
.airport(code) ⇒ Hash
Retrieves traffic statistics for a specific airport.
59 60 61 62 63 |
# File 'lib/flight_radar.rb', line 59 def airport(code) url = "#{Core::DATA_LIVE_BASE_URL}/airports/traffic-stats/?airport=#{code}" request = Request.new(url, Core::JSON_HEADERS) request.content end |
.airports ⇒ Array
Retrieves a list of airports.
68 69 70 71 |
# File 'lib/flight_radar.rb', line 68 def airports request = Request.new(Core::AIRPORTS_DATA_URL, Core::JSON_HEADERS) request.content['rows'] end |
.bounds(zone) ⇒ String
Converts zone information into bounds string.
77 78 79 |
# File 'lib/flight_radar.rb', line 77 def bounds(zone) "#{zone['tl_y']},#{zone['br_y']},#{zone['tl_x']},#{zone['br_x']}" end |
.country_flag(country) ⇒ String
Retrieves the URL of a country flag based on the country name.
85 86 87 |
# File 'lib/flight_radar.rb', line 85 def country_flag(country) "#{Core::COUNTRY_FLAG_URL}#{country.downcase.gsub(' ', '-')}.gif" end |
.flight_details(flight_id) ⇒ Hash
Retrieves detailed information about a specific flight.
93 94 95 |
# File 'lib/flight_radar.rb', line 93 def flight_details(flight_id) HTTParty.get("https://data-live.flightradar24.com/clickhandler/?flight=#{flight_id}").parsed_response end |
.flight_playback(flight_id) ⇒ Hash
Retrieves playback data for a specific flight (alias for flight_details with version parameter).
146 147 148 |
# File 'lib/flight_radar.rb', line 146 def flight_playback(flight_id) flight_details(flight_id) end |
.flights(params = {}) ⇒ Array
Retrieves a list of flights based on specified parameters.
101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/flight_radar.rb', line 101 def flights(params = {}) request_params = @config.dup request_params[:airline] = params[:airline] if params[:airline] request_params[:bounds] = params[:bounds]&.gsub(',', '%2C') response = Request.new(Core::REAL_TIME_FLIGHT_TRACKER_DATA_URL, Core::JSON_HEADERS, request_params).content %w[full_count version stats].each { |k| response.delete(k) } response.map { |flight_id, flight_details| Flight.new(flight_id, flight_details) } end |
.most_tracked ⇒ Hash
Retrieves a list of the most tracked flights.
137 138 139 140 |
# File 'lib/flight_radar.rb', line 137 def most_tracked request = Request.new(Core::MOST_TRACKED_URL, Core::JSON_HEADERS) request.content end |
.search(query, limit = 50) ⇒ Hash
Searches for flights, airports, and airlines.
128 129 130 131 132 |
# File 'lib/flight_radar.rb', line 128 def search(query, limit = 50) url = "#{Core::SEARCH_DATA_URL}?query=#{query}&limit=#{limit}" request = Request.new(url, Core::JSON_HEADERS) request.content end |
.zones ⇒ Hash
Retrieves information about flight tracking zones.
116 117 118 119 120 121 |
# File 'lib/flight_radar.rb', line 116 def zones request = Request.new(Core::ZONES_DATA_URL, Core::JSON_HEADERS) content = request.content content.delete('version') content end |