a
    pvi!                     @   s.   d dl Z d dl T d dlZdd Zd	ddZdS )
    N)*c           	      C   s   t d| j}t|}i }t|d d D ]\}}dtt|v r|d d }|D ]V}t|| d  z4|| d d }|| d 	d
d	}|||< W qV   Y qV0 qVq.|d d }|d 	d
d	}|||< |d
kr. qq.|S )Nzhttps://www.wienerlinien.at/ogd_routing/XML_STOPFINDER_REQUEST?anyObjFilter_sf=2&coordOutputFormat=EPSG%3A4326&outputFormat=json&type_sf=any&name_sf=
stopFinderpointsstrrefgidnamelatin1utf8   )requestsgettextjsonloads	enumerater   typeprintencodedecode)	operatorstationdatasearch_listxziidr    r   /var/www/html/austria.py	wl_lookup   s$    
r    wlatc                    s"  t d t |  ztd|  d j}W n, tyT } zt | W Y d }~n
d }~0 0 t|}g }|d D ]| z d d dd}W n   d	}Y n0 z d d
 dd}W n   t d d}Y n0 z,|d d d d d }|	|d d}W n   t d Y n0 d}	z0 d d d
 }	|	dkr<d}	|	dkrJd}	W n. tyz } zt | W Y d }~n
d }~0 0  d d 
dd }
 fdd}g }z|d }t d! W n6   z|d"}t d# d$}W n   d%}Y n0 Y n0 z |
dd }|
d&d }W n   t d' Y n0  d d 	dd	d(d}
|

dd }
z|
dkrf d d) }
W n. ty } zt | W Y d }~n
d }~0 0 zt d* d+ d,   d- }W n   Y n0 z$d.|
 v sd.| v rd.}W n   Y n0 | }d/| v sd0| v rd1}|d2kr0d3}n|d4krBd1}n|d5krTd1}n|d6krfd1}n|d7krxd1}n|d8krd1}n|d9krd1}nz|d:krd:}nh|d;krd<}nV|d=krd.}nD|d0krd1}n2|d>krd3}n |d?krd1}n|d@krd.}n|dAkr(d:}nd.|v r8d.}ndB|v rHd1}ndC|v rXd1}nd.|v rhd.}nd1|v rxd1}ndD|v rd:}ndE|v rd:}n~dF|v rd:}nndG|v rd1}n^dH|v rd1}nNdI|v rd.}n>dJ|v rd:}n.dK|v rd.}ndL|v rd.}nt dM| d	}zPdN d d dO v r>|	dPd }dQ d d dO v rd|	dRd }W n   Y n0 |	dSdT}|	dUd}|dVkrdW}|	dXd}|}||	|d dY |
	dZd[| d\|d]}||v rql|| qlt d^t| t|r|tj| | |  d_< |S d S )`NzSTATION: VRRzhttps://www.wienerlinien.at/ogd_routing/XML_DM_REQUEST?depSequence=30&depType=stopEvents&includeCompleteStopSeq=0&itdDateTimeDepArr=dep&language=de&maxTimeLoop=1&mode=direct&name_dm=z]&outputFormat=JSON&ptOptionsActive=1&sl3plusDMMacro=1&type_dm=any&useAllStops=1&useRealtime=1departureListservingLiner   r	   r
   UNKNOWN	directionFAIL?dmr   pointr   place  z$Could not remove 'place' from 'name'0liErgRiProjR1H2number(r   c                    s   d}d}t  |  D ]^\}}|dkr(d}|dkr4d}|dkrF|d7 }q d | }t|d	krfd
| }||| 7 }q|ddd }|S )Nr-   r   -   :weekdayTdateTime   r.   zT:z:00)r   lenreplace)_timewhensepr   r   zz
departuresr   r   get_time@   s    z$wl_load_departures.<locals>.get_timerealDateTimeRTr;   	SCHEDULED#z20250101T00:00:00[z
Name fail!Bussymbolz	PRODUCT: lineproductdestinationbus	stadtbahnzs-bahntrainsubwaymetroregionalnationalnationalExpressregionalExpressexpresssuburbantramferryshiptaxizu-bahnregionalzugnesbrerbstrabstraniederflurstrabzugzr-bahnsevschwebebahnersatzverkehreinsatzzFailed to find __type: dswnetworkz	Dortmund vbbzBrandenburg, auptbahnhofbfz, HbfHauptbahnhofz     r6   .)r   transport_mode)rO   direction_codeexpectedrM   
deviationszLEN: rD   )r   r   r   r   	Exceptionr   r   r   r   r>   splitlowerlstripupperappendr=   v	operators)r   r   countryr   eresults__typer   
place_namer&   rM   rE   rx   r@   r?   
new_recordr   rC   r   wl_load_departures   s    ,

..
 


r   )r!   r"   )r   datetimer    r   r   r   r   r   <module>   s   