a
    ki                     @   s&   d dl Z d dl T dddZdd ZdS )	    N)*dkc              
      s    fdd}d}ddi}g }t d j}t|}|D ] }	|||||	||	  q>dd }
|
|}t|r|tj	    d	< |S d S )
Nc                    s  i }g }| d D ]t}z0|d d   }t| z|d d }|d d }W n@   |d d d }|d d d }t|d d d  Y n0 |d }|d }	z|d	 }
W n   |d
 }
Y n0 |	}|d |
 d }|}
|dkrd}n|dkrd}n|dkr
d}n|dkrd}n|dkr*d}n|dkr:d}n|dkrJd}n|dkrZd}n|dkrjd}n|dkrzd}n|dkrd}n~|dkrd}nn|dkrd}n^|dkrd}nN|dkrd}n>|d krd}n.d|v rd}nd|v rd}nd!|v rd}|d"d#d$|
d d% |d&d'| d(g |d)}|| W q ty } z"td*| W Y d }~qW Y d }~qd }~0 0 qt|r|tj    d+< |S d S )-N	DepartureProductAtStopZcatOutLlineZoperatorInfoname	directiondateZrtTimetimeTz:00mmetroZregionalZtrainreZexpressZlynregZiczs-togZtogZexbbusnbtbfshipZletZtramzhv-busZletbanezvia  0   -.)idtransport_mode)destinationdirection_codeexpectedr   
deviationsr   Error: 
departuresSuccess)	lowerprintreplaceupperappend	Exceptionlenv	operators)xZ	load_typesearch_listresultsr!   Z__typer   r   r   _date_timeZ__dateZ___date
new_recordecountryoperatorstation /var/www/html/denmark.py
load_cycle   sp    



$
z&kb_load_departures.<locals>.load_cyclez&useMetro=0&useBus=0&useTog=0zMetro=0zMetro=1zuhttps://www.rejseplanen.dk/api/departureBoard?accessId=93036e26-5ec5-4fcb-ba40-395299f25046&line=True&format=json&id=c                 S   s   dd | D S )Nc                 S   s   g | ]}|D ]}|qqS r7   r7   ).0rowitemr7   r7   r8   
<listcomp>c       zEkb_load_departures.<locals>.flatten_comprehension.<locals>.<listcomp>r7   )Zreturn_listr7   r7   r8   flatten_comprehensionb   s    z1kb_load_departures.<locals>.flatten_comprehensionr!   )
requestsgettextjsonloadsr'   r%   r)   r*   r+   )r6   r5   r4   r9   Z	all_typesZ
cycle_listr.   datar,   ir?   r7   r3   r8   kb_load_departures   s    T
rG   c                 C   sf  t | |dd}ztd| j}W n. tyV } zt d| W Y d }~n
d }~0 0 t|}dg i}|D ]:}|j}i }	|j	D ]}
|j	|
 |	|
< q|d 
||	i qnt|}t|}i }|d D ]}|D ]}zVt || d  t || d  || d }|| d }|tj| |  |< |||< W q ty\ } zt d| W Y d }~qd }~0 0 qq|S )	N z%20zahttps://www.rejseplanen.dk/api/location.name?accessId=93036e26-5ec5-4fcb-ba40-395299f25046&input=zError. 	locationsr   extIdr    )r$   r%   r@   rA   rB   r(   ET
fromstringtagattribr'   rC   dumpsrD   r*   sites)r5   r6   r4   xml_datar2   rootZlocation_datalocationlocation_typeZlocation_details	attributeZ	json_datarE   r-   stationsrF   r   siteidr7   r7   r8   	kb_lookupq   s8    .



$rX   )r   )r*   rG   rX   r7   r7   r7   r8   <module>   s   
m