a a @sddlZddlZddlZddlmZddlZddlZddlmZddddZ dZ d Z d d Z dd d Z ddZdddZedkredZeedS)N)Decimal)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/cCsttttt}|d}ttj|dddtdddd"}tj ||d dd Wdn1sf0YdS) NresponseT)indent sort_keys data.jsonwzutf-8)encodingF) ensure_asciir) requestsgetapi_basemethodparamsjsonprintdumpsopendump)Z api_resultZ api_responsefr1/home/pi/TSA/TSA-demo/TSA_flight_status/flight.py listflightss  rc Cs |std}|d}d}|}|D]}|d7}|d}|d}|d}|d} |d } |d } |d } |d } |d }td|td|| z|j|d}td|Wn.ty}ztd|WYd}~n d}~00tdq*Wdn1s0YdS)NdynamodbFlightsr airline_iataarr_iatadelayeddep_gater dep_terminaldep_time flight_numberstatusznb: zAdding flight:)ZItemzputres: zerror in put item: g333333?) boto3resourceTableZ batch_writerrZput_item Exceptiontimesleep)ZflightsrtablenbZbatchflightrr r!r"rr#r$r%r&Zputreserrr loadflightss0       r1cCs:td}t|}td}|j|d}td|dS)Nr r)Z RequestItemsz response: )rrloadsreadr'clientZbatch_write_itemr)rZ request_itemsr4rrrr loadflightsb6s   r5c Cs|std}|d}|jtd|d}t||dD]}d}tj|d|}t t d}| |}t |d } d |krd kr>nq>d |d| |d |d|d d|d|df} | Sq>dS)Nrrr )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 %srr%rr#r") r'r(r)queryreqrdatetimestrptimeintr+ timestampsplit) destrr-rscanformatZ datetimerZ currenttimeZdifftimeZ takeoffinZ nextflightrrr scanflights>s       6rB__main__JFK)N)N)rrr'decimalrr+r:boto3.dynamodb.conditionsrrrrrr1r5rB__name__Zscannedrrrrrs&