U
    d!J                     @   sF  d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ ddlmZmZmZmZmZmZmZmZmZmZmZ dd	d
dddddgddddddgdddddddddddd d!g
dd"d#d$d%gdd&d&d'd(gdd)d*d+d,d-gdd.d/d0d1gdd2d3d4d5d6d7gdd8d9d:gdd;d<d
d=d>d?gdd@dAdBgddCdDdEdFdGgdgZedHdIdJZedKZG dLdM dMeZG dNdO dOeZG dPdQ dQeZdRdS ZdTdU ZdVdW Z G dXdY dYeZ!G dZd[ d[eZ"G d\d] d]eZ#G d^d_ d_eZ$G d`da daeZ%G dbdc dceZ&G ddde deeZ'G dfdg dgeZ(G dhdi dieZ)dS )j    Nrender)TemplateView)JsonResponse)View   )speech_wordsexcel_to_json_epgexcel_to_json_viewsadd_show_to_viewsadd_calcul_to_epggenerate_static_jsonget_excel_adscount_ads_by_brandget_brands_by_idget_week_datescount_ads_by_date zSelect a Categorie)idnameZtelecommunicationsZTelecommunicationsZInwiZOrangezMaroc-Telecom)r   r   brandsZ
automotiveZ
AutomotiveZDaciaZSkodaZpeugeotzfood-and-beveragezFood and BeverageZAichaZDariStarZKaynaz
La prairieZAstaZLeader_ChipsZLesieurZKinderZConikosZtravelZTravelZoncefZramZHomeZrichbondZLbassmazhealth-and-beautyzHealth and BeautyZGarnierZorielZMiaz"laundry-detergents-and-fabric-carez"Laundry detergents and fabric careZArialZMioZretailZRetailZ	CarrefourZMarjanezElectro-planetzmorocco-mallZ	educationZ	EducationZOFPPTZ
governmentZ
Governmentz
non-profitz
Non-profitZNARSAZgazZGazz	Tisir-gazZfinanceZFinancez	cash plusZchaabiZsendwavez7/var/www/html/Presentation_Mo_V2/src/media/2mepg_2.xlsxZdiffusions_2023_05_15)filepathZ
sheet_namez>/var/www/html/Presentation_Mo_V2/src/media/extracted_data.xlsxc                       s    e Zd ZdZ fddZ  ZS )DashboardViewzpages/index.htmlc                    s   i }t  jf |}||d< |S Ndatasuperget_context_dataselfkwargsr   context	__class__ </var/www/html/Presentation_Mo_V2/src/apps/dashboard/views.pyr   k   s    zDashboardView.get_context_data__name__
__module____qualname__template_namer   __classcell__r%   r%   r#   r&   r   h   s   r   c                       s    e Zd ZdZ fddZ  ZS )PiracyControlViewzpages/piracy_control.htmlc                    s   i }t  jf |}||d< |S r   r   r   r#   r%   r&   r   x   s    z"PiracyControlView.get_context_datar'   r%   r%   r#   r&   r-   u   s   r-   c                       s    e Zd ZdZ fddZ  ZS )VideoAdvertisingViewzpages/video_advertising.htmlc                    s   i }t  jf |}||d< |S r   r   r   r#   r%   r&   r      s    z%VideoAdvertisingView.get_context_datar'   r%   r%   r#   r&   r.      s   r.   c                    sf   t d g }tD ]H}|dg }|ddkr8||  fdd|D }|r|| qt|ddS )	NF/var/www/html/Presentation_Mo_V2/src/media/media_planning_14-21_v2.csvr   r   r   c                    s&   g | ] t  fd dD r qS )c                 3   s   | ]}| d  kV  qdS )ZBrandN)get).0adZbrandr%   r&   	<genexpr>   s     z,get_categories.<locals>.<listcomp>.<genexpr>)any)r1   ads_datar3   r&   
<listcomp>   s      z"get_categories.<locals>.<listcomp>Fsafe)r   categories_datar0   appendr   )requestZupdated_categoriescategoryr   Zmatching_brandsr%   r6   r&   get_categories   s    
r?   c                 C   s0   g }t D ]}d|kr||d  qtd|iS )z=
    Returns a list of all brands across all categories.
    r   )r;   extendr   )r=   Z
