47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
# -*- encoding: utf-8 -*-
|
|
from datetime import datetime, timedelta
|
|
import logging
|
|
import typing as T
|
|
|
|
from latecomers.helpers import logit, get_date
|
|
|
|
import requests
|
|
|
|
|
|
HOW_MANY = 200
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def remote_inst() -> T.Text:
|
|
"""
|
|
Returns the url to retrieve yesterday's data from institutional site.
|
|
"""
|
|
yesterday = get_date()
|
|
url = f"https://www.adr.it/pax-cia-voli-in-tempo-reale?p_p_id=3_WAR_realtimeflightsportlet&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&_3_WAR_realtimeflightsportlet_tab=arrival&_3_WAR_realtimeflightsportlet_codScaOpe=CIA&_3_WAR_realtimeflightsportlet_rouIata=&_3_WAR_realtimeflightsportlet_searchType=standard&_3_WAR_realtimeflightsportlet_airport=&_3_WAR_realtimeflightsportlet_date={yesterday}&_3_WAR_realtimeflightsportlet_orario=00:00-24:00&_3_WAR_realtimeflightsportlet_codVet=&_3_WAR_realtimeflightsportlet_carrier=&_3_WAR_realtimeflightsportlet_rtFlightsSearchContainerPrimaryKeys=&_3_WAR_realtimeflightsportlet_delta={HOW_MANY}" # noqa: E501
|
|
return url
|
|
|
|
|
|
def remote_fr24() -> T.Text:
|
|
"""
|
|
Returns the url to retrieve data from flightradar24.
|
|
"""
|
|
yesterday_ts = int((datetime.now() - timedelta(hours=6)).timestamp())
|
|
url = f"https://api.flightradar24.com/common/v1/airport.json?code=cia&plugin[]=&plugin-setting[schedule][mode]=arrivals&plugin-setting[schedule][timestamp]={yesterday_ts}&page=-1&limit=100&fleet=&token=" # noqa: E501
|
|
return url
|
|
|
|
|
|
@logit(logger)
|
|
def retrieve_from_inst() -> T.Text:
|
|
"""This function retrieves the body from the website page"""
|
|
r = requests.get(remote_inst())
|
|
return r.text
|
|
|
|
|
|
@logit(logger)
|
|
def retrieve_from_fr24() -> T.Dict[T.Text, T.Any]:
|
|
"""This function retrieves data from flightradar24"""
|
|
r = requests.get(remote_fr24(), headers={"User-Agent": "curl/7.85.0"})
|
|
return r.json()
|