Skip to content
This repository has been archived by the owner on Dec 12, 2023. It is now read-only.

Commit

Permalink
Merge pull request #3 from foudezic63/master
Browse files Browse the repository at this point in the history
ADD : possibility to use proxy configuration, see docs.python-requests.org/en/master/user/advanced/ for more info
  • Loading branch information
mkorkmaz authored Sep 14, 2018
2 parents 612efe5 + f31b4d8 commit 98cf188
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
15 changes: 8 additions & 7 deletions flightradar24/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ class Api:
'flights': '/zones/fcgi/feed.js?faa=1&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&gliders=1&stats=1&maxage=14400&airline=!'
}

def __init__(self):
response = api_request(self.balanceJsonUrl)
def __init__(self, proxies=None):
self.proxies = proxies
response = api_request(self.balanceJsonUrl, self.proxies)
tmp_weight = 0
tmp_uri = None
for uri, weight in response.items():
Expand All @@ -34,18 +35,18 @@ def __init__(self):
self.balanceUrl = tmp_uri

def get_airports(self):
return api_request(self.baseUrl + self.metaDataEndPoints['airports'])
return api_request(self.baseUrl + self.metaDataEndPoints['airports'], self.proxies)

def get_airlines(self):
return api_request(self.baseUrl + self.metaDataEndPoints['airlines'])
return api_request(self.baseUrl + self.metaDataEndPoints['airlines'], self.proxies)

def get_flights(self, airline):
endpoint = self.liveDataUrl + self.realTimeDataEndPoints['flights'] + airline+'&_=' + str(time.time())
return api_request(endpoint)
return api_request(endpoint, self.proxies)

def get_flight(self, flight_id):
endpoint = self.apiUrl + self.realTimeDataEndPoints['flight'] + flight_id
return api_request(endpoint)
return api_request(endpoint, self.proxies)

def get_zones(self):
return api_request(self.baseUrl + self.metaDataEndPoints['zones'])
return api_request(self.baseUrl + self.metaDataEndPoints['zones'], self.proxies)
4 changes: 2 additions & 2 deletions flightradar24/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import requests


def api_request(end_point):
def api_request(end_point, proxies=None):
request_base_headers = {'User-agent': 'mkorkmaz/FR24/1.0'}
r = requests.get(end_point, headers=request_base_headers)
r = requests.get(end_point, headers=request_base_headers, proxies=proxies)
if r.status_code is 402:
raise RuntimeError("Request to " + end_point + " requires payment")
if r.status_code is 403:
Expand Down
5 changes: 5 additions & 0 deletions tests/test_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ class ContractTestSuite(unittest.TestCase):
def test_balance_json():
flightradar24.Api()

@staticmethod
def test_balance_json_with_proxy():
proxies = {'http': 'http://78.188.162.174:45318', 'https': 'https://78.188.162.174:45318'}
flightradar24.Api(proxies=proxies)

@staticmethod
def test_airports():
fr = flightradar24.Api()
Expand Down

0 comments on commit 98cf188

Please sign in to comment.