Ë
    �Ô hÉ  ã                   ó€   — d dl Z ddlmZmZ d dlZd dlmZ  ej                  e«      Z	d„ Z
d„ Zd„ Zd„ Zdd	„Zd
„ Zd„ Zy)é    Né   )ÚChannelÚTariff)Úsettingsc                  ó  — t         j                  › d�} dt         j                  dœ}t        j                  | |¬«      }|j
                  dk(  r£|j                  «       }|j	                  dg «      D ]}  }t        j                  j                  |d   |j	                  dd	«      t        |j	                  d
d«      «      |j	                  dd	«      t        |j	                  dd«      «      dœ¬«       Œ ydd|j
                  › �fS )Nz	/channelsúapplication/json©ÚacceptÚToken©ÚheaderséÈ   ÚchannelsÚidÚnameÚ Úorderr   ÚlinkÚpriceg        )r   r   r   r   )Ú
channel_idÚdefaults)TzChannels updated successfully.FúFailed to fetch data: )r   ÚIPTV_BASE_URLÚ
IPTV_TOKENÚrequestsÚgetÚstatus_codeÚjsonr   ÚobjectsÚupdate_or_createÚintÚfloat©Úurlr   ÚresponseÚdataÚitems        ú1/var/www/skyplay_api_hub/iptv_activation/utils.pyÚfetch_and_update_channelsr)   	   sñ   € Ü×#Ñ#Ð$ IÐ
.€Cà$Ü×$Ñ$ñ€Gô
 �|‰|˜C¨Ô1€Hà×Ñ˜sÒ"Ø�}‰}‹ˆØ—H‘H˜Z¨Ó,ò 		ˆDÜ�O‰O×,Ñ,Ø ™:à ŸH™H V¨RÓ0Ü  §¡¨'°1Ó!5Ó6Ø ŸH™H V¨RÓ0Ü" 4§8¡8¨G°TÓ#:Ó;ñ	ð -õ ð		ð 6àÐ.¨x×/CÑ/CÐ.DÐEÐEÐEó    c            	      óx  — t         j                  › d�} dt         j                  dœ}t        j                  | |¬«      }|j
                  dk(  r^|j                  «       }|j	                  dg «      D ]8  }t        j                  j                  |d   d|j	                  dd	«      i¬
«       Œ: ydd|j
                  › �fS )Nz	/tariffs/r   r	   r   r   Útariffsr   r   r   )Ú
