latecomers/latecomers/retrieve.py

47 lines
1.8 KiB
Python
Raw Normal View History

2022-08-21 08:37:45 +02:00
# -*- encoding: utf-8 -*-
2022-08-25 22:38:40 +02:00
from datetime import datetime, timedelta
2022-08-25 13:11:33 +02:00
import logging
2022-08-21 08:37:45 +02:00
import typing as T
2022-09-18 23:29:02 +02:00
from latecomers.helpers import logit, get_date
2022-08-25 13:11:33 +02:00
2022-08-21 08:37:45 +02:00
import requests
HOW_MANY = 200
2022-08-25 22:38:40 +02:00
2022-08-21 08:37:45 +02:00
2022-08-25 13:11:33 +02:00
logger = logging.getLogger(__name__)
2022-08-21 08:37:45 +02:00
2022-09-07 23:44:53 +02:00
def remote_inst() -> T.Text:
2022-08-25 22:38:40 +02:00
"""
2022-09-07 23:44:53 +02:00
Returns the url to retrieve yesterday's data from institutional site.
2022-08-25 22:38:40 +02:00
"""
2022-09-18 23:29:02 +02:00
yesterday = get_date()
2022-08-26 09:57:24 +02:00
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
2022-08-25 22:38:40 +02:00
return url
2022-09-07 23:44:53 +02:00
def remote_fr24() -> T.Text:
"""
Returns the url to retrieve data from flightradar24.
"""
2022-09-18 23:29:32 +02:00
yesterday_ts = int((datetime.now() - timedelta(hours=6)).timestamp())
2022-09-07 23:44:53 +02:00
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
2022-08-25 13:11:33 +02:00
@logit(logger)
2022-09-07 23:44:53 +02:00
def retrieve_from_inst() -> T.Text:
2022-08-21 08:37:45 +02:00
"""This function retrieves the body from the website page"""
2022-09-07 23:44:53 +02:00
r = requests.get(remote_inst())
2022-08-21 08:37:45 +02:00
return r.text
2022-09-07 23:44:53 +02:00
@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()