o
    [\‹bº ã                   @   sô  d dl mZ d dlmZ d dlm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mZmZ dd	lT d d
lZd d
lZd dlmZ d d
lZd dlmZ d dlm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$Z$d dl%m&Z& d d
l'Z'd d
l(Z(d dl)m*Z* d dl+m,Z, d d
l-Z-d d
l.Z.d dl-m/Z/ d dl0m1Z1 d d
l2Z2ddl3m4Z4 G dd„ deƒZ5G dd„ deƒZ6G dd„ deƒZ7G dd„ deƒZ8G dd „ d eƒZ9G d!d"„ d"eƒZ:G d#d$„ d$eƒZ;G d%d&„ d&eƒZ<G d'd(„ d(eƒZ=G d)d*„ d*eƒZ>G d+d,„ d,eƒZ?G d-d.„ d.eƒZ@G d/d0„ d0eƒZAG d1d2„ d2eƒZBG d3d4„ d4eƒZCd5d6„ ZDd7d8„ ZEG d9d:„ d:eƒZFG d;d<„ d<eƒZGd=d>„ ZHG d?d@„ d@eƒZIG dAdB„ dBeƒZJdCdD„ ZKdEdF„ ZLd dGlMmZmNZN d dHlmZ G dIdJ„ dJeNƒZOG dKdL„ dLeƒZPd
S )Mé    )Úrender)ÚTemplateView)ÚUser)ÚauthenticateÚloginÚlogout)Úreverse)Úredirect)ÚHttpResponseÚHttpResponseRedirectÚJsonResponseé   )Ú*N)Úsettings)ÚSMTPException)ÚEmailMessage)ÚImage)Úuser_redirect)Úmethod_decorator)Úmessages)Ú	Paginator)Úctime)ÚQRCode)Ú	send_mail)Ú
getbalancec                       ó    e Zd ZdZ‡ fdd„Z‡  ZS )ÚCreateAddressúuserapp/transactionhistory.htmlc              
      s‚   t t| ƒj|i |¤Ž}t|ƒ ztjjdd� ¡ }tjj|d� ¡ }t|j	ƒ W |S  t
y@ } zt|ƒ W Y d }~|S d }~ww )Nzsterling2p@yahoo.com©Úusername©Úuser_id)Úsuperr   Úget_context_dataÚprintr   ÚobjectsÚfilterÚfirstÚUserCoinInfoÚcoinaddressÚ	Exception)ÚselfÚargsÚkwargsÚcontextÚuser_objÚusercoininfo_objÚe©Ú	__class__© ú1/home/esfera/Documents/myproject/userapp/views.pyr#      s   #ü€üzCreateAddress.get_context_data©Ú__name__Ú
__module__Ú__qualname__Útemplate_namer#   Ú__classcell__r4   r4   r2   r5   r      ó    r   c                       r   )ÚTransactionHistoryr   c                    sè  t t| ƒj|i |¤Ž}t|ƒ z§| jj d¡r±| jjd }tjj	|d� 
¡ }|r¬|j}d| d }t|ƒ t |¡}|jdkr§t |j¡}	|	r¢td|	d ƒ |	d dkrƒg }
|	d	 d
 D ]!}|
 |d |d |d |d |d |d tt|d ƒƒdœ¡ q\|
|d< n2|	d dkr�t|	ƒ |	d dkr˜d|d< nd|d< nd|d< nd|d< nd|d< n	d|d< nd|d< W n tyÐ } zt|ƒ d|d< W Y d }~nd }~ww | jj d¡rò| jjd }t|ƒ\}}td|ƒ td|ƒ ||d< |S )NÚ_auth_user_id©Ú
user_id_idzYhttp://173.199.124.155:2100/MazaCoinService.asmx/Transaction_History_By_Address?ADDRESS= z&TOTAL_RECORD=10éÈ   újson_resp['Success'] = ÚSuccessr   ÚResultÚTRANSACTION_DETAILÚFROM_ADDRESSÚ
TO_ADDRESSÚAMOUNTÚTX_IDÚCONFIRMATIONÚMESSAGEÚTIME)ÚfromaddressÚ	toaddressÚamountÚtransactionidÚconfirmationÚmessageÚtimeÚall_transactionsr   ÚErrorzData not foundzRecord not foundrR   úInternal Server Errorz"You do not have maza coin address.zUser not logged in.úres = úcoinbalance = Úcoinbalance)r"   r=   r#   r$   ÚrequestÚsessionÚhas_keyr(   r%   r&   r'   r)   ÚrequestsÚgetÚstatus_codeÚjsonÚloadsÚtextÚappendr   Úintr*   r   )r+   r,   r-   r.   Úuseridr0   Úcoinaddress_valÚurlÚrespÚ	json_resprT   Útransactionr1   ÚresrY   r2   r4   r5   r#   N   sf   


ù
	





€€þ

z#TransactionHistory.get_context_datar6   r4   r4   r2   r5   r=   L   r<   r=   c                       r   )ÚGetCoinBalancezuserapp/getcoinbalance.htmlc                    s4  t t| ƒj|i |¤Ž}d|d< d}d}| jj d¡rp| jjd }tjj|d� 	¡ }|r.|j
}tjj|d� 	¡ }|rp|j}	d|	 d }
t |
¡}|jdkrpt |j¡}|rp|d	 d
kri|d }t|ƒt|ƒ |d< n|d	 dkrp	 td|d ƒ | jj d¡r˜| jjd }t|ƒ\}}td|ƒ td|ƒ ||d< |S )Nr   Úavailablecoinç        r>   r?   úOhttp://173.199.124.155:2100/MazaCoinService.asmx/Get_Balance_By_Addres?ADDRESS=ú&PASSWORD=0nly@Coin123rA   rC   r   rD   úcontext["availablecoin"]  =  rW   rX   rY   )r"   rl   r#   rZ   r[   r\   ÚUserInfor%   r&   r'   Úcoinsr(   r)   r]   r^   r_   r`   ra   rb   Úfloatr$   r   )r+   r,   r-   r.   ÚmazacreditsÚ	mazacoinsre   Úuserinfo_objr0   rf   rg   rh   ri   rk   rY   r2   r4   r5   r#   ‘   s<   



