Ë
    �Ô hž!  ã                   óÐ   — 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 d dlm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mZ  ej2                  e«      Zd„ Zd„ Zd„ Zd„ Zy)é    )ÚJsonResponseé   )ÚChannel)Úmessages)Úfetch_and_update_channelsÚfetch_and_update_tariffsÚcreate_iptv_clientÚupdate_iptv_clientÚadd_device_codeÚget_device_codeÚsearch_client_by_phone)ÚredirectN)Úsettings)Ú	timedelta)Útimezone)ÚIPTVActivationLogÚSkylinkIPTVPlanc                 ó�   — t         j                  j                  «       j                  ddddd«      }t	        t        |«      d¬«      S )NÚidÚnameÚorderÚlinkÚpriceF)Úsafe)r   ÚobjectsÚallÚvaluesr   Úlist)ÚrequestÚchannelss     ú1/var/www/skyplay_api_hub/iptv_activation/views.pyÚchannel_listr"      s8   € Ü�‰×"Ñ"Ó$×+Ñ+¨D°&¸'À6È7ÓS€HÜœ˜X›¨UÔ3Ð3ó    c                 ó8   — t        «       \  }}t        ||dœ«      S )N©ÚsuccessÚmessage)r   r   )r   r&   r'   s      r!   Úupdate_channels_viewr(      s   € Ü0Ó2Ñ€GˆWÜ G¸Ñ@ÓAÐAr#   c                 ó¤   — t        «       \  }}|rt        j                  nt        j                  }t        j                  | ||«       t        d«      S )zm
    View to fetch and update tariffs from the API.
    Triggered by a button click in the Django admin.
    z..)r   r   ÚSUCCESSÚERRORÚadd_messager   )r   r&   ÚmsgÚlevels       r!   Úupdate_tariffsr/      sC   € ô
 ,Ó-�L€GˆSñ !(ŒH×Ò¬X¯^©^€EÜ×Ñ˜ %¨Ô-ô �D‹>Ðr#   c                 óH	  — | j                   dk7  rt        dddœ«      S 	 | j                  }|j                  di g«      d   }|j                  d«      |j                  d«      |j                  d	«      }}}d
}|r|st        dddœ«      S | j                  j                  d«      }|sƒt        |«      }|r|j                  d«      dk7  rt        dddœ«      S |j                  dg «      }t        |«      dk(  rt        dddœ«      S t        |«      dkD  rt        ddd|dœ«      S |d   d   }t        j                  j                  |dd¬«      j                  d«      j                  «       }	|	rH|	j                  r<|	j                  t        j                  «       kD  rt        dd|	j                  › �dœ«      S |j                  dd«      }
t!        |j                  dd«      xs d«      }	 t#        |
«      }
|dkD  r|
|z  }
t&        j                  j                  |
d¬«      j)                  d«      j                  «       }|r>|j*                  j-                  «       r$|j*                  j                  «       j.                  nt0        j2                  }|j                  dd «      d!|j                  d"d «      ||dddd#t0        j4                  t0        j6                  |d$œd%œ}i }d}|r2t0        j8                  › d&|› d'�}t;        ||«      }d(|||d)œ|d*<   i |d+<   n-t0        j8                  › d&�}t=        |«      }d|||d)œ|d+<   i |d*<   d d d,t0        j6                  |d!d-œ}t0        j8                  › d.|› �}t?        |d d ¬/«      }|||d0œ|d1<   |j                  d«      dk(  r+tA        |«      }|r|j                  d2d3«      nd3}|i |d0œ|d4<   n6d5}t        j                  jC                  ||d6||||¬7«       t        d|dœ«      S t        j                  «       tE        d8¬9«      z   }t        j                  jC                  ||d:d;||d<d=||¬>«
       |}t        dd?|› �dœ«      S # t$        $ r d}
Y �Œmw xY w# tF        $ r9}tH        jK                  d@tM        |«      › �«       t        ddAdœ«      cY d }~S d }~ww xY w)BNÚGETFzInvalid requestr%   Údisplay_paramr   r   ÚphoneÚemaill   ~~!	 zSession data missingÚiptv_client_idÚresultÚokzFailed to fetch client listÚnamesz&No client found with this phone numberr   Tz*Multiple clients found. Please select one.)r&   Úmultipler'   Úclients)Ú	client_idÚactivation_code__isnullÚexpired_date__isnullz-idz0IPTV already activated. Your activation code is Úskylink_plan_amountÚbilling_cycleg        Úactive)ÚamountÚstatusÚtariffsr   Ú ÚtestÚaddress_cityzIt is test data)ÚproxyServerIdÚtariffId)r   ÚnieÚaddressr3   r4   ÚvipÚvodÚ	timeshiftÚnoteÚlimitÚdataz	/clients/ú/é   )ÚflagÚendpointr   ÚresponseÚupdate_clientÚ
add_clientÚdtvsol)ÚcodeÚmacÚtypeÚproxyIdrH   rN   z/deviceCode/)rY   rZ   )rT   r   rU   Ú
add_deviceÚ
deviceCodeÚUnknownr   zFailed to add device.ÚFailed)r;   Úphone_numberrB   r'   ÚinputÚoutputrT   é   )ÚdaysÚSuccesszIPTV activated successfully.éÈ   zAll APIs Used)
r;   ra   rB   r'   rb   rc   Úresponse_statusrT   Úexpired_dateÚactivation_codez5IPTV activated successfully. Your activation code is zIPTV request failed: zKSomething went wrong while processing your request. Please try again later.)'Úmethodr   ÚsessionÚgetr1   r   Úlenr   r   ÚfilterÚorder_byÚfirstri   r   Únowrj   ÚintÚfloatÚ
ValueErrorr   Úprefetch_relatedrC   Úexistsr   r   Ú	TARIFF_IDÚ
IPTV_LIMITÚIPTV_PROXY_SERVER_IDÚIPTV_BASE_URLr
   r	   r   r   Úcreater   Ú	ExceptionÚloggerÚerrorÚstr)r   rl   Úclient_datar;   r3   r4   r5   Úsearch_resultr8   Ú	log_entryrA   r?   ÚplanÚ	tariff_idÚpayloadÚ
