
     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&'67SH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GW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    
 ,-LGS !(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      }|st        |      }|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        d89      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//kk/B48;"-//$"79QS^SbSbcjSk%5	E>T UVV !)9: 259M M$5$5h$?4$G#B_$`aa!%%gr2E5zQ#Bj$kll5zA~#$ $K$	%   #1Xd^N &--44((-%* 5  huoeeg	 	 //I4J4JX\\^4[MiNgNgMhi!   2A6GKK;@qA	6]F
 1m#F &&--VH-M^^_hiooq/38K8K8MDLL&&(++S[SeSe	  OOFB/"~r:%((!)!>!>%
" 
 
 "001>:J!LH.wGM34(W^ly*zJ'')J|$"001;H.w7M01xT[iv'wJ|$*,J' r844!6

 &334L@PQ).rrJ (%'$

<  x(D0'7IDM)--i@S\K+%-J() .G%%,,("!( -   Eg FGG  ||~	r(::!!(($2$%' 	) 	
 &NN_`
  	Y  	F	b  J,SVH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#   