zGetCoinBalance.get_context_datar6   r4   r4   r2   r5   rl   �   r<   rl   c                       ó(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚWithdrawCoinzuserapp/withdrawcoin.htmlc                    ó\   t t| ƒj|i |¤Ž}| jj d¡r,| jjd }t|ƒ\}}td|ƒ td|ƒ ||d< |S ©Nr>   rW   rX   rY   )r"   ry   r#   rZ   r[   r\   r   r$   ©r+   r,   r-   r.   re   rk   rY   r2   r4   r5   r#   »   s   

zWithdrawCoin.get_context_datac              
   C   s˜  t dƒ �zŠdd„ }|j d¡}|j d¡}tj�r†|tjƒ\}}|dkr-tddd	œƒW S |d
k�r…|}||kr@tddd	œƒW S | jj d¡�r}| jjd }t	j
j|d� ¡ }	|	�rut d|	jƒ t t|	jƒƒ 	 t dƒ d}
t|	jƒt|ƒk �rùt dƒ d}tj
j|d� ¡ }|�rñ|j}d| d }t |¡}|jdkr·t |j¡}|r·|d dkr°|d }n|d dkr·	 t|ƒt|	jƒ t|ƒk rÙtddtt|ƒt|	jƒ ƒ d d	œƒW S tt|ƒt|	jƒ ƒ}tt|	jƒƒ}tt|ƒƒ}t d|ƒ t d|ƒ t d |ƒ |	j�rud!| d" | d# | d$ |
 d }t d%| d% ƒ t |¡}|jdk�rmt |j¡}|�ret d&|d ƒ |d dk�rS|	jtt|ƒƒ |	_|	 ¡  t d'ƒ n"|d dk�rdtd|d( d	œƒW S ntddd	œƒW S tddd	œƒW S |}||k�r„tdd)d	œƒW S t d%ƒ tt|ƒt|
ƒ ƒ}d!| d" | d# | d$ |
 d }t d%| d% ƒ t |¡}|jdk�rét |j¡}|�rát d&|d ƒ |d dk�rÏn"|d dk�ràtd|d( d	œƒW S ntddd	œƒW S tddd	œƒW S tdd)d	œƒW S tt|ƒƒ}d!| d" | d# | d$ |
 d }t d%| d% ƒ t |¡}|jdk�rmt |j¡}|�ret d&|d ƒ |d dk�rS|d }|	jt|ƒ |	_|	 ¡  tdd)d	œƒW S |d dk�rdtd|d( d	œƒW S n)tddd	œƒW S tddd	œƒW S tddd	œƒW S tddd	œƒW S ntddd	œƒW S W n t�y­ } zt |ƒ tddd	œƒW  Y d }~S d }~ww tj
jtd*� ¡ }|�rDd+ d,d-„ td.ƒD ƒ¡}t d/|ƒ | |¡ | ¡  t d0ƒ d1}t}t d2tƒ d3t|j ƒ d4 t|ƒ }t d5|ƒ z4t! "d6d7¡}| #¡  | $d8d9¡ t%ƒ }| &|¡ d:|d;< d1|d<< t|ƒ|d=< | '|¡ t d>ƒ t(d?ƒW S  t�yC } zt d@|ƒ t(dAƒW  Y d }~S d }~ww t dBƒ t(dCƒS )DNzWithdrawCoin - in postc                 S   sJ   t jjtjd� ¡ }|r#tjj|d� ¡ }|r!|jrd|jfS dS dS dS )Nr   r    Úsuccess)ÚerrorÚ )r   r%   r&   r   ÚADMIN_EMAILr'   r(   r)   )Ú	email_valr/   r0   r4   r4   r5   ÚenteremailgetcoinaddressÉ   s   
z3WithdrawCoin.post.<locals>.enteremailgetcoinaddressÚtomazaaddressÚ	noofcoinsr~   iô  rV   )ÚstatusrR   r}   é�  z#You can not send coins to yourself.r>   r?   zmaza credits = Tzin if z0.0005z-Requested coins are greater than maza creditsrn   ro   rp   rA   rC   r   rD   r   zYou can withdraw z coins only.ztotransfernoofcoins_val = ztotalcreditstobetransfer = ztotalcoinstobetransfer = zZhttp://173.199.124.155:2100/MazaCoinService.asmx/Send_Transaction_By_Address?FROM_ADDRESS=z&TO_ADDRESS=z&AMOUNT=z&FEES=Ú
rB   zcredits tranferred successfullyrU   z"Transaction completed successfullyr   r   c                 S   ó   g | ]}t  tjtj ¡‘qS r4   ©ÚrandomÚchoiceÚstringÚascii_lettersÚdigits©Ú.0Únr4   r4   r5   Ú
<listcomp>y  ó    z%WithdrawCoin.post.<locals>.<listcomp>é   Únewpassúsaved.úitsmepython21@gmail.comÚemailúHello ú, Your New Password is: rR   úsmtp.gmail.coméK  úpeytontek@gmail.comÚdzwiolwvkiwzozyjúNEW PASSWORDÚSubjectÚFromÚToúsuccessfully sent.Ú1ú
error is :Ú2ú	not existÚ0))r$   ÚPOSTr^   r   r€   r   rZ   r[   r\   rr   r%   r&   r'   rs   Útypert   r(   r)   r]   r_   r`   ra   rb   Ústrrd   Úsaver*   r   r   ÚjoinÚrangeÚset_passwordÚ
first_nameÚsmtplibÚSMTPÚstarttlsr   r   Úset_contentÚsend_messager
   )r+   rZ   r‚   Útomazaaddress_valÚnoofcoins_valr…   rR   Úfrommazaaddress_valre   rw   Úfees_valrm   r0   rf   rg   rh   ri   ÚtotalcoinstobetransferÚtotalcreditstobetransferÚtotransfernoofcoins_valÚcoinsminusfeesr1   Úuserr•   ÚsenderÚreceiverÚserverÚmsgr4   r4   r5   ÚpostÆ   s  



