Ë
    ÚÍ�j  ã                  ó¤   — d Z ddlmZ ddlZddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZ  ed«      Z ed	«      Z ed
«      Zdd„Zdd„Zdd„Zdd„Zy)a  
Modulo de agregacao avancada dos pageviews da landing (UTM/click-ids).

Le /opt/mia/workspace/clientes/px3lab/tracking/pageviews.jsonl e retorna:
- curva diaria
- distribuicao por utm_source
- top campanhas (utm_campaign)
- top paginas visitadas
- % com fbclid vs sem
é    )ÚannotationsN)ÚdatetimeÚ	timedeltaÚtimezone)ÚPath)ÚIterable)ÚZoneInfozAmerica/Sao_PauloÚUTCz;/opt/mia/workspace/clientes/px3lab/tracking/pageviews.jsonlc               #  ó2  K  — t         j                  «       sy 	 t         j                  dd¬«      5 } | D ]-  }|j                  «       }|sŒ	 t	        j
                  |«      –— Œ/ 	 d d d «       y # t        $ r Y ŒEw xY w# 1 sw Y   y xY w# t        $ r Y y w xY w­w)NÚrzutf-8)Úencoding)ÚPAGEVIEWS_FILEÚexistsÚopenÚstripÚjsonÚloadsÚ	Exception)ÚfÚlines     ú</opt/mia/workspace/clientes/px3lab/dashboard/pageviews_lp.pyÚ_iter_pageviewsr      s£   è ø€ Ü× Ñ Ô"ØðÜ× Ñ  ¨wÐ Ó7ð 	¸1Øò �Ø—z‘z“|�ÙØðÜŸ*™* TÓ*Ó*ñ÷	ð 	øô !ò Ùðú÷	ð 	ûô ò Ùðüso   ‚B™B °A<Á
A-Á!A<Á$B Á,BÁ-	A9Á6A<Á8A9Á9A<Á<BÂB ÂBÂB Â	BÂBÂBÂBc                ór   — | sy 	 t        j                  | j                  dd«      «      S # t        $ r Y y w xY w)NÚZz+00:00)r   ÚfromisoformatÚreplacer   )Úvs    r   Ú	_parse_dtr   +   s;   € ÙØðÜ×%Ñ% a§i¡i°°XÓ&>Ó?Ð?øÜò Ùðús   …$* ª	6µ6c                óÞ   — | xs dj                  «       } | sy| j                  d«      d   } | j                  d«      r	 ddlm}  || «      j
                  xs d} | xs dS # t        $ r Y Œw xY w)NÚ ú/ú?r   Úhttp)Úurlparse)r   ÚsplitÚ
startswithÚurllib.parser$   Úpathr   )Úpr$   s     r   Ú
_norm_pager*   4   sp   € Ø	
Šˆb�‰Ó€AÙØà	�‰�‹�Q‰€Aà‡|�|�FÔð	Ý-Ù˜“× Ñ Ò' CˆAð Š8�€Oøô ò 	Ùð	ús   ¾A  Á 	A,Á+A,c                ó¸  — d}d}i }i }i }i }t        «       D �]f  }t        |j                  dd«      «      }	|	r| |	cxk  r|k  sn Œ/|dz  }|j                  d«      r|dz  }|j                  d«      xs dj                  «       j	                  «       xs d}
|j                  |
d«      dz   ||
<   |j                  d«      xs dj                  «       j	                  «       }|r|j                  |d«      dz   ||<   t        |j                  d	«      xs |j                  d
«      xs d«      }|j                  |d«      dz   ||<   |	j                  t        «      j                  d«      }|j                  |d«      dz   ||<   �Œi ddd„}g }t        |j                  «       «      D ]@  }	 t        j                  |d«      j                  d«      }|j                  ||||   dœ«       ŒB |rt        ||z  dz  d«      nd}||||z
  || ||dd¬«       ||dd¬«       ||dd¬«      t        j                   t"        «      j%                  d¬«      dœ	S # t        $ r |}Y ŒŽw xY w)z*Le todos os pageviews e agrega no periodo.r   Útsr    é   ÚfbclidÚ
