B ʪa @s>ddlZddlZddlZddlZddlmZddlZddlZddlm Z ddl m Z ddl m Z e ZeeZejedZeee eejededd Zd d d d ZdZdZddZdddZddZdddZe dkr:eede!dZ"ej#e"edZ$WdQRXee$edZ%ee%dS)N)Decimal)Key)Path) load_dotenvz/TSA_mecha/.env AWS_KEY_IDAWS_SECRET_KEY)aws_access_key_idaws_secret_access_keyz$65c7da93-36b1-4dab-8a42-ea4b4cab9a0eZLASzcdep_iata,arr_iata,airline_iata,flight_number,status,dep_time,duration,dep_terminal,dep_gate,delayed)Zapi_keydep_iata_fieldsZ scheduleszhttp://airlabs.co/api/v9/c Cs`tttt}|d}ttj|dddtdddd}tj ||d dd WdQRXdS) NresponseT)indent sort_keysz data.jsonwzutf-8)encodingF) ensure_asciir) requestsgetapi_basemethodparamsjsonprintdumpsopendump)Z api_resultZ api_responsefr./home/pi/TSA-clean/TSA_flight_status/flight.py listflights s  r c Cs|std}|d}d}|}x|D]}|d7}|d}|d}|d}|d} |d } |d } |d } |d } |d }td|td|| y|j|d}td|Wn,tk r}ztd|Wdd}~XYnXtdq,WWdQRXdS)NdynamodbFlightsr airline_iataarr_iatadelayeddep_gater dep_terminaldep_time flight_numberstatusznb: zAdding flight:)ZItemzputres: zerror in put item: g333333?) sessionresourceTableZ batch_writerrZput_item Exceptiontimesleep)Zflightsr!tablenbbatchflightr$r%r&r'r r(r)r*r+Zputreserrr loadflights*s0       r7cCs:td}t|}td}|j|d}td|dS)Nz data.jsonr!)Z RequestItemsz response: )rrloadsreadboto3clientZbatch_write_itemr)rZ request_itemsr;r rrr loadflightsbEs   r<c Cs|std}|d}|jtd|d}t|x|dD]}d}tj|d|}t t d}| |}t|t |d } d |krd kr@nq@d |d| |d |d|d d|d|df} | Sq@WdS)Nr!r"r%)ZKeyConditionExpressionItemsz%Y-%m-%d %H:%Mr)i0*<riPFzlTHE NEXT FLIGHT TO %s leaves in %s minutes. Flight number is %s %s and leaves at %s from terminal %s gate %sr$r*r#r(r') r,r-r.queryreqrdatetimestrptimeintr0 timestampsplit) destr!r2r scanformatZ datetimerZ currenttimeZdifftimeZ takeoffinZ nextflightrrr scanflightsMs     6rI__main__z data.json) parse_floatJFK)N)N)&rrosr:decimalrr0rAboto3.dynamodb.conditionsrpathlibrdotenvrbasepathstrcwdbasedirpathdirnameenvarsrSessiongetenvr,rrrr r7r<rI__name__rZ json_fileloadZ flight_listZscannedrrrrs>