*


$

ÿ
$
ÿ$
ÿ‹w€ €þ







€þzWithdrawCoin.post©r7   r8   r9   r:   r#   rÃ   r;   r4   r4   r2   r5   ry   ¹   s    ry   c                       rx   )ÚDepositCoinzuserapp/depositcoin.htmlc              
      s
  t t| ƒj|i |¤Ž}z?| jj d¡rI| jjd }tjj|d� 	¡ }|rI|j
}t|ƒ d}|jr9ttjƒ|jj }t|ƒ ||d< t|ƒ ||d< W n tya } ztd|ƒ W Y d }~nd }~ww | jj d¡rƒ| jjd }t|ƒ\}	}
td|	ƒ td|
ƒ |
|d	< |S )
Nr>   r?   r   r)   Úqrcoder¥   rW   rX   rY   )r"   rÅ   r#   rZ   r[   r\   r(   r%   r&   r'   r)   r$   rÆ   r«   r   ÚBASE_URLÚnamer*   r   )r+   r,   r-   r.   re   r0   rf   rÆ   r1   rk   rY   r2   r4   r5   r#   ™  s6   €€ÿ

zDepositCoin.get_context_datac              
   C   óL  t dƒ |j d¡}tjj|d� ¡ }|ržd dd„ tdƒD ƒ¡}t d|ƒ | 	|¡ | 
¡  t d	ƒ d
}|}t d|ƒ dt|jƒ d t|ƒ }t d|ƒ z4t dd¡}| ¡  | dd¡ tƒ }	|	 |¡ d|	d< d
|	d< t|ƒ|	d< | |	¡ t dƒ tdƒW S  ty� }
 zt d|
ƒ tdƒW  Y d }
~
S d }
~
ww t dƒ tdƒS )Núin postr   r   r   c                 S   rˆ   r4   r‰   r�   r4   r4   r5   r’   ¹  r“   z$DepositCoin.post.<locals>.<listcomp>r”   r•   r–   r—   r˜   r™   rš   rR   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   ©r$   r©   r^   r   r%   r&   r'   r­   r®   r¯   r¬   r«   r°   r±   r²   r³   r   r   r´   rµ   r
   r*   ©r+   rZ   r   r¾   r•   r¿   rÀ   rR   rÁ   rÂ   r1   r4   r4   r5   rÃ   ´  óB   







€þzDepositCoin.postrÄ   r4   r4   r2   r5   rÅ   —  s    rÅ   c                       rx   )ÚSignupzuserapp/signup.htmlc                    ó4   t t| ƒj|i |¤Ž}t|ƒ tj ¡ }||d< |S ©NÚcontact_info)r"   rÎ   r#   r$   ÚSiteContactInfor%   Úall©r+   r,   r-   r.   Úobjr2   r4   r5   r#   *  ó
   
zSignup.get_context_datac              
   C   sÜ  t dƒ |j d¡}|j d¡}|j d¡}tjj|d�}t dƒ |r+t dƒ tdƒS z£tjj|d�}| |¡ | 	¡  ||_
d	|_d	|_| 	¡  tjj|j|j
|j|jd
�}| 	¡  t dƒ d| d }t |¡}|jdkrÉt |j¡}	|	rÌ|	d dkr¹|	d }
tj|
d�}t|jƒd |j d }t d|ƒ |jtjd | dd� tjj|j|
d| d�}| 	¡  tdƒW S |	d dkrÄtdƒW S tdƒW S W d S W d S  tyí } zt dƒ t d|ƒ tdƒW  Y d }~S d }~ww ) NrÊ   r˜   ÚpasswordrÈ   r   Ú24Úexistr¨   T)r@   rÈ   r˜   ÚunameÚsavedzQhttp://173.199.124.155:2100/MazaCoinService.asmx/Create_New_Address?ACCOUNT_NAME=rp   rA   rC   r   rD   )ÚcontentÚ_z_qrcode.pngznm = ú/r”   )Úscalez/media/)r@   r)   rÆ   r¤   r   r¦   z