utm_sourcezdireto/organicoÚutm_campaignÚpager(   r!   z%Y-%m-%dé
   c                óð   — | sg S t        | j                  «       «      xs d}| j                  «       D ��cg c]  \  }}||d|dt        ||z  dz  d«      i‘Œ }}}|j	                  d„ ¬«       |d | S c c}}w )Nr-   ÚqtdÚpctéd   c                ó   — | d    S )Nr4   © )Úxs    r   ú<lambda>z+agregar.<locals>._ranking.<locals>.<lambda>k   s   €   5¡ 	€ ó    )Úkey)ÚsumÚvaluesÚitemsÚroundÚsort)ÚdÚkey_nameÚtopÚsomaÚkr   Úrowss          r   Ú_rankingzagregar.<locals>._rankingc   s…   € ÙØˆIÜ�1—8‘8“:‹Ò# !ˆð Ÿ™›	÷
á��1ð �q˜%  E¬5°°T±¸C±ÀÓ+CÒDð
ˆñ 
ð 	�	‰	Ñ)ˆ	Ô*Ø�D�SˆzÐùó
s   µ"A2z%d/%m)ÚdataÚdata_isoÚ	pageviewsr6   g        Úsource)rD   ÚcampanhaÚpaginaé   Úseconds)Útimespec)	ÚtotalÚ
com_fbclidÚ
sem_fbclidÚ
pct_fbclidÚcurva_diariaÚ
por_sourceÚpor_campanhaÚ
por_paginaÚ	gerado_em)r2   )rB   zdict[str, int]rC   ÚstrrD   ÚintÚreturnz
list[dict])r   r   Úgetr   Úlowerr*   Ú
astimezoneÚTZ_BRÚstrftimeÚsortedÚkeysr   Ústrptimer   Úappendr@   ÚnowÚTZ_UTCÚ	isoformat)Ú
inicio_utcÚfim_utcrR   rS   rW   rX   rY   Úpor_diaÚpvÚdtÚsrcÚcampÚpgÚdata_brrH   ÚcurvarB   ÚlabelrU   s                      r   Úagregarru   D   sc  € à€EØ€JØ!#€JØ#%€LØ!#€JØ €GäÓó 7ˆÜ�r—v‘v˜d BÓ'Ó(ˆÙ˜*¨Ô5¨gÔ5ØØ�‰
ˆà�6‰6�(ÔØ˜!‰OˆJà�v‰v�lÓ#Ò8Ð'8×?Ñ?ÓA×GÑGÓIÒ^ÐM^ˆØ$Ÿ.™.¨¨aÓ0°1Ñ4ˆ
�3‰à—‘�~Ó&Ò,¨"×3Ñ3Ó5×;Ñ;Ó=ˆÙØ!-×!1Ñ!1°$¸Ó!:¸QÑ!>ˆL˜Ñä˜Ÿ™˜v›Ò?¨"¯&©&°«.Ò?¸CÓ@ˆØ#Ÿ™¨¨AÓ.°Ñ2ˆ
�2‰à—-‘-¤Ó&×/Ñ/°
Ó;ˆØ"Ÿ;™; w°Ó2°QÑ6ˆ�Óð)7ô,	ð €EÜ�G—L‘L“NÓ#ò Nˆð	Ü×%Ñ% a¨Ó4×=Ñ=¸gÓFˆEð 	�‰˜e°ÀÈÁÑLÕMðNñ 8=”�z EÑ)¨CÑ/°Ô3À#€Jð Ø Ø˜jÑ(Ø ØÙ˜z¨8¸Ô<Ù  ¨z¸rÔBÙ˜z¨8¸Ô<Ü—\‘\¤&Ó)×3Ñ3¸YÐ3ÓGñ
ð 
øô ò 	ØŠEð	ús   Æ%%IÉIÉI)r]   zIterable[dict])r   r[   )r)   r[   r]   r[   )rj   r   rk   r   r]   Údict)Ú__doc__Ú
__future__r   r   r   r   r   Úpathlibr   Útypingr   Úzoneinfor	   ra   rh   r   r   r   r*   ru   r8   r;   r   ú<module>r|      sT   ðñ	õ #ã ß 2Ñ 2Ý Ý Ý áÐ$Ó%€Ù	�%‹€áÐSÓT€óó"óô >r;   