all_brandsr>   r%   r%   r&   
get_brands   s
    rA   c                 C   s>   t D ],}|d |krd|krtd|d i  S qtdg iS )zK
    Returns a list of brands associated with the given category name.
    r   r   )r;   r   )r=   category_idr>   r%   r%   r&   get_brands_by_category   s    rC   c                   @   s   e Zd Zdd Zdd ZdS )MediaPlanningViewc                 C   s   d}i }t |||S )Nzpages/media_planning.htmlr   r    r=   r+   r"   r%   r%   r&   r0      s    zMediaPlanningView.getc                    s8  |j d}|j d}|j d}|j d}|j d}td}|r|dkr|dkrhd	tt|n|}t||}	d
|	d}
n|r|dkrt  dt|t	|dg}	d|	d}
nv|r(|dkr(dd l
 dddddddg}d}g }	|D ].} fddt|D }||d}|	| qd|	d}
ni }
t|
ddS )NrB   r   weekdayvaluer/   Zcomparison_brands_categoryr   ,ZPieAdsChart)Zchartr   Zcolumns_ads_chartz	Ads Count)r   r   ZColumnsAdsChartZspline_ads_chartr   MonTueWedThuFriSatSun   c                    s   g | ]}  d dqS )r      )randint)r1   _randomr%   r&   r8     s     z*MediaPlanningView.post.<locals>.<listcomp>ZSplineAdsChartapplication/jsoncontent_type)POSTr0   r   joinr   r;   r   printr   r   rV   ranger<   r   )r    r=   rB   Zbrands_listZselected_weekZselected_dayZ
chart_typer7   Z	brand_strZ
chart_dataresponsenamesZnum_data_pointsr   Zdata_pointsitemr%   rU   r&   post   sD    

zMediaPlanningView.postNr(   r)   r*   r0   ra   r%   r%   r%   r&   rD      s   rD   c                   @   s   e Zd Zdd Zdd ZdS )StatsAndEPGViewc                 C   s   d}i }t |||S )Nzpages/stats_and_epg.htmlr   rE   r%   r%   r&   r0     s    zStatsAndEPGView.getc                    s   |j d}|rtj|d  t|  fddtD } fddtD }t||}t	||}||d}t| t
|ddS t
i ddS )	Ndate%Y-%m-%dc                    s*   g | ]"}t j |d  d  kr|qS rd   re   datetimestrptimerd   r1   ZdatumZdate_objr%   r&   r8   !  s      z(StatsAndEPGView.post.<locals>.<listcomp>c                    s*   g | ]"}t j |d  d  kr|qS rf   rg   rj   rk   r%   r&   r8   "  s      )Zviewership_dataepg_datarW   rX   )rZ   r0   rh   ri   rd   r\   rl   
views_datar   r   r   )r    r=   rd   Zfiltered_epg_dataZfiltered_views_datar   r%   rk   r&   ra     s    