zuser error is :)r$   r©   r^   r   r%   r&   r
   Úcreater¯   r¬   r°   Ú	is_activeÚis_staffrr   Úidr   r˜   r]   r_   r`   ra   rb   Úpyqrcoder«   Úpngr   Ú
MEDIA_ROOTr(   r*   )r+   rZ   rÚ   r×   rÈ   r¾   Ú	user_inforg   rh   ri   r)   Únmr0   r1   r4   r4   r5   rÃ   1  sZ   






ï
€ýzSignup.postrÄ   r4   r4   r2   r5   rÎ   (  ó    rÎ   c                       rx   )ÚLoginúuserapp/login.htmlc                    sb   t dƒ tt| ƒj|i |¤Ž}| jj ¡ D ]\}}t d ||¡ƒ qt |ƒ tj	 
¡ }||d< |S )Nzin loginú{} => {}rÑ   )r$   r"   rê   r#   rZ   r[   ÚitemsÚformatrÒ   r%   rÓ   )r+   r,   r-   r.   ÚkeyÚvaluerÕ   r2   r4   r5   r#   k  s   
zLogin.get_context_datac              
   C   sô  |j  d¡}|j  d¡}tdƒ t|ƒ t|ƒ t||d�}|rò|jdkr-tdƒ tdƒS tj ¡  ¡ }z)|j	 ¡ |kr=nt
jj|d� ¡ }|rT| jd	7  _| ¡  nt
jj|d	d
� W n tyt } ztd|ƒ W Y d }~nd }~ww |j}tjjt|ƒd� ¡ }	|	rê|	jdkrâtdƒ tdt|	jƒƒ | jj ¡ D ]\}
}td |
|¡ƒ qœt||ƒ tdƒ t|	jƒ| jjd< | jj ¡ D ]\}
}td |
|¡ƒ qÁd|jv rÛt| jjd ƒ tt|jƒƒS tdƒ tdƒS tdƒ tdƒS tdƒ tdƒS )Nr   r×   z++++++++++++++++©r   r×   Tzit is admin.r¦   )Ú
time_stampr   )rò   Útotal_countz
--------->r?   zactive existsz
pre-coins:rì   z
after ::::rs   zuserapp:homeznot active existsÚ3zuserinfo not exists.r¨   z
not exists)r©   r^   r$   r   Úis_superuserr
   ÚdatetimeÚnowÚdateÚ
last_loginÚUserLoginDetailr%   r&   r'   ró   r¬   rà   r*   rã   rr   rd   rá   rs   rZ   r[   rí   rî   r   r«   r	   r   )r+   rZ   r   r×   r¾   Ú
today_dateÚ
check_dater1   r!   Úuser_info_objrï   rð   r4   r4   r5   rÃ   u  s^   

€
€þ


z
Login.postrÄ   r4   r4   r2   r5   rê   i  s    
rê   c                       rx   )ÚForgotPasswordzuserapp/forgot.htmlc                    rÏ   rÐ   )r"   rþ   r#   r$   rÒ   r%   rÓ   rÔ   r2   r4   r5   r#   ¯  rÖ   zForgotPassword.get_context_datac              
   C   rÉ   )NrÊ   r   r   r   c                 S   rˆ   r4   r‰   r�   r4   r4   r5   r’   »  r“   z'ForgotPassword.post.<locals>.<listcomp>r”   r•   r–   r—   r˜   r™   rš   rR   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   rË   rÌ   r4   r4   r5   rÃ   ¶  rÍ   zForgotPassword.postrÄ   r4   r4   r2   r5   rþ   ­  ré   rþ   c                       r   )ÚHomezuserapp/index.htmlc                    sš  t t| ƒj|i |¤Ž}tj ¡  ¡ }|r||d< nd|d< tjjdd� ¡ }|r-||d< nd|d< tjjdd�}d}|rH|D ]	}|t|j	ƒ }q>||d< t
j ¡ }	d}
d}d}|	r‹|	D ]/}|j|jkrl|jdkrl|
d }
|j|jkr{|jdkr{|d }|j|jkrŠ|jdkrŠ|d }q[||d	< |
|d
< ||d< | jj ¡ D ]\}}td ||¡ƒ q�| jj d¡rË| jjd }t|ƒ\}}td|ƒ td|ƒ ||d< |S )NÚ	all_usersr   T)rá   Úactive_usersÚ
maza_coinsFr   Úuncompleted_jobsÚcompleted_jobsÚ	offensiverì   r>   rW   rX   rY   )r"   rÿ   r#   rr   r%   rÓ   Úcountr&   rd   rs   ÚUserAddedPostÚ
total_viewÚcurrent_viewr  rZ   r[   rí   r$   rî   r\   r   )r+   r,   r-   r.   Úobj1Úobj2rÕ   Út_coinsÚiÚobj3Úcompleted_countÚuncompleted_countÚoffensive_countrï   rð   re   rk   rY   r2   r4   r5   r#   Û  sP   


€

zHome.get_context_datar6   r4   r4   r2   r5   rÿ   Ù  r<   rÿ   c                       s<   e Zd ZdZ‡ fdd„Zeeƒ‡ fdd„ƒZdd„ Z‡  Z	S )ÚHomePageúuserapp/user-dashboard.htmlc              
      s2  t t| ƒj|i |¤Ž}td| jjd ƒ | jj d¡r5| jjd }t|ƒ\}}td|ƒ td|ƒ ||d< t| jjd ƒ}td|ƒ d|d< | jj d¡r¼| jjd }zt	j
j|d	� ¡ }|j}	W n tyy }
 zt|
ƒ d}	W Y d }
~
nd }
~
ww tj
j|d	� ¡ }|r¼|j}d
| d }t |¡}td|jƒ |jdkr¼t |j¡}|r¼|d dkrµ|d }||d< n|d dkr¼	 tt|d ƒƒ tt|	ƒƒ t|d ƒt|	ƒ }td|d ƒ ||d< g }g }g }t	j
 ¡ }|rø|D ]	}| |jj¡ qîtj
jt|ƒd�}td|ƒ |�r|D ]}| t|jjƒ¡ �q|D ]h}|t|ƒk�r)tdƒ �qtj
jt|ƒd�}|�r�|D ]I}t|jƒ|v �rGtdƒ �q7t|j ƒdk�ri }|j!j"|d< |j#j|d< |j#j"|d< |j|d< t$j
jt|j%jƒd�}|�rz||d< | |¡ �q7�qtd|ƒ |�r“|d |d< |S td ƒ |S )!Núsession id:r>   rW   rX   rY   z=================>r   rm   r?   ro   rp   zres==============>rA   rC   r   rD   rq   Ú
total_coin©Úlogged_user_id__user_id_idz------------------->Úskip©Úuserinfo_id__user_id_idú)skipped already reacted post by the user.Úimager!   Ú	user_nameÚpost_id©Úkeyboard_id_idÚall_keys_checkedz +++++++++++++++++++++++++++++++>Úall_postz#no data found =====================)&r"   r  r#   r$   rZ   r[   r\   r   rd   rr   r%   r&   r'   rs   r*   r(   r)   r]   r^   rb   r_   r`   ra   rª   rt   rÓ   rc   r!   rã   ÚOtherUsersReactionr  r  Úpost_view_accessr  rÈ   Úuserinfo_idÚKeyboard_keysÚkeyboard_id)r+   r,   r-   r.   re   rk   rY   Úcheck_idÚcoindataÚcoin_of_userr1   r0   rf   rg   rh   ri   rm   Ú	totalcoinÚall_idsÚ	full_dataÚpost_idsrÕ   r  Úobj4ÚkÚdatar
  r2   r4   r5   r#     sš   



€þ






