ó
3Ö¯_c           @   s~  d  d l  m Z d  d l  m Z m Z d  d l m Z m Z d  d l m Z d  d l Td  d l	 m
 Z
 d  d l  m Z m Z d  d l m Z d  d	 l m Z d  d l  m Z d  d
 l Z d  d l m Z m Z d  d l m Z d  d
 l j Z d  d l m Z d  d l m Z d  d l m Z d  d
 l Z d  d
 l Z e j  d ƒ Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d
 S(   iÿÿÿÿ(   t   render(   t   get_object_or_404R    (   t   HttpResponseRedirectt   HttpResponse(   t   reverse(   t   *(   t	   TokenForm(   t   redirectt   render_to_response(   t   View(   t   RequestContextN(   t   datetimet	   timedelta(   t   timezone(   t   Point(   t   slugify(   t   parset   djangoc         C   s\   |  d  k r d St |  ƒ t k rT t j d ƒ x& |  D] } t j d | ƒ q6 Wn |  Sd  S(   Nt    s   on a dico !!!!s
   Element %s(   t   Nonet   typet   dictt   loggert   info(   t   bst   element(    (    s7   /var/www/agenderbackend/backoffice/views/batchevents.pyt   robust_decode   s    
c   #      C   s¶  g  } yP|  rDxC|  D]'} yÜ
t  | d ƒ } t j d | t  | d ƒ f ƒ t j j d | ƒ } t | ƒ d k r‚t j d t  | d ƒ | f ƒ | d } t } | d } d | k rË | d } n | } t | d	 t ƒ}	 t | d	 t ƒ}
 |	 | _	 |
 | _
 t j ƒ  j ƒ  } d
 | k r t j | d
 ƒ | _ | d
 } t j d ƒ d  } xˆ | D]€ } d | k r| d | _ n  | d } | d } t j | ƒ } t j | ƒ } | | j ƒ  k r_t j d | ƒ | } q_q_Wt j d | ƒ | | _ n  d | k r1| d k rn | d | _ t } n  d | k rl| d } d | k rl| d | _ t } qln  | r÷
| j ƒ  q÷
nu| d } d | k r¥| d } n | } t | d	 t ƒ}	 t | d	 t ƒ}
 |
 |	 } | j ƒ  d } t j ƒ  j ƒ  } t j ƒ  } t j | ƒ } t j | ƒ } t j d | | | | f ƒ | | k  r^t j d ƒ n™yTt ƒ  } |	 | _	 |
 | _
 | | _ | d k r¦t | _ t | _ n  t  | d ƒ | _ t j d | ƒ d
 | k rµt j | d
 ƒ | _ | d
 } t j d | ƒ d  } xˆ | D]€ } d | k r6| d | _ n  | d } | d } t j | ƒ } t j | ƒ } | | j ƒ  k rt j d | ƒ | } qqWt j d | ƒ | | _ n  d | k rÑ| d | _ n	 d | _ d | k r)| d } d | k r| d | _ q2t j d | ƒ d | _ n	 d | _ d  } d  } d  } d  } d | k rŒd | d k r}t  | d d ƒ } n  d | d k rrt  | d d d ƒ } d | d d k r×t  | d d d ƒ | _ n	 d | _ d | d d k rt  | d d d ƒ | _ n	 d | _ d  | | _  d! | d d k r‰t  | d d d! ƒ } t  | d d d" ƒ } q‰q’d | d k ro| d d } d# | k r¥d# } q‰d$ | k rºd$ } q‰d% | k rÏd% } q‰d& | k räd& } q‰d' | k rùd' } q‰d( | k rd( } q‰d) | k r#d) } q‰d* | k r8d# } q‰d+ } t j! d, | | f ƒ | j" d, | | f ƒ q’t j! d- ƒ | j" d- ƒ n d } | d  k r­d } d } n  | s¼d+ } n  | r‰
