a
    C%i'                     @   s   d dl Z d dlZd dlZd dlm  mZ d dlZd dlZd dlT d dl	T d dl
T d dlT d dlT d dlT d dlT d dlT d dlT d dlT d dlT dd Zdd Zdd Zze e_W n   Y n0 d	Zd
ZdS )    N)*c                 C   s  zt j|   W n   i t j| < Y n0 zt j|  |  W n   |i it j| < Y n0 | dkr|dkrlt|S |dkr~t||S |dkrt||S |dkrt||S |dkrt||S n| dkr|dkrt||S n| d	kr|d
krt||S |dkrt	||S |dkrt
||S |dkr.t||S |dkrBt||S |dkrVt||S |dkrjt||S |dkr~t	||S |dkrt||S n| dkr|dkrt||S n| dkrt| ||S | dkr|dkrt||ddS n| dkr*|dkrt||ddS |dkrt||ddS nV| dkr>t||S | dkr^|dkrt||S n"| dkr|dkrt||ddS td| | t| ||W  d    S 1 s0    Y  d S ) Nsevtsjfesl
norrbottenatwldedbkvvrmv	db_trainsdb2drbevrruklononlns)countrydkkbchfrpafihslzTRYING GTFS: )vsitesZ	vt_lookupZ	sj_lookupZferries_lookupZ	sl_lookupZresrobot_lookupZ	wl_lookupZ	db_lookupZ
kvv_lookupZ
rmv_lookupZdb_trains_lookupZ
db2_lookupZ	dr_lookupZ	be_lookupZ
vrr_lookupZ	lo_lookupZ	no_lookupZ	ns_lookupZ	kb_lookupZch_zu_lookupZ	pa_lookupZ
hsl_lookupprintgtfs_lookup)r   operatorstation	gtfs_lock r(   "/var/www/html/traffic_operators.pysearch   sN    









r*   c              
   C   s  zt || |}W n4 tyF } zt| ddiW  Y d }~S d }~0 0 t|d |dkrt|D ]}d||  ||< q^|S ]}d|v rx|d d  |d	  v rx|d	 }	|d }
z |	|v rtd
 t|	d }	W n   Y n0 |
tj|  | |	< |
||	< |d7 }|dkrx qqxt|S ]}d|v r|d d  |d	  v r|d	 }	|d }
z"|	|v rttd
 t|	d }	W n   Y n0 |
tj|  | |	< |
||	< |d7 }|dkr qqt|S )Nz	Try again zDATA!!!sncbSr   id   nameDoublez 2   d   )	
gtfsloaderr*   	Exceptionr#   lowerstrr!   r"   Zsort_dict_by_keys)r   r%   r&   dataeresultcZsearch_listZstopsr0   r.   r(   r(   r)   r$   ?   sX    
     

r$   c                 C   s  t d t|| |}|dkrd|D ]@}t | |d d dkrJd|d d< |d d  |d d< q"|dkr|D ]@}t | |d d d	krd
|d d< |d d  |d d< qpt|r|tt dtj	|  | |< |S d S zt
j| ||d}W n2 ty* } zt d| W Y d }~d S d }~0 0 z |D ]}t | q2|d }W n. tyz } zt | W Y d }~n
d }~0 0 t | g }d}|D ]<}	t |	 |dkr|	d rqz|	d }
W n   d}
Y n0 d|	vrq|	d dddd}d|v rqz|	d }W n   d}Y n0 d|	v r|	d }nqtj }t|d d d t| }| dks| d ks| d!krd"|v rp|t| t| tjdd# }nd$|v r|d$d%}|t| t| tjdd# }d&|v r2|d&d'}|t| t| tjdd# }d(|v rp|d(d)}|t| t| tjdd# }t | z,|d||dd*|
d+g d,}|| W n&   t tj	|  |  t d- Y n0 qt|r |tt dtj	|  | |< |S d S ).NzLoading GTFS...rolinetransport_moder2   METROr.   r      TRAIN)
departures	timestamp)r   r%   r&   zCould not download new RT: rB   r   r,   Zdrop_sumtypeUNKNOWN	directionz via z v.z - -ZEndastZroute_short0Zrealtime_departure_time
   TZcrr   r   ZT0)daysZT24ZT00ZT25ZT01ZT26ZT02.)r.   r>   )destinationdirection_codeexpectedr=   
deviationsError)r#   r4   	departureupperlentimemktime	localtimer!   	operatorsZ	gtfs_mainZ
start_gtfsr5   replacedatetimenowr7   date	timedeltaappend)r   r&   r%   resultsrR   r8   r9   keyZcounterrB   Z_typerM   r=   _timeZ_dateZ
new_recordr(   r(   r)   gtfs_load_departuresw   s    "







*
(
(
(
"rb   ZMSoM0Zr2or225Nl2NFw7xL3zMToaZiHYI8_4fXoyd7VHQf2L28QcGX9Ma)rU   rZ   requestsxml.etree.ElementTreeetreeElementTreeETr!   r4   Zcountries.swedenZcountries.netherlandsZcountries.denmarkZcountries.finlandZcountries.germanyZcountries.norwayZcountries.switzerlandZcountries.franceZcountries.ukZcountries.austriar*   r$   rb   Zsj_load_stationsZsj_stationsZ	vt_clientZ	vt_secretr(   r(   r(   r)   <module>   s*   -8b