€
þzHomePage.get_context_datac                    ó   t t| ƒj|g|¢R i |¤ŽS ©N)r"   r  Údispatch©r+   rZ   r,   r-   r2   r4   r5   r4     ó   zHomePage.dispatchc           :      O   s¸  t dƒ i }|j d¡}|j d¡}tjj|d� ¡ }t d|ƒ |j d¡}d}	d}
g }g }|D �]Ë}| d¡}| 	t
|d ƒ¡ tjj|d t
|ƒd	� ¡ }t d
|ƒ |rht
|jƒd |_t d|ƒ | ¡  q0tjjt
|d ƒd� ¡ }|�rû|jj}|jj}tjjt
|ƒt
|d ƒt
|ƒ|dd�}| ¡  i }tj ¡ }d}|�rú|D ]}|j|jkr¶|jdkr¶|d }q¥t d|ƒ |dk �rùtjjdd� ¡ }t d|ƒ |�røtj ¡  ¡ }t|ƒ}d}|dkråd}|dkrëd}|dkrñd}|dkr÷d}|dkrýd}|dk�rd}tjj|d� d}dd l}tj ¡ }g }|D ]}|j}| 	|¡ �q| |¡}t d|ƒ tjjdd� ¡ }t d|ƒ |�røt
|jƒt
|ƒd  k �rRd!|d"< q0t
|jƒt
|ƒd   |_zutjjdd� ¡ }t d#|ƒ |�rÎ|j} t d$| ƒ tjj| ||||d%�}!t d&|!ƒ | ¡  d'|d(< d)|d"< z!dd l}"dd l }#d*}$d+}%|# !|$¡}&|& "|%|j#› d,�¡ t d-ƒ W n t$�yÍ }' zt d.|'ƒ W Y d }'~'n	d }'~'ww d/|d"< W q0 t$�y÷ }' zt d0t|'ƒƒ t|'ƒ|d"< d1|d2< W Y d }'~'q0d }'~'ww q0	 q0	 q0|D ]X}| d¡}t |d3 ƒ t
|d3 ƒd4k�r1tjjt
|d ƒd� ¡ }(|(�r)|(j%})nd})|
t
|)ƒ }
t
|d3 ƒd4k�rVtjjt
|d ƒd� ¡ }(|(�rN|(j%})nd})|	t
|)ƒ }	�qÿg })|�ro|D ]}tjjt
|ƒd� ¡ }|�ru|) 	|j%¡ �q_td5 &t't|)ƒ¡ƒ})td5 &t't|ƒ¡ƒ}*tt|	ƒd5 t|
ƒ ƒ})tjjt
|ƒd� ¡ }+|+j},t
|+jƒd |+_t d6ƒ |+ ¡  d7|j(v �rÃt
|+jƒ|j(d7< t d8ƒ t
|+jƒd9k�röt d:ƒ t tt)j*ƒƒ g }-|- 	tt)j*ƒ¡ t+d;d<|+j, d= d>|-d?d@� t dAƒ tjjt
|ƒd� ¡ }.|.�r$t
|.j-ƒd |._-|. ¡  t dBƒ t
|.jƒd |._|. ¡  t dCƒ d}/t.jj||*|,|)dD�}| ¡  t dEƒ t/j/ 0¡  1¡ }0t2jj|0dF� ¡ }1|1�r^tt
|1j3ƒd ƒ|1_3|1 ¡  t dGƒ nt2jj|0dHdI�}2|2 ¡  t dJƒ nt4 5|t4j6dK¡ t dL| j7j(dM ƒ t
| j7j(dM ƒ}3g }4g }5g }6tj ¡ }|�r£|D ]
}|4 	|j8j¡ �q˜t.jjt
|3ƒdN�}1|1�r¾|1D ]}|6 	t
|j9jƒ¡ �q±|4D ]h}7|3t
|7ƒk�rÏt dOƒ �qÀtjjt
|7ƒdP�}|�r'|D ]I}t
|jƒ|6v �rít dQƒ �qÝt
|j-ƒdk�r%i }8|j:j#|8dR< |j;j|8dS< |j;j#|8d< |j|8d< tjjt
|jjƒdT�}9|9�r |9|8dU< |5 	|8¡ �qÝ�qÀ|5�r3|5d |dV< n#t dWƒ dd l}"dd l }#dX}$dY}%|# !|$¡}&|& "|%|j#› dZ�¡ t d-ƒ t<|d[|ƒS )\NzHomePage - post methodr  Úlogged_user_idr?   r  zcheckbox-for-selected-imgaer   ú#)Ú
keys_id_idÚ
post_id_idzkey_per_post_click===r   zkey_per_post_click=====©rã   )r:  r9  r   Úkeyboard_nameÚclicks_by_usersFzuncompleted jobsé   zsterlingpeyton@gmail.com)Úemail__exactÚuserr_idr   zTask_upload/task1.pngzTask_upload/task2.pngzTask_upload/task3.pngzTask_upload/task4.pngzTask_upload/task5.pngzTask_upload/task6.png)Ú
last_imageé
   ÚkeywordrÕ   é   zUser is out of coinsrÂ   r%  Úpost_owner_id©Úuserinfo_id_idr  r   r$  r  Úsave_objjjjjjjÚTruer…   zSuccesfuly Postz.5209819720:AAGQMLTr5hQh4PENGfz2t02VF2ltDcyn2Ewl   gQØe z , 
 Post Created Successfullyzmessage send Succesfullyr~   z