| d$ k rét# j j$ d. d ƒ | _% n5| d( k s| d/ k rt# j j$ d. d0 ƒ | _% n| d& k rCt# j j$ d. d1 ƒ | _% nÛ | d# k rjt# j j$ d. d2 ƒ | _% n´ | d' k r‘t# j j$ d. d3 ƒ | _% n | d) k r¸t# j j$ d. d4 ƒ | _% nf | d% k rßt# j j$ d. d5 ƒ | _% n? | d+ k r	t# j j$ d. d6 ƒ | _% n t# j j$ d. d6 ƒ | _% t& j j$ d. d ƒ | _' y… t j d7 | ƒ t( j j d8 | j% d9 | ƒ } | r•	| d }  |  | _) t j d: |  ƒ n% t j d; ƒ t( j j$ d. d ƒ | _) Wn8 t* k
 rõ	}! t j! |! ƒ t( j j$ d. d ƒ | _) n Xt+ | j ƒ | _, t- | | ƒ }" |" | _. | | _/ t | _0 | d | _1 t j | ƒ | _2 | j ƒ  t j d< d= | j1 d= | j | j f ƒ n( | j" d> | ƒ t j d? | | f ƒ WnB t* k
 rö
}! t j! d@ | ƒ t j! |! ƒ | j" dA |! ƒ n XWq t* k
 r<}! t j! d@ | ƒ t j! |! ƒ | j" dA |! ƒ q Xq Wn t j dB |  ƒ WnH t* k
 r }! t j! dC | ƒ t j! |! ƒ | j" dD |! | f ƒ n Xt j dE | ƒ | S(F   Nt   ids   Event %s %st   namet
   facebookIdi    s   ----- %s deja existant %st
   start_timet   end_timet   ignoretzt   event_timess   --- Event multiple datet
   ticket_uris   --set nextDateToSet %ss   --Ok trouve prochaine date %st   descriptiont   406054329946496t   covert   sourcei€Q s9   ---- Today %s start Time %s et endDate %s et todayFull %ss   --- Ã©vÃ©nement finii   s   Recup name event %ss   --- Event multiple date %sR   s   cover %st   placet   locationt   cityt   streett   zips    https://www.facebook.com/events/t   latitudet	   longitudet   Parist	   Barcelonat   Madridt   Londont   Sitgest   Berlint   Brusselss   LE DEPOTt   Inconnus   Pas de location %s Name %ss   Pas de location et pas de namet   pku	   NeukÃ¶llni   i   i   i   i   i   i	   s   ===== On recupere place %st   refTownt   name__iexacts   Place %ss   Pas de place trouvees+   --- Importe ID %s event [%s] startDate [%s]u    s!   Non importe car ville inconnue %ss.   ---- Non importe car ville inconnue %s name %ss   !!!!!!!! ERREUR EVENT %ss   Exception %ss   Event list vide [%s]s   !!!!!!!!!!!!!!!!! ERREUR %ss   Exception %s pour event %ss   on renvoi errors list %s(3   R   R   R   t   Eventt   objectst   filtert   lent   FalseR   t   startDateEventt   endDateEventR   t   nowt   datet   jsont   dumpst   jsonDateR   t	   ticketUrlt
   dateparsert	   dateEventR#   t   Truet   picturet   savet   total_secondsR   t   requireAttentiont   isDailyR   R*   t   zipCodet   pageFacebookt   errort   appendt   Townt   getR7   t   EventCategoryt   refEventCategoryt   Placet   refPlacet	   ExceptionR   t   slugR   R(   t	   placeNamet   validR   t
   jsonStripe(#   t	   eventListt   errorst   eventFBR   t	   eventExitt   eventUpdatet   modifyt	   startTimet   endTimet   dateParseDebt   dateParseFint   todayt
   eventTimest   nextDateToSett   theDateInfot   dateDebt   dateFint   parseDateDebt   parseEndDateR%   t   timeDurationt
   tempsTotalt	   todayFullt	   startDatet   endDatet   eventR)   R,   R   RZ   R-   t   placesR'   t   et   pnt(    (    s7   /var/www/agenderbackend/backoffice/views/batchevents.pyt   processData-   s¢   !!

		


	


					


	
													
				
	%c   
      C   sÃ   g  } t  j d |  d d ƒ } yq t j d ƒ d | } d  } | j | ƒ } g  } | j | ƒ t | ƒ } x | D] } | j | ƒ qs W| SWn- t k
 r¾ }	 t j	 |	 ƒ | j |	 ƒ n Xd  S(   Nt   access_tokent   versions   5.0s&   ========= NOUVEL IMPORT V5 ===========t   /(
   t   facebookt   GraphAPIR   R   R   t   requestRQ   Rx   RX   RP   (
   t   tokenR   t
   listErrorst   grapht	   queryPathR^   Rt   t   arrayRP   Rv   (    (    s7   /var/www/agenderbackend/backoffice/views/batchevents.pyt   extractEvent,  s     
c         C   s°  g  } t  j d |  d d ƒ } y^t j d ƒ d } t } d  } x4| rvyö | j | ƒ } t j d | ƒ | d } t | ƒ } x | D] } | j | ƒ q‰ W| d }	 |	 r+d	 |	 k r|	 d	 }
 t j d
 |
 ƒ |
 j	 d d ƒ } | j	 d d ƒ } t j d | ƒ | } q>t j d ƒ t
 } n t j d ƒ t
 } WqC t k
 rr} t j d | ƒ t j | ƒ qC XqC W| SWn- t k
 r«} t j | ƒ | j | ƒ n Xd  S(   NRy   Rz   s   5.0s&   ========= NOUVEL IMPORT V5 ===========sC   /me/events/?fields=cover,name,description,place,start_time,end_times   queryPath %st   datat   pagingt   nexts   on recoit next %ss    https://graph.facebook.com/v3.2/R   s   on query next %ss   Fin du pagings   QueryPath %s(   R|   R}   R   R   RH   R   R~   Rx   RQ   t   replaceR=   RX   RP   (   R   R€   R   R‚   t   yaNextR^   t   eventsR]   RP   R†   R‡   t   oneShortUrlt   shortUrlRv   (    (    s7   /var/www/agenderbackend/backoffice/views/batchevents.pyt   extractMyEvents>  sF    	


		
c         C   s¸   |  j  d k r˜ t |  j ƒ } | j ƒ  r¡ t j d | j d ƒ | j d } | j d ru t | | j d ƒ } n t | ƒ } t	 d i | d 6ƒ Sn	 t ƒ  } t
 |  d i | d 6ƒ S(	   Nt   POSTs   Ok on a recu token %sR   R   s   batch/eventresultat.htmlt   lists   batch/import.htmlt   form(   t   methodR   RŽ   t   is_validR   R   R…   R„   R   R   R    (   R~   R   R   R€   (    (    s7   /var/www/agenderbackend/backoffice/views/batchevents.pyt   CustomBatchViewf  s    	c         C   s   t  |  d i  ƒ S(   Ns   batch/cgu.html(   R    (   R~   (    (    s7   /var/www/agenderbackend/backoffice/views/batchevents.pyt   cguv  s    ((   t   django.shortcutsR    R   t   django.httpR   R   t   django.urlsR   t   backoffice.modelst   backoffice.formsR   R   R   t   django.viewsR	   t   django.templateR
   R|   R   R   t   django.utilsR   t   dateutil.parsert   parserRF   t   django.contrib.gis.geosR   t   django.template.defaultfiltersR   R   t   loggingRB   t	   getLoggerR   R   Rx   R„   R   R“   R”   (    (    (    s7   /var/www/agenderbackend/backoffice/views/batchevents.pyt   <module>   s0   
		ÿ		(	