tariffs_idr   )TzTariffs updated successfully.Fr   )
r   r   r   r   r   r   r   r   r   r    r#   s        r(   Úfetch_and_update_tariffsr.   #   s¿   € Ü×#Ñ#Ð$ IÐ
.€Cà$Ü×%Ñ%ñ€Gô �|‰|˜C¨Ô1€Hà×Ñ˜sÒ"Ø�}‰}‹ˆØ—H‘H˜Y¨Ó+ò 	ˆDÜ�N‰N×+Ñ+Ø ™:à˜DŸH™H V¨RÓ0ðð ,õ ð	ð 5àÐ.¨x×/CÑ/CÐ.DÐEÐEÐEr*   c                 óŽ  — t         j                  › d�}dt         j                  ddœ}	 t        j                  || |¬«      }|j
                  dk(  r|j                  «       S t        j                  d|j
                  › d|j                  › �«       y# t        $ r+}t        j                  d	t        |«      › �«       Y d}~yd}~ww xY w)
úr
    Makes a POST request to create an IPTV client.
    Returns response JSON on success, or None on failure.
    ú	/clients/r   ©r
   r   zContent-Type©r   r   r   zIPTV API Error ú: Nz"Exception while calling IPTV API: )r   r   r   r   Úpostr   r   ÚloggerÚerrorÚtextÚ	ExceptionÚ	exceptionÚstr)Úpayloadr$   r   r%   Úes        r(   Úcreate_iptv_clientr>   9   s²   € ô
 ×#Ñ#Ð$ IÐ
.€Cà$Ü×%Ñ%Ø*ñ€Gð	Ü—=‘= ¨7¸GÔDˆØ×Ñ 3Ò&Ø—=‘=“?Ð"ä�L‰L˜?¨8×+?Ñ+?Ð*@ÀÀ8Ç=Á=À/ÐRÔSØøÜò Ü×ÑÐ=¼cÀ!»f¸XÐFÔGÜûðús   ©6B Á /B Â	CÂ!B?Â?Cc                 ó’  — t         j                  › d|› d�}dt         j                  ddœ}	 t        j                  || |¬«      }|j
                  dv r|j                  «       S t        j                  d|j
                  › d|j                  › �«       y	# t        $ r+}t        j                  d
t        |«      › �«       Y d	}~y	d	}~ww xY w)r0   r1   ú/r   r2   r3   ©r   éÉ   zIPTV update client API error r4   Nz&Exception while updating IPTV client: )r   r   r   r   Úpatchr   r   r6   r7   r8   r9   r:   r;   )r<   Ú	client_idr$   r   r%   r=   s         r(   Úupdate_iptv_clientrE   Q   s¿   € ô
 ×#Ñ#Ð$ I¨i¨[¸Ð
:€Cð %Ü×$Ñ$Ø*ñ€Gð	Ü—>‘> #¨G¸WÔEˆØ×Ñ :Ñ-Ø—=‘=“?Ð"ä�L‰LÐ8¸×9MÑ9MÐ8NÈbÐQY×Q^ÑQ^ÐP_Ð`ÔaØøÜò Ü×ÑÐAÄ#ÀaÃ&ÀÐJÔKÜûðús   ¬5B Á"/B Â	CÂ!CÃCc                 óÚ  — t         j                  › d| › �}dt         j                  ddœ}||dt         j                  t         j                  |dœ}	 t        j                  |||¬«      }|j                  dv r|j                  «       S t        j                  d|j                  › d	|j                  › �«       y # t        $ r+}t        j                  d
t        |«      › �«       Y d }~y d }~ww xY w)Nú/deviceCode/r   r2   Údtvsol)ÚcodeÚmacÚtypeÚproxyIdÚtariffIdÚnoter3   rA   zDevice add API error r4   z(Exception while calling Device Add API: )r   r   r   ÚIPTV_PROXY_SERVER_IDÚ	TARIFF_IDr   r5   r   r   r6   r7   r8   r9   r:   r;   )	rD   rI   rJ   rN   r$   r   r<   r%   r=   s	            r(   Úadd_device_coderQ   l   sÜ   € Ü×#Ñ#Ð$ L°°Ð
<€Cà$Ü×$Ñ$Ø*ñ€Gð ØØÜ×0Ñ0Ü×&Ñ&Øñ€Gð	Ü—=‘= ¨7¸GÔDˆØ×Ñ :Ñ-Ø—=‘=“?Ð"ä�L‰LÐ0°×1EÑ1EÐ0FÀbÈÏÉÈÐXÔYØøÜò Ü×ÑÐCÄCÈÃFÀ8ÐLÔMÜûðús   Á5B6 Â/B6 Â6	C*Â?!C%Ã%C*c                 óŽ  — t         j                  › d| › �}dt         j                  dœ}	 t        j                  ||¬«      }|j
                  dk(  r|j                  «       S t        j                  d|j
                  › d|j                  › �«       y # t        $ r+}t        j                  dt        |«      › �«       Y d }~y d }~ww xY w)	NrG   r   r	   r   r   zDevice code fetch failed r4   z&Exception while fetching device code: ©r   r   r   r   r   r   r   r6   r7   r8   r9   r:   r;   )rD   r$   r   r%   r=   s        r(   Úget_device_coderT   ˆ   s°   € Ü×#Ñ#Ð$ L°°Ð
<€Cà$Ü×$Ñ$ñ€Gð
	Ü—<‘< ¨WÔ5ˆØ×Ñ 3Ò&Ø—=‘=“?Ð"ä�L‰LÐ4°X×5IÑ5IÐ4JÈ"ÈXÏ]É]ÈOÐ\Ô]ØøÜò Ü×ÑÐAÄ#ÀaÃ&ÀÐJÔKÜûðúó   ª5B Á /B Â	CÂ!B?Â?Cc                 óŽ  — t         j                  › d| › �}dt         j                  dœ}	 t        j                  ||¬«      }|j
                  dk(  r|j                  «       S t        j                  d|j
                  › d|j                  › �«       y # t        $ r+}t        j                  dt        |«      › �«       Y d }~y d }~ww xY w)	Nz/search/name/phone/r   r	   r   r   zSearch API failed r4   z$Exception while calling search API: rS   )Úphoner$   r   r%   r=   s        r(   Úsearch_client_by_phonerX   š   s±   € Ü×#Ñ#Ð$Ð$7¸°wÐ
?€Cà$Ü×$Ñ$ñ€Gð
	Ü—<‘< ¨WÔ5ˆØ×Ñ 3Ò&Ø—=‘=“?Ð"ä�L‰LÐ-¨h×.BÑ.BÐ-CÀ2ÀhÇmÁmÀ_ÐUÔVØøÜò Ü×ÑÐ?ÄÀAÃ¸xÐHÔIÜûðúrU   )r   r   Útest)r   Úmodelsr   r   ÚloggingÚdjango.confr   Ú	getLoggerÚ__name__r6   r)   r.   r>   rE   rQ   rT   rX   © r*   r(   ú<module>r`      sJ   ðó ß #Û Ý  Ø	ˆ×	Ñ	˜8Ó	$€òFò4Fò,ò0ó6ò8ó$r*   