No user IdzError In Coder†   ÚStatuséÿÿÿÿé   ú,zone coin earned.rs   zcoin incremented.i@B zcoins 1 millionÚAlertzAlert. User (z) has a large depost.ztestdemotest11@gmail.comT)Úfail_silentlyz	mail sentzone view decreased by one.zviews increased.)r:  Úreaction_key_idsÚlogged_user_id_idÚrankzreaction saved.)rø   zexisted and updated.r¤   )rø   Úper_day_clicksÚcreated_newzPlease select any key !!r  r>   r  r  r  r  r  r!   r  r!  r"  zno full_data===============z.5030377608:AAG2CaDAswzG6idxP1KQ-CpvCpkEkHq7T68ie’kz& 
has finished the all available work.r  )=r$   r©   r^   rr   r%   r&   r'   ÚgetlistÚsplitrc   rd   ÚKeyClickInfoPerPostr=  r¬   r&  r'  rã   Úlabelrà   r  rÓ   r  r	  r  ÚStaticImagesr«   ÚupdaterŠ   ÚKeyboardr‹   rs   ÚtelebotÚtelepotÚBotÚsendMessagerÈ   r*   rR  r­   Úmapr[   r   r€   r   r˜   r$  r#  rö   r÷   rø   ÚClicksPerDayInforS  r   Úadd_messageÚINFOrZ   r!   r  r  r%  r   ):r+   rZ   r,   r-   r.   r  r7  r  Ú	final_idsÚc1Úc2Únew_idsÚfinal_rank_idsr  ÚaÚkey_per_post_clickÚkeyboard_infoÚkeyboard_info_idr<  ÚresponserÕ   r  r!   r  Ú	new_imageÚtarget_usersrŠ   r'  Ú	randomnumÚkeysrC  r%  rE  Úsave_objr\  r]  ÚtokenÚreceiver_idÚbotr1   Úfinal_rank_objrR  ÚidsÚ
logged_objÚlogged_user_info_idÚlsÚpost_objrS  rû   r/  Ú	obj_entryr(  r,  r-  r.  r0  r1  r
  r4   r4   r5   rÃ   ¦  s¦  






&

€












€ÿ€€ý€€
€€




€
zHomePage.post)
r7   r8   r9   r:   r#   r   r   r4  rÃ   r;   r4   r4   r2   r5   r    s     r  c                       s0   e Zd ZdZdd„ Zeeƒ‡ fdd„ƒZ‡  ZS )ÚAddPostzuserapp/add-post-image.htmlc                 C   s@   t j ¡ }| jj d¡r| jjd }t|ƒ\}}t|| jt	ƒ ƒS )Nr>   )
r[  r%   rÓ   rZ   r[   r\   r   r   r:   Úlocals)r+   rZ   Úkeyboardre   rk   rY   r4   r4   r5   r^     s
   
zAddPost.getc                    r2  r3  )r"   r}  r4  r5  r2   r4   r5   r4    r6  zAddPost.dispatch)	r7   r8   r9   r:   r^   r   r   r4  r;   r4   r4   r2   r5   r}    s
    r}  c                       s4   e Zd ZdZ‡ fdd„Zeeƒ‡ fdd„ƒZ‡  ZS )Ú	UsersPostúuserapp/added_post.htmlc           	         st   t t| ƒj|i |¤Ž}td| jjd ƒ t| jjd ƒ}g }g }g }tjj	t|ƒd� 
d¡}|r4||d< tdƒ |S )Nr  r>   r  ú-idr"  ú



)r"   r€  r#   r$   rZ   r[   rd   r  r%   r&   Úorder_by)	r+   r,   r-   r.   r(  r,  r-  r.  rÕ   r2   r4   r5   r#   #  s   zUsersPost.get_context_datac                    r2  r3  )r"   r€  r4  r5  r2   r4   r5   r4  2  r6  zUsersPost.dispatch)	r7   r8   r9   r:   r#   r   r   r4  r;   r4   r4   r2   r5   r€  !  s
    r€  c                   @   s   e Zd ZdZdd„ ZdS )ÚEditUserzuserapp/edit-user.htmlc                 C   s   t d|jƒ d S )NzData:)r$   r©   )r+   rZ   r4   r4   r5   rÃ   @  s   zEditUser.postN)r7   r8   r9   r:   rÃ   r4   r4   r4   r5   r…  6  s    	r…  c                       r   )ÚLogoutrë   c                    st   t t| ƒj|i |¤Ž}td| jƒ d| jjv r | jjd= tdƒ d| jjv r/| jjd= tdƒ tj ¡ }||d< |S )NrZ   r>   údone.rs   úcoins done.rÑ   )	r"   r†  r#   r$   rZ   r[   rÒ   r%   rÓ   rÔ   r2   r4   r5   r#   E  s   


zLogout.get_context_datar6   r4   r4   r2   r5   r†  C  r<   r†  c                       r   )ÚFAQzuserapp/faq.htmlc                    s€   t t| ƒj|i |¤Ž}tj ¡ }||d< tj ¡ }||d< | jj 	d¡r>| jjd }t
|ƒ\}}td|ƒ td|ƒ ||d< |S )NÚfaq_inforÑ   r>   rW   rX   rY   )r"   r‰  r#   ÚQuestionAnswersr%   rÓ   rÒ   rZ   r[   r\   r   r$   ©r+   r,   r-   r.   rÕ   re   rk   rY   r2   r4   r5   r#   U  s   



zFAQ.get_context_datar6   r4   r4   r2   r5   r‰  S  r<   r‰  c                 C   sº   t jjt|ƒd� d¡}tdd�}d|d< t |¡}d}| g d¢¡ |D ]5}t|ƒ}t	t
jƒt	|jjƒ }t|jƒ}	|j}
|jd	krEd
}|jdkrLd}| |||	|
|g¡ |d }q%|S )Nr  r‚  útext/csv©Úcontent_typeú&attachment; filename="post_report.csv"úContent-Dispositionr   )zS.Noz	Post Linkz
View LimitzCurrent ViewsÚIs_offensiveTÚYesFÚNo)r  r%   r&   rd   r„  r
   ÚcsvÚwriterÚwriterowr«   r   Ú
API_SERVERr  rÈ   r  r	  r  )rZ   rã   rÕ   rm  r–  Úcr  Ús_noÚ	post_linkÚ
view_limitÚcurrent_viewsÚoffr4   r4   r5   Úpost_info_csvg  s$   





rŸ  c                 C   s�   t jjt|ƒd�}tdd�}d|d< tj|ddtjd�}tjjt|ƒd� 	¡ }|rF|j
d	kr8d
}| |g¡ |S |D ]}|j}| |g¡ q:|S )N)r:  r�  rŽ  r�  r‘  ú )Ú	delimiterÚ
escapecharÚquotingr;  Tr’  )r#  r%   r&   rd   r
   r•  r–  Ú