zStatsAndEPGView.postNrb   r%   r%   r%   r&   rc     s   rc   c                   @   s   e Zd Zdd Zdd ZdS )VideoAnalysisViewc                 C   s   d}i }t |||S )Nzpages/video_analysis.htmlr   rE   r%   r%   r&   r0   1  s    zVideoAnalysisView.getc              	   C   sJ   t dddd}tdd}| }W 5 Q R X t|}||d}t|dd	S )
Nzb/var/www/html/Presentation_Mo_V2/src/media/Info_Soir_Dimanche_07_Mai_2023_2023_05_08_19_46_02.jsonzi/var/www/html/Presentation_Mo_V2/src/media/Info_Soir_Dimanche_07_Mai_2023_2023_05_08_19_46_02_static.jsonP   )Zconfidence_valuezP/var/www/html/Presentation_Mo_V2/src/media/Info_Soir_Dimanche_07_Mai_2023_v2.txtr)detected_objectsr   rW   rX   )r   openreadr   r   )r    r=   rq   filetextZobj_speech_wordsanalysis_resultsr%   r%   r&   ra   6  s    zVideoAnalysisView.postNrb   r%   r%   r%   r&   rn   /  s   rn   c                   @   s   e Zd Zdd Zdd ZdS )CommentsAnalyzerViewc                 C   s   d}i }t |||S )Nzpages/comments_analyzer.htmlr   rE   r%   r%   r&   r0   P  s    zCommentsAnalyzerView.getc              	   C   s   |j d}td td|  td tdd}| }W 5 Q R X zt|}d|dd	}W n* tj	k
r   d|
d
ddd	}Y nX t|ddS )NresultsZpython3_startz7python3 /var/www/html/exportcomments/youtube_export.py Zpython3_endz'/var/www/html/exportcomments/temp2.jsonrp   Tjson)successr   typerI   z,
ru   Fr9   )rZ   r0   r\   ossystemrr   rs   ry   loadsJSONDecodeErrorreplacer   )r    r=   urlfZfile_contentsZ	json_datarv   r%   r%   r&   ra   V  s    
zCommentsAnalyzerView.postNrb   r%   r%   r%   r&   rw   N  s   rw   c                   @   s   e Zd Zdd Zdd ZdS )VideoSubtitlesViewc                 C   s   d}i }t |||S )Nzpages/video_subtitles.htmlr   rE   r%   r%   r&   r0     s    zVideoSubtitlesView.getc                 C   s   d S )Nr%   )r    r=   r%   r%   r&   ra     s    zVideoSubtitlesView.postNrb   r%   r%   r%   r&   r     s   r   c                   @   s   e Zd Zdd ZdS )AdvertisersViewc                 C   s8   d}ddddddddd	dd
ddgi}t |||S )Nzpages/advertisers.htmlr   Panzani - Zakiazadvertisers/Panzani-Zakia/2.png)
brand_nameZ	brand_imgIsla Delicezadvertisers/Isla_Delice/4.pngWestern Unionzadvertisers/Western_Union/3.pngWafacashz!advertisers/wafacash/wafacash.pngr   rE   r%   r%   r&   r0     s"    zAdvertisersView.getNr(   r)   r*   r0   r%   r%   r%   r&   r     s   r   c                   @   s   e Zd Zdd ZdS )AdvertiserViewc              	   C   sv   d}dddgdddgdddd	d
dgdddgdddddddddgd}| |g }||d}t|||S )Nzpages/advertiser.htmlzPanzani Zakia Spot Adz8advertisers/Panzani-Zakia/panzani_zakia_Spot_Video_1.mp4)title	video_srczIsla Delice Spot Adz)advertisers/Isla_Delice/Isla_Delice_1.mp4zWestern Union English Spot Adz-advertisers/Western_Union/wu_ad_english_1.mp4zWestern Union French Spot Adz,advertisers/Western_Union/wu_ad_french_1.mp4zwafacash Spot Adz(advertisers/wafacash/WAFACASH_Arab_1.mp4zFiller 1z%advertisers/Fillers/Filler_1_omnt.mp4zFiller 2z%advertisers/Fillers/Filler_2_omnt.mp4zFiller 3z%advertisers/Fillers/Filler_3_omnt.mp4)r   r   r   r   ZFillers)r   brand_videos)r0   r   )r    r=   r   r+   r   Zbrand_videos_for_displayr"   r%   r%   r&   r0     s(    zAdvertiserView.getNr   r%   r%   r%   r&   r     s   r   c                       s    e Zd ZdZ fddZ  ZS )AdvertisingInterfaceViewzpages/interface.htmlc                    s   i }t  jf |}||d< |S r   r   r   r#   r%   r&   r     s    z)AdvertisingInterfaceView.get_context_datar'   r%   r%   r#   r&   r     s   r   c                   @   s    e Zd ZdZdd Zdd ZdS )
ReportViewzpages/reports.htmlc                 C   sJ   ddt dd t dd dddt d	d t d
d dd}|S )NEl Mektoub - S2 Ep16Zk2NmnIF3hGUzP/var/www/html/Presentation_Mo_V2/src/media/reports/report_Al _Maktoub_S2-E16.txtrp   zS/var/www/html/Presentation_Mo_V2/src/media/reports/comments_Al _Maktoub_S2-E16.json)r   r   reportcommentsEl Mektoub - S2 Ep30 LastZiAeuBV0eN7czP/var/www/html/Presentation_Mo_V2/src/media/reports/report_Al _Maktoub_S2-E30.txtzS/var/www/html/Presentation_Mo_V2/src/media/reports/comments_Al _Maktoub_S2-E30.json)r   r   )rr   rs   )r    reports_dictr%   r%   r&   get_reports_dict  s    zReportView.get_reports_dictc                 C   s&   |   }d||i i}t|| j|S )Nr   )r   r0   r   r+   )r    r=   Z	show_namer   r"   r%   r%   r&   r0     s    zReportView.getN)r(   r)   r*   r+   r   r0   r%   r%   r%   r&   r     s   r   )*rh   r|   ry   ZjsonlintZdjango.shortcutsr   Zdjango.views.genericr   django.httpr   django.viewsr   utilsr   r	   r
   r   r   r   r   r   r   r   r   r;   rl   rm   r   r-   r.   r?   rA   rC   rD   rc   rn   rw   r   r   r   r   r   r%   r%   r%   r&   <module>   s    4	
PY@
"