output_logÚexisting_userrT   Úresponse_dataÚdevice_payloadÚdevice_endpointÚdevice_responseÚ	code_dataÚdevice_coder'   ri   rj   Úes                               r!   Úrequest_iptvr�   '   s  € à‡~�~˜ÒÜ¨Ð:KÑLÓMÐMðpJØ—/‘/ˆØ—k‘k /°B°4Ó8¸Ñ;ˆØ"-§/¡/°$Ó"7¸¿¹ÈÓ9QÐS^×SbÑSbÐcjÓSk˜%�5ˆ	àˆá¡Ü¨EÐ>TÑ UÓVÐVð !Ÿ™Ÿ™Ð)9Ó:ˆñ ä2°5Ó9ˆMÙ  M×$5Ñ$5°hÓ$?À4Ò$GÜ#°ÐB_Ñ$`ÓaÐaà!×%Ñ% g¨rÓ2ˆEÜ�5‹z˜QŠÜ#°ÐBjÑ$kÓlÐlä�5‹z˜AŠ~ä#Ø$Ø $ØKØ$ñ	%ó ð ð # 1™X d™^ˆNô &×-Ñ-×4Ñ4Ø(Ø(-Ø%*ð 5ó ÷ ‰h�u‹oŸe™e›gð	 	ñ ˜×/Ò/°I×4JÑ4JÌXÏ\É\Ë^Ò4[ÜØØMÈi×NgÑNgÐMhÐiñ!ó ð ð —‘Ð2°AÓ6ˆÜ˜GŸK™K¨¸Ó;Ò@¸qÓAˆð	Ü˜6“]ˆFð
 ˜1ÒØ�mÑ#ˆFô ×&Ñ&×-Ñ-°VÀHÐ-ÓM×^Ñ^Ð_hÓi×oÑoÓqˆÙ/3¸¿¹×8KÑ8KÔ8M�D—L‘L×&Ñ&Ó(×+Ò+ÔS[×SeÑSeˆ	ð  —O‘O F¨BÓ/ØØ"—‘ ~°rÓ:ØØØØØØ%Ü×(Ñ(ä!)×!>Ñ!>Ø%ññ
ˆð" ˆ
ð ˆñ
 Ü"×0Ñ0Ð1°¸>Ð:JÈ!ÐLˆHÜ.¨w¸ÓGˆMØ34À(ÐW^ÐlyÑ*zˆJ�Ñ'Ø')ˆJ�|Ò$ä"×0Ñ0Ð1°Ð;ˆHÜ.¨wÓ7ˆMØ01¸xÐT[ÐivÑ'wˆJ�|Ñ$Ø*,ˆJ�Ñ'ð ˜r¨8Ü×4Ñ4Ø!¨6ñ
ˆô
 &×3Ñ3Ð4°LÀÐ@PÐQˆÜ)¨.¸rÀrÔJˆð (Ø%Ø'ñ$
ˆ
�<Ñ ð ×Ñ˜xÓ(¨DÒ0Ü'¨Ó7ˆIÙDM˜)Ÿ-™-¨°iÔ@ÐS\ˆKà+ØØ%ñ-ˆJÐ(Ò)ð .ˆGÜ×%Ñ%×,Ñ,Ø(Ø"ØØØØ!Ø(ð -ô ô  ¨E¸gÑ FÓGÐGô  —|‘|“~¬	°rÔ(:Ñ:ˆä×!Ñ!×(Ñ(Ø$ØØØ2ØØØØ$Ø%Ø'ð 	)ô 	
ð &ˆäØØNÈÐN_Ð`ñ
ó ð 	øôY ò 	Ø‹Fð	ûôb ò JÜ�‰Ð,¬S°«V¨HÐ5Ô6Ü¨ð  ;Hñ  Ió  Jõ  	JûðJúsj   ŸA(Q ÂAQ Ã-Q ÄQ Ä BQ Æ11Q Ç#Q Ç.HQ Ï0AQ ÑQÑQ ÑQÑQ Ñ	R!Ñ(.RÒR!ÒR!) Údjango.httpr   Úmodelsr   Údjango.contribr   Úutilsr   r   r	   r
   r   r   r   Údjango.shortcutsr   ÚloggingÚdjango.confr   Údatetimer   Údjango.utilsr   r   r   Ú	getLoggerÚ__name__r~   r"   r(   r/   r�   © r#   r!   ú<module>r�      s]   ðÝ $Ý Ý #÷ i÷  iñ  iÝ %Û Ý  Ý Ý !ß 6ð 
ˆ×	Ñ	˜8Ó	$€ò4òBòóuJr#   