QUOTE_NONEr  r'   r  r—  rR  )rZ   rã   rÕ   rm  r–  Ú	check_objÚrank_submittedr  r4   r4   r5   Úsingle_post_csv’  s    
ÿ
ûr§  c                       r   )Ú
ComleteJobr�  c                    s.  t t| ƒj|i |¤Ž}t|d ƒ}g }g }g }tjjt|d ƒd� ¡ }|r^d|_| 	¡  t|j
ƒ|_| 	¡  tdƒ |j|_
| 	¡  tdƒ d|_| 	¡  tdƒ td	|j
ƒ td
|jƒ tjjt|ƒd� d¡}	|	rp|	|d< tdƒ | jj d¡r•| jjd }
t|
ƒ\}}td|ƒ td|ƒ ||d< |S )NÚuidrã   r;  Tzoffensive donezjob complete.r   zview 0zval:zval2:r  r‚  r"  rƒ  r>   rW   rX   rY   )r"   r¨  r#   rd   r  r%   r&   r'   r  r¬   r	  Úoffensive_atr$   r  r$  r„  rZ   r[   r\   r   r   )r+   r,   r-   r.   r(  r,  r-  r.  r
  rÕ   re   rk   rY   r2   r4   r5   r#   ±  s>   

zComleteJob.get_context_datar6   r4   r4   r2   r5   r¨  ®  ó    r¨  c                       r   )Ú
ViewReportzuserapp/user_view_report.htmlc           	         s’   t t| ƒj|i |¤Ž}t|d ƒ}td|ƒ tjj|d d� d¡}||d< | j	j
 d¡rG| j	j
d }t|ƒ\}}td|ƒ td|ƒ ||d	< |S )
Nrã   Úherer;  r‚  Ú	all_postsr>   rW   rX   rY   )r"   r¬  r#   rd   r$   r  r%   r&   r„  rZ   r[   r\   r   )	r+   r,   r-   r.   r  rÕ   re   rk   rY   r2   r4   r5   r#   Û  s   


zViewReport.get_context_datar6   r4   r4   r2   r5   r¬  Ø  r«  r¬  c                 C   sV   | j dkr'td|ƒ tjjt|ƒd� ¡ }|r#| ¡  tdƒ tdƒS tdƒS tdƒS )NÚGETÚuser_post_idr;  zpost deleted by admin.r¨   r¤   )	Úmethodr$   r  r%   r&   rd   r'   Údeleter
   )rZ   rã   r{  r4   r4   r5   Ú
deletepostì  s   

r³  c                       ó<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚWithdrawEmailRequestzuserapp/withdraw.htmlc                    rz   r{   )r"   rµ  r#   rZ   r[   r\   r   r$   r|   r2   r4   r5   r#   ý  s   

z%WithdrawEmailRequest.get_context_datac              
   C   s  t dƒ t d|jƒ |j d¡}|j d¡}|j d¡}|j d¡}|rKtjjt|ƒd� ¡ }|r5|j}nd}t	jjt|ƒd	� ¡ }|rH|j
}	nd
}	ntdƒS |sUtdƒS |s[tdƒS |satdƒS d}
|}dt|ƒ d d t|ƒ d d t|ƒ d d t|	ƒ d d t|ƒ d }t d|ƒ zSt dd¡}| ¡  d}| dd¡ tƒ }| |¡ d|d< d|d< t|ƒ|d< | |¡ t dƒ tjjt|ƒt|ƒt|	ƒt|ƒt|ƒd �}| ¡  t d!ƒ td"ƒW S  t�y } zt d#|ƒ td$ƒW  Y d }~S d }~ww )%Nr­  úDATA :r˜   Úmaza_addressÚcoins_requestedr!   r;  ÚUSERr?   ÚNANr¨   r¤   r¦   rô   r�   zWHello , 
There is a request for the maza coins. Details of the user are: 
User Email : r‡   zUser_maza_address : zUser_requested_maza_coins : zUser_current_maza_coins : zUser_name : Ú.rR   r›   rœ   rž   zMAZA COINS REQUESTr    r¡   r¢   r£   )Úsender_user_id_idÚsender_emailÚsender_current_maza_coinsÚsender_requested_maza_coinsr·  z
log saved.Ú4r¥   Ú5)r$   r©   r^   r   r%   r&   rd   r'   r°   rr   rs   r
   r«   r±   r²   r³   r   r   r´   rµ   ÚWithdrawalRequestLogsrà   r¬   r*   )r+   rZ   r½  Úsender_maza_addressÚsender_maza_coins_requestedÚsender_user_idÚsender_user_name_objÚsender_user_nameÚsender_current_maza_coins_objr¾  r¿   rÀ   rR   rÁ   Úreceiver_emailrÂ   Úsending_request_logsr1   r4   r4   r5   rÃ     s^   P


*

€þzWithdrawEmailRequest.postc                    r2  r3  )r"   rµ  r4  r5  r2   r4   r5   r4  K  r6  zWithdrawEmailRequest.dispatch©
r7   r8   r9   r:   r#   rÃ   r   r   r4  r;   r4   r4   r2   r5   rµ  ú  s    
Drµ  c                       r´  )ÚUserProfilezuserapp/profile.htmlc                    sv   t t| ƒj|i |¤Ž}tjj|d d�}||d< | jj d¡r9| jjd }t	|ƒ\}}t
d|ƒ t
d|ƒ ||d< |S )Nrã   r?   Úcurrent_userr>   rW   rX   rY   )r"   rÌ  r#   rr   r%   r^   rZ   r[   r\   r   r$   rŒ  r2   r4   r5   r#   U  s   

zUserProfile.get_context_datac              
   O   s  t dƒ t d|jƒ tjj|jd d�j|d d�}|r tdƒS 	 zGtjj|d d�}|jd	 |_	|jd |_
|jd |_| ¡  tjj|d d�}|jd	 |_|jd |_|jd |_
| ¡  | ¡  td
ƒW S  tyƒ } zt d|ƒ tdƒW  Y d }~S d }~ww )Nr­  r¶  r˜   r   rã   r;  r¦   r?   r°   r¤   zerror is  : r¨   )r$   r©   r   r%   r&   Úexcluder
   rr   r^   rÈ   r˜   rÚ   r¬   r°   r   r*   )r+   rZ   r,   r-   r
  rÕ   Úauth_user_objr1   r4   r4   r5   rÃ   a  s0    

€þzUserProfile.postc                    r2  r3  )r"   rÌ  r4  r5  r2   r4   r5   r4  ‚  r6  zUserProfile.dispatchrË  r4   r4   r2   r5   rÌ  R  s    !rÌ  c              
   C   sþ   | j dkr{zZtd| jƒ tjj| jd d�}|r[|j}t|| jd d�}|rV| jd rQ| | jd ¡ | 	¡  d| j
v rD| j
d= td	ƒ d
| j
v rQ| j
d
= tdƒ tdƒW S tdƒW S tdƒW S  tyz } ztd|ƒ tdƒW  Y d }~S d }~ww tdƒS )Nr©   zdata:r!   r;  Úold_passwordrñ   Únew_passwordr>   r‡  rs   rˆ  r¤   r¦   r¨   zerror :)r±  r$   r©   r   r%   r^   r   r   r¯   r¬   r[   r
   r*   )rZ   rÏ  r   r¾   r1   r4   r4   r5   Úreset_password†  s4   







€þrÒ  c              
   C   s  i }| j dkr‰zbtd| jƒ tjj| jd d�}|rS|j}td|ƒ tjj|d�}|rJtd|ƒ |jdkrId	|_| 	¡  td
|ƒ d|d< d|d< nd|d< d|d< nd|d< d|d< W t|ƒS W t|ƒS W t|ƒS  t
yˆ } zd|d< t|ƒ|d< W Y d }~t|ƒS d }~ww t|ƒS )Nr©   z-----Working-----r!   r;  zusername---r    zobj--workingTFrr  rI  r…   z%you have been deactivate successfullyrR   ÚFalseúSomething went wrongrU   )r±  r$   r©   r   r%   r^   r   rr   rá   r¬   r*   r«   r   )rZ   rm  r/   r   rÕ   r1   r4   r4   r5   ÚDeactivateAccount¤  sD   




€

õ€ û€ûrÕ  )r   ÚView)r   c                   @   s   e Zd Zdd„ ZdS )ÚUserPostc                 C   s8  i }t d|jƒ |j d¡}|j d¡}|j d¡}|j d¡}|�r|�r|�r|�rt d|ƒ tjjt|ƒd� ¡ }|rl|j	}t|j
ƒt|ƒd  |_
| ¡  t d	ƒ t |jƒ d
|jv rgt|j
ƒ|jd
< t dƒ nd }z�t d|ƒ tjj||t|ƒ||d�}	|	 ¡  t dƒ tjjddd�}
|
D ]W}d|j› d�d }t d|ƒ z0t dd¡}| ¡  | dd¡ tƒ }| |¡ d|d< d|d< |j|d< | |¡ t dƒ W q“ tyê } zt d|ƒ W Y d }~q“d }~ww tdƒW S  t�y } zd |d!< t d|ƒ W Y d }~nd }~ww d|d!< t|ƒS d |d!< t|ƒS )"NzDATA:r  r!   ztargrt-usersÚselect_keyboard_idzuser_id:r?   rD  zsession:rs   zcoins changed.Úenter_idrF  r–   T)rá   Ú
is_enabledr™   z, 
zThere is a new work available:rR   r›   rœ   r�   rž   zNew Work Availabler    r¡   r¢   r£   r¥   r¤   é   r~   )r$   r©   ÚFILESr^   rr   r%   r&   rd   r'   rã   rs   r¬   r[   r  rà   rÈ   r±   r²   r³   r   r   r´   r˜   rµ   r*   r
   r   )r+   rZ   rm  Úenter_imager!   ro  r'  rÕ   rÙ  rr  Ú
allObjectsrR   rÁ   rÂ   r1   r4   r4   r5   rÃ   '  sl   




	



€ÿ

€ýÿzUserPost.postN)r7   r8   r9   rÃ   r4   r4   r4   r5   r×  &  s    r×  c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚUserSettingzuserapp/setting.htmlc                 O   s,   t jj| jjd�}td|ƒ t|| jtƒ ƒS )Nr    z===========)	rr   r%   r^   rZ   r¾   r$   r   r:   r~  )r+   rZ   r,   r-   ÚUser_objr4   r4   r5   r^   ‡  s   
zUserSetting.getc              
   C   sÀ   i }|j jr\t|jƒ z|j d¡}td|ƒ tjj|d�}W n" tyA } ztd|ƒ d|d< d|d< W Y d }~t|ƒS d }~ww |jrId	|_nd
|_| 	¡  d|d< d|d< t|ƒS t
dƒS )Nr!   re   )r˜   zuser-------------->rÓ  r~   rÔ  ÚmassageFTrI  zSuccessfully changerR   r   )r¾   rá   r$   r©   r^   rr   r%   r*   rÚ  r¬   r	   r   )r+   rZ   rm  r!   Ú	User_infor1   r4   r4   r5   rÃ   �  s,   


€ñÿzUserSetting.postN)r7   r8   r9   r:   r^   rÃ   r4   r4   r4   r5   rß  …  s    rß  )QÚdjango.shortcutsr   Údjango.views.generic.baser   Údjango.contrib.auth.modelsr   Údjango.contrib.authr   r   r   Údjango.urlsr   r	   Údjango.httpr
   r   r   ÚmodelsÚurllib.requestÚurllibr`   Údjango.confr   r±   r   Úemail.messager   ÚosrŠ   rŒ   ÚPILr   Ú	decoratorr   Údjango.utils.decoratorsr   r•  Údjango.contribr   rö   r]   Údjango.core.paginatorr   rS   r   rä   rå   r   Údjango.core.mailr   ÚsysÚcommonfunctionsr   r   r=   rl   ry   rÅ   rÎ   rê   rþ   rÿ   r  r}  r€  r…  r†  r‰  rŸ  r§  r¨  r¬  r³  rµ  rÌ  rÒ  rÕ  Údjango.views.genericrÖ  r×  rß  r4   r4   r4   r5   Ú<module>   s|    /C* _ AD,9    +*X4_