a
    }h                    @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZ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mZmZmZm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  d d
l!m"Z" ej#dkrd dl$Z$ej%&d ej'(dd e)  d dl*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z: d dl;m<Z< edZ=dd Z>dd Z?dd Z@d#eAdddZBG dd  d ZCeDd!kreEd" eC F  dS )$    N)config)close_old_connections)SubqueryOuterRefCountIntegerFieldValue)Coalesce)timezone)By)Keys)Select)MaxRetryErrorntz..DJANGO_SETTINGS_MODULEzfutplus.settings)CREATE_OUTLOOK_STATUS)FifaAccount	FifaProxyNewOutlookAccountConsoleOutlookCreateWorkerOutlookCreateProcess)wait_for_elementget_webdriver_without_proxyget_webdriver_with_proxy)get_last_emailprocess_existsfocus_on_ps)sys_log_savezAsia/Tehranc                  C   s4   g d} g d}t | |D ]\}}t|| qd S )N)  i	  i     r!   r!   zipwinsoundZBeepfrequencies	durations	frequencyduration r*   PC:\Users\Administrator\Downloads\futplus_django\accounts\create_outlook_email.pyplay_confirmation_sound+   s    r,   c                  C   s4   g d} g d}t | |D ]\}}t|| qd S )N)i  i    r    r"   r%   r*   r*   r+   play_denied_sound2   s    r.   c                  C   s4   ddg} ddg}t | |D ]\}}t|| qd S )Nr     d   r-   r"   r%   r*   r*   r+   play_need_help_sound9   s    r1   F
modem_typec              
   C   s  t d |dkrt }|d |jdddt|  d t| d d	d
d}ztd|j}|d}W nH   z"tdt|j	dd}W n   t d d }Y n0 Y n0 |r|j
d|i td z|d}W n   t d Y n0 t d d S )Nzrestarting modem   zbhttp://192.168.0.1/jsonp_locale?callback=jQuery111300782361495824837_1705411942762&_=1705411942763zhttp://192.168.0.1/adminLoginZ)jQuery111300782361495824837_1705411942762z{"username":"z","password":"z"}Z1705411942763)callbackZ
loginparam_)paramsz"token":"(.+)"}z	mach:(.+)Cookiezcant get modem tokentokenzahttp://192.168.0.1/jsonp_reset?callback=jQuery111300782361495824837_1705411942762&_=1705411942763zrequest failedzmodem successfully restarted)printrequestssessiongetstrresearchtextgroupheaderscookiesupdatetimesleep)	user_namepasswordr3   Zask_questionZmodem_sessionressearch_resultZmodem_tokenr*   r*   r+   reset_modem@   s8    

"
rL   c                   @   s   e Zd ZdZdZdd Zdd Zdd Zd	d
 Zd e	dddZ
dd Zdd Zdd Zd!ddZd"ddZdd Zd#edddZdS )$CreateOutlookMailN   c           	      C   s  t d}|j}|j}td|d D ]}tjj|j|ddj	d}t
jj|j|ddj	d\}}|rtj jttt
jjtdd	d
jtdddt dtddd }|j|ddj	|_|j|ddj	|_|j|ddj	|_|j|ddj	pd|_|j|ddj	p d|_|j|ddj	p8d|_|j|ddj	dkrZd|_nv|j|ddj	dkrxd|_nX|j|ddj	dkrd|_n:|j|ddj	d krd!|_n|j|ddj	d"krd#|_|j|ddj	|_ |j|d$dj	r||_!|j|d%dj	rd&|_"|j|d'dj	d(v r.d)|_#|j|d*dj	d+v rJd&|_$|j|d,dj	d+v rfd&|_%t&j&t'(d-d.t'(dd$t'(dd/d0) |_*||_+nt,d1|j- |.  q$d S )2Nzadd_new_outlook.xlsx   r4   )rowcolumnname   )rH   pk)	proxy__idproxyid)	use_countrY   )output_fieldr   )usage_countr[         rN       	   
      cchromeffirefoxooperaeedgetftor_windows      T   )r   0F   )r4   1   i  r      )yearmonthdayzthis item already exists : )/openpyxlload_workbookactivemax_rowranger   objectsr=   cellvaluer   get_or_creater   allannotater	   r   filterr   valuesr   r   r   order_byfirstrI   
first_name	last_namesupport_emailsupport_passwordsupport_imap_hostbrowser	gamer_tagrW   create_origincreate_outlookoutlook_createddont_check_ipdatetimerandomrandintdate
birth_dateconsoler:   rH   save)	selfwb_obj	sheet_objr{   row_itemr   Znew_itemcreatedZ
proxy_itemr*   r*   r+   add_accounts_from_filei   sz    






z(CreateOutlookMail.add_accounts_from_filec              
   C   s   z
|   W S  tjjjfy| } zRdt|v rLtd|d td t	  ntd|d td t	  W Y d }~q d }~0 0 q d S )Nz)server closed the connection unexpectedlyzconnect server error : z try again in 10 secra   zserver unnormal error z try again in 30 sec)
sub_coredjangodbutilsOperationalErrorr>   r:   rF   rG   r   )r   errorr*   r*   r+   core   s    


zCreateOutlookMail.corec                 C   sL  t dd d}|std dS tjj|d}ttjjd |dd}t	|dkrdtd	 t
d
 d	S tjjd djt tjdd |dd}| }t| d || jkrtd t
d
 dS td|d | j|   |d | j|  }td}|jdkrtd|j ntd d S | d}g }t	|dk rTtd t
d
 d	S |d }	|	  |	jrtd|	j d t|	j d|	j d |d= q2td|	j dd tjj|	d j|d!d!d"jd#d$d% |	jrg }
n2tjj|	jd&jt tjd'd( d)jd*d#d+}
td,D ]}zztd|	j d-d tjdd,d.}|jdkrltd|	j d|j ntd|	j d W  d S | d}W  qW n2   td|	j d/|d0t   t!"d, Y n0 q |	  tjj|	d!d!d1# }|r|| _$ntjj%|	d | _$|	j&d u r|t|
| v r|	j'd2kstd|	j d3| d4 td|	j tjj|d d5 | j(d3| d4d!d6 t!"d' | j$  d#| j$_)d3| d4| j$_*| j$+  t,  t-  t.d7d7dd8 t!"d, q2n|	j'd2krtd|	j d9 d}| j(d:d!d6 t |	_/|	+  t0jj1|	d;d<\}}ztd=|	j  |	j2| _2| j3|	|	j'd>}td|	j d? t-  |	  |d@dAkrdA|	_t4||	_5| j2|	_2|	+  td|	j dB|	j dCdD t6  d'}| (dE |  d#|_7|+  nZ|dFdGv r2dH|	_|dF|	_8|	+  n.dH|	_|dF|	_8|	+  td|	j dI| t!"| | j$  t | j$_9d#| j$_7| j$+  t-  |	  |	jrtdJ nt.d7d7dd8 |d= W nf t:y. } zLt-  td|	j dK|	j dL|dMt   tdN| t!"dO W Y d }~n
d }~0 0 t;<dP|	j' dQ q2d S )RNCONSOLE_NAME)defaultzno console name found in .envzno console name foundrR   )signup_statusr   rX   r   z)no account need to create on this consolezpress any key to close ...)r      )hours)start_signup_time__gtr   z+ account created in this console on 24 hourz6this console goes on maximum limit per day , change itzmax limit per dayzthis accounts need to create : z0https://arzbazi.com/accounts/get-local-timezone/r!   zcurrent ip : z can not connect to icanhazip.comZ
request_ipr4   zno account leftcreate_outlook_z#item has signup status , change it.z has signup status : z , change it.zCreation started zd####################################################################################################)outlook_accountF)Zoutlook_account__consoleis_done	has_errorTzimperfect creation)r   error_description)rX      )days)r   	create_ip)flatra   get link : )timeoutz,cant get new ip , save old ip , try again : z
, error : )r   r   r   rl   zcurrent ip z' is used in some creation , change it.!)r   rW   update_timeadminr2   z!hmm. using firefox-tor on windowszstarting ...zstart creater   statuszcreation start. log in item_objectr   zcreate acountr   successzCongrat . account z create successzneed reset modemz Congrat . account create successr   )outlook name already existsoutlook account lockedfailedzcreate account has error : zno need reset modem 1zaccount z5 creation failed , sleep 20 sec , try again, error : z full trace : z/creation faild , try again in 20 sec , error :    zTASKKILL /F /IM z!.exe /FI "USERNAME eq %username%")=r   r:   r   r}   r=   listr   r   r   leninputexcluder
   	localtime	timedeltacountmax_create_per_dayr;   status_coderA   jsonrefresh_from_dbr   r   rX   rH   r   rE   r   values_listr|   	traceback
format_excrF   rG   lastworkercreaterW   r   update_worker_statusr   r   r   r.   r   rL   start_signup_timer   r   last_create_statuscreate_account_funcr>   r   r,   r   r   end_time	Exceptionossystem)r   console_nameconsole_objectZaccounts_need_createZstarted_in_24_hourZstarted_countZget_ip_requestZ
current_ipZlast_used_ips_2item_1Zlast_used_ipsiitlast_workerwait_secondsZ	process_0r   Zcreate_statusZerror_2r*   r*   r+   r      s:   



*
















 zCreateOutlookMail.sub_corec                 C   s   t d| jj d |rZt|j|j|j|j|j|d}|rTt	d t
|jdd}qd }nTt
|j|d}|rt	d t
|jdd}nd }tdrt| t d| jj d ||d	S )
Nr   z
get driver)emailproxy_ip
proxy_port
proxy_user
proxy_passr   r]   rd   )r   r   zXboxPcApp.exezafter focus on ps)chrome_driverlocal_driver)r   r   rX   r   rH   
ip_addressportrI   rF   rG   r   r   r   )r   rW   fifa_accountr   open_outlookr   r   r*   r*   r+   
get_driverl  s(    


zCreateOutlookMail.get_driverrd   )r   c           H   
   C   s  t d|j d || _tjjdd }|dkr\| j|j||dd}|	d}|	d	}n0| j
d
dd | j|j||dd}|	d}d }|dkr|  n|  td td |  |jd }tjj|dd\}}	|jrB|jdu rBt d|j d | j
ddd t d| jj dd |	d td |jtjdd}
|D ]}|
| td qR|jtjdd  td z0|jtjdd t d|j d ddddW S    Y n0 tdd d!|d" td |jtjd!d}td |jD ]}|| td q|jtjdd  td# |jtjd$d}|jD ]}|| td qT|jtjd%d}|jD ]}|| td q|jtjdd  t d|j d&t  | j
d'dd td# t|jtjd(d}| d) td* t|jtjd+d}| t!|j"j# t d|j d, td* t|jtjd-d}| t!|j"j$ td* |jtjd.d}t!|j"j%D ]}|| td qt d|j d/ td* |jtjdd  | j
d0dd d1| _&td d2}t d|j d3 t'  z|jtjd4drt d|j d5 |dkrtd6 t(d7 |)  |rz|)  td# t*  | j+||j,d8W S t d|j d9 | 
d: W n4 t-y } z|W Y d }~nd }~0    Y n0 |j./d;rPt d|j d< | 
d= |  d|_0|1  |)  td | j+||d8S |j./d>rt d|j d? | 
d= qnl|j./d@rt d|j dA | 
d= qn<|d*7 }|d*krt d|j dB | j
dBdd tdC q| 
dD |  d|_0|1  d|_|1  t2dED ]>}tdd dF|d"}|rH qfnt d|j dG |3  q&z"|jtjdFd  td# W n   t d|j dH Y n0 z|jtjdFd  W n   t d|j dI Y n0 tdd dJ|d"}|r|jtjdJd  tdK |  tjj|dLd\}}|j4
rP|
rPt d|j dM t d| jj ddN |	dN td tdd dO|d"}|r|jtjdOd}z|  W n*   |5dPdQ td |  Y n0 | 6||j4|j7|j8 tdK nt d|j dR |  d|_|1  |  d|_9|1  dS| _&n|j0sV|jdu 
rP| j
dTdd |j,dkr| :||j|j4|j7|j8|}|)  n| :||j|j4|j7|j8|}|	dUdVkrdddVdS t d|j dW| |  tjj|dXd\}}|jdu 
rP|j4
rPt d|j dY t d| jj ddZ |	dZ td tdd dO|d"}|j.}|	sv|/d[
rt d|j d\|d]|d d^  |/d_	s|jtjdOd} z|   W n*   |5dPdQ td |   Y n0 | 6||j4|j7|j8 tdK nt d|j dR |  d|_|1  |  d|_9|1  dS| _&|  tjj|d`d\}!}"|j;r|!jdu rt d|j da|j; | j
dbdd td# t2dED ]@}#|j./dcs|j./ddst d|j de|j. t d| jj ddc |	dc tdK z|jtjdfd  W nV   z*t d|j dg |jtjdhd  W n   t d|j di Y n0 Y n0 td# |j./djs|j./dcrt d|j dk z|jtjdld t d|j dm |<  td# | j|j||dd}|	d}td |  td t d| jj ddc |	dc tdK W 
qW n   t d|j dn Y n0 td z|jtjdfd  W nV   z*t d|j do |jtjdhd  W n   t d|j dp Y n0 Y n0 tdC  q|j./d@rt d|j dq z:|jtjdrd  t d|j ds tdt W 
qW n   t d|j du Y n0 zR|jtjdvd}$|D ]}|$| tdw q|jtjdxd  td W n   t d|j dy Y n0 |jtjdzd}|jD ]}%||% tdw q|jtjdxd  td# z4|jtjd{d  t d|j d| td W n   Y n0 z4|jtjd}d  t d|j d~ tdK W n   Y n0 |j./drt d|j d zt d|j d |<  td# | j|j||dd}|	d}td |  td t d| jj ddc |	dc tdK W 
qW n$   t d|j dt=>  Y n0 |j./dr|t d|j d zt d|j d |<  td# | j|j||dd}|	d}td |  td t d| jj ddc |	dc tdK W 
qW n$   t d|j dt=>  Y n0 |j./djrt d|j d  q|j./d[rt d|j d | 6||j4|j7|j8 nt d|j d|j.  q
qd}&tdd d|d*d}'|'rDt!|j;|'j?v r.d}&nt d|j d|'j? |j./djsv|j./dsv|&du r\t@dn|&du r\z|jtjAdd}(W n   z|jtjdd t@dW n   t d|j d Y n0 z"|jtjdd dddVdW  Y S    t d|j d Y n0 t@dY n0 |  td d})t2d#D ]}*|)rt!|j;d t!tBCdd D ]}+|(|+ td qnd})td z.|jtjdd t d|j d W  q>W n   t d|j d Y n0 zF|jtjdd t2dCD ]},|tDjE q d})t d|j d W n   Y n0 qF|jtjAdd  td d| _&t d|j d |!  d|!_|!1  |  d|_F|1  |  tjj|dd\}-}.|jGr|-jdu rtjj|dd\}/}0d}1|/jdu r<t d|j d | j
ddd t2dCD ]J}2|  |2dkrNt d|j d t@d| jH|j|j||j"||d}3|3r|3	ddu r|3	d}4|  |4|_I|1   qjn|3	dUd dkrt d|j d |jtjdd  td# d}1 qjt d|j d|3d|2 |)  td# d}5| j|j|||5d}|	d}|dkrT|  n|  td q|1du r| jJ|||dd q`t d|j dt  tKjKLtM}6|jN}7t2dtD ]}8z|jtjdd |8r|8d d2kr|jtjdd  n|jtjdd  tdE |jOjP|7d td* |jtjdd  td W  qvW n   td Y n0 qd| _&tdd d|d" d }9t2dD ]}:tQ||jddd};|;	dg r|;	dg D ]}<|<	dd r|<	d|6krtRSd|<	d}=|=r,t d|j |<	d |=Td*}9 qt d|j d|<	d td# |:d#kr|jtjdd  t d|j d q|9r q^n(t d|j d|;	dd|6 td# n|;	dUrt d|j d|;	dU td# qnh|:r.|:d# d2kr.|jtjdd  t d|j d n,t d|j d|;	dd|6 td# qq|9d u rpt@dă|  |jtjdd}>t!|9D ]}?|>|? tdw qtd* |jtjdd  td* tdd d|d" td |jtjdd  td# t d|j dɃ d| _&|/  d|/_|/1  n$t d|j d˃ | jJ|||dd tjj|dd\}@}A|@jdu rt2dED ]}Bt d| jj dd̓ |	d͡ tdK |j./dΡr|jtjdd  td n*t d| jj dd̓ |	d͡ tdE tdd d|ddgdҍ}C|Cr q4qtd# z4|jtjdd  tdE t d|j dԃ W n   Y n0 |C  tdE tKjKLtM}Dtdd d|d" td# |jtjdd  td# tdd d|d" | j
ddd |  d }9t2dD ]}:tQ||jddd};|;	dg r$|;	dg D ]}<|<	dd r:|<	d|Dkr:tRSd|<	d}=|=rt d|j d|<	d |=Td*}9 qt d|j d|<	d td# |:d#kr:|jtjdd  t(d q:|9r qn(t d|j d|;	dd|D td# n|;	dUrZt d|j d|;	dU td# qnh|:r|:d# d2kr|jtjdd  t d|j d n,t d|j d|;	dd|D td# qq|9d u rt@d܃|jtjdd}>t!|9D ]}?|>|? tdw qtd# |jtjdd  td# z@|jtjdd  td# |jtjdd  td# W n   Y n0 tdd d|d" td# |jtjdd  td# tdd d|d" td# t!|jtjddj?UddQUddQUddQ}Etd# t d|j d|E |  |E|_V|1  tWX|EL }F|jtjdd}Gt!|FD ]}?|G|? tdw q\td# |jtjdd  td d| _&t d|j d |@  d|@_|@1  |-  d|-_|-1  dddS )Nr   zcreate account funcxboxs)platformrl   T)rW   r   r   r   r   r   zopening browserFr   rO   r]   z@outlook.comr   r   zneed to create outlook zneed to create outlookr   zhttps://signup.live.com/signupz//*[@id="usernameInput"]byr   皙?z//*[@id="nextButton"]//*[@id="MemberNameError"]ztry another namer   r   status_boolr   r   xpathonez//*[@id="Password"]driverra   z//*[@id="firstNameInput"]z//*[@id="lastNameInput"]z1email sign up , first name and last name selectedz'email first name and last name selectedz //*[@id="countryRegionDropdown"]ZUKr4   z//*[@id="BirthDay"]zbirth date selected : z//*[@id="BirthMonth"]z//*[@id="BirthYear"]zpassword interedz email user name and password setemail_user_password_setr   zits must go to z2//*[contains(text(),'When you need to prove you')]zwhen you need to prove found<   zthis ip is dead , auto change.r   zthis ip is dead , change it.z
ip is deadz#https://signup.live.com/error.aspx?z.after solve captcha get error . try to sign inzcaptcha solvedz,https://privacynotice.account.microsoft.com/z+after complete captcha. privacynotice foundhttps://login.live.com/z)after complete captcha . login live foundwait to solve captchar   zafter captcharT   //buttonzcan not find next. refresh pagezcan not find privacy pageznot find privacy page again//input[@id="idBtn_Back"]rq   Zoutlook_support_createdz,outlook support needed , go to security pagez&https://account.microsoft.com/securityz*//*[@id="security.cards.advanced-options"]zwindow.scrollBy(0,0)r_   z,can not find security card. move other worksemail_support_setzoutlook already createdr   r   zlogin status : Zoutlook_support_creationz(outlook support not created , try to addzhttps://account.live.com/proofs#https://account.live.com/proofs/Addzsecurity card : z current_url : r0   z https://account.live.com/proofs/Zgamer_tag_creationzstart change gamer tag, new : zneed to change gamer tagzhttps://www.xbox.com/en-GB/zhttps://sisu.xboxlive.comz-url not start with xbox.com , started with : z//*[@id='mectrl_headerPicture']zcan not find header picturez(//a[contains(@href, "msa?action=logIn")]z#can not find login button in headerzhttps://sisu.xboxlive.com/zgo to xbox page , try againz"//*[text()='Oops! We hit a snag.']zops , we hit a snagzopen xbox was successzcan not find header picture 2z%can not find login button in header 2zneed to login to xboxz*//*[contains(@aria-label, 'Sign in with')]zlogin with select foundr   zcan not find login with selectz//*[@name='loginfmt']g?z//*[@id='idSIButton9']zcan not find login user namez//*[@name='passwd']z//*[@id='iNext']zneed accept new rulesz//*[@id='idBtn_Back']zstay signed outzEhttps://login.microsoftonline.com/consumers/oauth2/v2.0/logoutsessionzlogoutsession requiredz#need to close browser and try againzexception : zexception 2 : zin change gamer tage pagez'need to support before change gamer tagzurl started with : z1//*[contains(@class,"mectrl_screen_reader_text")]r   	wait_timez#gamer tag exists but not is mine : https://account.live.com/Abusezcant change gamer tagzcreate-account-gamertag-inputz//div[text()='For your security and to ensure only you have access to your account, we will ask you to verify your identity and change your password.']zneed phone numberzcan not find need phone,//div[text()='Your account has been locked']zcan not find account lockedzcan not find gamer tag input i i@B zA//input[@id='create-account-gamertag-input' and @class='success']zgamer tag successzgamer tag not successzA//input[@id='create-account-gamertag-input' and @class='failure']zgamer tag failure , try againzinline-continue-controlgamer_tag_changedzconfirm gamer tagZorigin_creationZorigin_creation_step_onezneed to create origin   z!more than 18 try to create originzTo Many Try Origin Create)rH   rI   user_name_emailr   r   r   r   	origin_idaccount already existsz//a[text()='sign in']z"error on create origin , result : z try again : )r   r	  	open_linkzcreate origin step one successH//div[@id='reg-sqa-privacy-panel' and contains(@style,'display: block')]z(//*[*[contains(text(), 'I accept the')]]z\//*[@Id='read-accept-container' and *[*[*[contains(text(), 'I have read and accept the')]]]])window_namez//*[@id='submitBtn']origin_user_password_setz//*[@id="emailVerifyCode"]2   outlook.office365.com	imap_user	imap_pass	imap_hostemail_countemails_listbodyrF   Your EA Security Code is: (\d+)subjectzlast email not mach , time : //*[@id='resend']click resend code 3zlast email 2:  start time : error on get email : zclick resend codelast email : z can not get origin security codez//*[@id='emailVerifyCode']//*[@id='btnSendCode']z//*[@id="continueDoneBtn"]z//*[@id='continueDoneBtn']z!origin_security_data_set completeorigin_security_data_setzorigin already existsZorigin_creation_step_twoz-https://myaccount.ea.com/cp-ui/security/indexzhttps://myaccount.ea.comz//*[@id="nav_security"]z$//*[@id="authenticator_switch_link"]z//*[@id="twofactoronbtn"])r   multiple_tagz"//*[@id='truste-consent-required']ztruste reququiredz!//*[@id="mfa_send_mfa_code_span"]z!//*[@id='mfa_send_mfa_code_span']z//*[@id="mfa_code_input"]zget security step 3zemail subject 3 : last email not mach 2 , time : zlast email 6: z"can not get origin security code 3z//*[@id='mfa_code_input']z//*[@id='submit_mfa_code_span']z///*[input[@name='codeType' and @id='appradio']]z//*[@id='submitbtnlbl']z%//*[@id="setup_authenticator_turnon"]z%//*[@id='setup_authenticator_turnon']z//*[@id="tfa_qrcode_secretKey"]	
zapp code : z//*[@id='twofactorQRCode']z)//*[@id='savebtn_twofactor_verifyQRcode']origin_full_createdzorigin successfull createdr   r   r   )Yr   rX   r   r   r}   r   r   r   rW   r=   r   maximize_windowrF   rG   r   rH   r   r   r   r   find_elementr   XPATH	send_keysclickr   rI   r   r   r
   r   r   select_by_valuer>   r   rw   rv   ru   r   r1   r:   quitr   r   r   r   current_url
startswithr   r   r|   refreshr   execute_scriptfix_account_supportr   r   support_createdlogin_to_outlookr   closer   r   rA   r   IDr   r   r   	BACKSPACEgamer_tag_createdr   create_origin_step_oneorigin_user_namelogin_to_originr   nowlocal_tzcurrent_window_handle	switch_towindowr   r?   r@   rB   replaceorigin_app_codepyotpTOTP)Hr   r   r   r   Zget_driver_resultr   r   r	  Z	process_1Zproc_created_1member_name_inputcharpassword_inputZfirst_name_inputZlast_name_inputselect_countryZselect_birth_dayZselect_birth_monthZbirth_year_inputZwait_countererriiZget_elemback_btnZ	process_2Zproc_created_2Zsecurity_cardZelem_1login_statusZ	process_3Zproc_created_3Zdriver_current_urlZelem_2Z	process_4Zproc_created_4iiiiZusername_inputZchar2Zgamer_tage_already_changedZgamer_tage_headerZcheck_gamer_tag_inputZneed_enter_gamer_tageZssssnmZsssZ	process_5Zproc_created_5Z	process_6Zproc_created_6Zorigin_account_already_existsZnnnnZstep_one_resultr
  r   start_time_4r  nnnsecurity_code_3wait_time_3r  
last_emailsearch_security_codeea_security_inputchar_3Z	process_7Zproc_created_7iiinZ
get_elem_2Zstart_time_6app_code	totp_codeZtwo_factor_inputr*   r*   r+   r     s   





































































































"

































































z%CreateOutlookMail.create_account_funcc                 C   s  t d| jj d t d| jj dd |d td |jtjdd}|D ]}|	| td qR|jtjd	d
  z0|jtjd
d t d| jj d tdW n   Y n0 tddd|d td |jtjdd}	|D ]}|		| td q|jtjd	d
  td t d| jj d |jdrt d| jj d z|jtjdd ddddW S    Y n0 tddd|dd}
tddd|dd}|
s|rV|jtjdd
  t d| jj d|
d | td tddd|dd}tddd|dd}|s|rVt d| jj d|d | |jtjdd
  td z6|jtjd	d
  t d| jj d! td W n   Y n0 z6|jtjd"d
  t d| jj d# td W n   Y n0 z6|jtjd$d
  t d| jj d% td W n    t d| jj d& Y n0 |rr| jjsr| |||| | j  d| j_| j  tddd$|d}|r|jtjd$d
  t d| jj d' td t d| jj d( dd)d*S )+Nr   zlogin to outlookr   r   rO   z//*[@name="loginfmt"]r   r   z//*[@id="idSIButton9"]r   zcan not login to outlookr   r   z//*[@name="passwd"]r   rq   ra   zuser name and password enteredr  zaccount locked url seensr  Tr   r   r   zL//span[contains(text(),"Your Microsoft account brings everything together")]r4   r  z?//span[contains(text(),"Your important things are right here")]r   z2Your Microsoft account brings everything together z -- z
back btn 1z//*[@id="declineButton"]z
back btn 3r   z
back btn 2zcan not find back buttonz
back btn 4zlogin to outlook successr   r'  )r   r   rX   r=   rF   rG   r)  r   r*  r+  r,  r   r   r/  r0  r4  r3  r   r   )r   r   rI   r   r   r   r	  rF  rG  rH  Zsync_together_1Zsync_together_2Zsync_together_3Zsync_together_4rL  r*   r*   r+   r5    s    












z"CreateOutlookMail.login_to_outlookc                 C   s  t d| jj dt  tdD ]}tddd|d}tddd|d	d
}d}|s|s|rt d| jj dd |d t	d |j
drd}|s|s|rt d| jj d | jddd |rtjt}	t	d z|d  t d| jj d t	d z&|d  t d| jj d W nX   |jtjdd}
t|D ]}|
| t	d qT|d  t	d Y n0 t d| jj d W n~ ty" } zdt d| jj d| |jtjdd}
t|D ]}|
| t	d q|d  W Y d }~n
d }~0 0 | jd dd d }td!D ]z}t|||dd"}|d#g rR|d#g D ]v}|d$d r|d%|	krtd&|d$}|r|d	} qn(|d'rnt d| jj d(|d' qn|r qn*t d| jj d)|d%d*|	 t	d+ |d+kr|jtjd,d  t d| jj d- nf|d'rt d| jj d(|d' t	d+ q>n.t d| jj d.|d%d*|	 t	d+ q>q>|d u rt d| jj d/ td/t	d td0D ]}zftddd1|d |jtjd2d}t d| jj d3| t|D ]}|| t	d q8W  qW nj   t d| jj d4 |j
d5rt d| jj d6 nt d| jj d7 |  t	d+ Y n0 qz|jtjd8d  W n    |jtjdd  Y n0 t d| jj d9 t	d tddd:|d}|r| jd;dd tjt}|jtjd<d  tddd=|d t	d |jtjd>d}|D ]}|| t	d q|jtjd?d  t	d d }td!D ]}t|||d@}|d$d r8|d%|kr8td&|d$}|rf|d	} qjn.t d| jj dA|d%dB| t	d+ qސq|d u rt d| jj dC  q|jtjdDd}|D ]}|| t	d q|jtjdEd  t	d nt d| jj dF tdq" qq"d S )GNr   zcheck for account need supportrO   r   r   z1//div[contains(text(), 'Call us overprotective')]r   z///div[contains(text(), 'protect your account')]r4   r  Fr   zThttps://account.microsoft.com/security?fref=home.drawers.security.security-dashboardrq   r  Tzneed supportzneed support emailr   r]   z//input[@name="proof"]zsupport email need proofZiNextz
press nextZiProofEmailr   r   ZiSelectProofActionzthis email already proofedzfind proof error : ZEmailAddresszget security code step 1r   r  r  r  rF   zSecurity code: (\d+)r   r  zlast email 3: r  ra   r  zclick resend code 4r  zcan not get security coderT   z//div[@id="iEnterSubhead"]ZiOttTextzsecurity code  = z&cant send security code , refresh pagez&https://account.live.com/proofs/Verifyzneed to refreshz(cant find correct url , but refresh pageZiVerifyCodeActionzsecurity code enteredz$//div[text()='Verify your identity']zget security code step 2z(//div[@id='idDiv_SAOTCS_Proofs']/div/divz+//*[@id="idTxtBx_SAOTCS_ProofConfirmation"]z+//*[@id='idTxtBx_SAOTCS_ProofConfirmation']z#//*[@id='idSubmit_SAOTCS_SendCode']r  r  r  zlast email 2 : z start time : 2zcan not get security code 2z//*[@id='idTxtBx_SAOTCC_OTC']z#//*[@id='idSubmit_SAOTCC_Continue']z need support email but have not.) r   r   rX   r
   r   r|   r   r=   rF   rG   r/  r0  r   r   r=  r>  find_element_by_xpathr,  find_element_by_idr)  r   NAMEr>   r+  r   r   r?   r@   rB   r*  r7  r1  )r   r   r   r   r   ttZneed_supportZneed_support2Zneed_support_3
start_timeZsupport_email_inputrG  r   security_coder  r  rT  rU  ZiiidZsupport_password_inputZverify_identityZstart_time_2Zsupport_again_inputZsecurity_code_2Zwait_time_2Zlast_email_2Zsupport_again_code_inputr*   r*   r+   r3  :  sL   






$




















z%CreateOutlookMail.fix_account_supportc                 C   s  t d| jj d|d|d|d|d| z@td t d| jj dd |d td z"|jtjd	d
	  td W n   Y n0 d}|dkst
g d}t|jtjdd
}|| td | j  || j_| j  t d| jj d| t|jtjdd
}|t|j td t|jtjdd
}|t|j td t|jtjdd
}|t|j td |jtjdd
	  t d| jj d tddd|d}	td |jtjdd
}
|D ]}|
| td q|
tj td z |jtjdd
 ddd d!W W S    Y n0 tdD ]}|jtjd"d
}|d d|  tt
d#d$ }|D ]}|| td q|tj td zH|jtjd%d
 t d| jj d&| |jtjd"d
  td W n   Y  qY n0 qJ|jtjd'd
}|D ]}|| td q*td |jtjd(d
	  tddd)|d}t d| jj d*| zb|jtjd)d
 t d| jj d+tj  td,D  ]}z4|jtjd-d
 | jd.dd/ d0d1|d2W   W W S    Y n0 zX|jtjd3d
 t d| jj d4tj  | jd5dd/ td ddd6W   W W S  ty } z|W Y d }~nd }~0    Y n0 td |dkrt   | jd7dd/ q|jtjd)d
 | jd5dd/ ddd6W W S  ty } z|W Y d }~n.d }~0    t d| jj d8t!"  Y n0 |jtjd-d
 | jd9dd/ d0d1|d2W S    t d| jj d:t!"  z@|jtjd;d
 t d| jj d< td ddd=d!W  Y S    t d| jj d>t!"  Y n0 ddd6 Y S 0 d S )?Nr   zcreate origin step one : z - r]   r   z2https://signin.ea.com/p/juno/create?execution=e...a,  https://signin.ea.com/p/juno/create?execution=e244821713s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Finitref_replay%3Dfalse%26response_type%3Dcode%26redirect_uri%3Dhttps%253A%252F%252Fmyaccount.ea.com%252Fcp-ui%252Faboutme%252Flogin%26locale%3Den_US%26client_id%3Dcustomer_portalrq   z//*[@id="createLink"]r   ra   GBrl   )rb  ZAFZAXZAUZBEZBRCAZCOCNZGLZDEZIEZITZKWNZNOZPLz$//*[@id="clientreg_country-selctrl"]r4   zselected country is : z#//*[@id="clientreg_dobday-selctrl"]z%//*[@id="clientreg_dobmonth-selctrl"]z$//*[@id="clientreg_dobyear-selctrl"]z//*[@id='countryDobNextBtn']zcountry and birth day selectedr   r   z//*[@id="email"]r   //*[@id='email']r   z//*[contains(@class,'otkform-group-haserror') and contains(text(), 'The email address you have entered is already registered')]Fr   r  r   z//*[@id='originId']r/   i'  z.//*[contains(@class,'otkform-group-haserror')]zorigin id has error //*[@id='password']z//*[@id='basicInfoNextBtn']z>//div[@aria-hidden="false"]/*[@title="Verification challenge"]zVerification challenge : z this ip need captcha , solve it.r0   r  zafter solve captchar   Tr   )r   r   r
  zu//p[@class="otkc otkinput-errormsg otkform-group-help otkform-group-haserror" and contains(text(),"try that again.")]z$can not solve captcha , try again . zcant solve captchar'  r   ztraceback 4 : zafter solve captcha 2z;error on create , check for technical difficalty , error : z//div[@id='panel-connection-error' and contains(@style,'display: block')]//*[contains(text(),'experiencing technical difficulties')]z$this ip has technical difficulties 2ztechnical difficultiesztraceback 5 : )#r   r   rX   rF   rG   r=   r)  r   r*  r,  r   choicer   r-  r   regionr   r>   rw   rv   ru   r   r+  r   TABr|   r   clearr   r=  r   r   r1   r   r   )r   rH   rI   r	  r   r   r   Zselected_countryrI  Zfind_email_elememail_inputchar_2iiiZorigin_id_inputr
  Zpassword_input_2airJ  r*   r*   r+   r:    s$   













 









z(CreateOutlookMail.create_origin_step_oneFc                 C   s  t d| jj d| |rrt d| jj dd |d tddd|d}td	 |jtj	d
d
  td z2|jtj	dd}|D ]}|| td qW n    t d| jj d Y n0 tddd|d}td |jtj	dd}|jD ]}|| td qtd |jtj	dd
  t d| jj d z2tddd|d td	 |jtj	dd
  W n    t d| jj d Y n0 tjt}	tddd|d td	 |jtj	dd
  tddd|d d }
tdD ]<}t||jdd}|dd r|d|	krtd |d!}|rbt d| jj |d! |d}
 q,t d| jj d"|d td# |d#kr(|jtj	d$d
  t d| jj d% nl|r|d# d&kr|jtj	d$d
  t d| jj d' n.t d| jj d(|dd)|	 td# qq|
d u r>td*|jtj	d+d}t|
D ]}|| qVtd |jtj	d,d
  td- d.d/d0S )1Nr   zlogin to origin , open_link : r   z6https://www.ea.com/ea-sports-fc/ultimate-team/web-app/r   r   z)//*[@class="btn-standard call-to-action"]r   rO   z)//*[@class='btn-standard call-to-action']r   r]   rg  r   zemail field not foundz//*[@id="password"]r4   rh  z//*[@id='logInBtn']zafter login btn pressedz//*[@id="secureBtn"]z//*[@id='secureBtn']zcant find secureBtnz//*[@id="btnSendCode"]r   z//*[@id="twoFactorCode"]r  r  r[  r  rF   r  r  r#  ra   r  r  r   zclick resend code 2r  r  z"can not get origin security code 2z//*[@id='twoFactorCode']z//*[@id='btnSubmit']rq   Tr   r'  )r   r   rX   r=   r   rF   rG   r)  r   r*  r,  r+  rI   r   r=  r>  r|   r   r?   r@   rB   r   r>   )r   r   r   r	  r  elemrm  rn  Zpassword_input_4Zstart_time_5rR  rS  rT  rU  rV  rW  r*   r*   r+   r<    s    

















z!CreateOutlookMail.login_to_originc                 C   s   |rd S Nr*   )r   r   r  r*   r*   r+   login_to_fifa_web_app  s    z'CreateOutlookMail.login_to_fifa_web_appc                 C   s*   dd t tD }||v r"|| S dS d S )Nc                 S   s   i | ]\}\}}||qS r*   r*   ).0indexkeyr   r*   r*   r+   
<dictcomp>      z:CreateOutlookMail.get_last_create_step.<locals>.<dictcomp>r   )	enumerater   )r   r   Z
steps_dictr*   r*   r+   get_last_create_step  s    z&CreateOutlookMail.get_last_create_stepT)status_textc                 C   s0   | j   || j _|r"t | j _| j   d S rs  )r   r   r   r
   r   status_change_timer   )r   r|  r   r*   r*   r+   r     s
    
z&CreateOutlookMail.update_worker_status)rd   )F)F)T)__name__
__module____qualname__r   r   r   r   r   r   r   r   r5  r3  r:  r<  rt  r{  r>   r   r*   r*   r*   r+   rM   e   s.   : <      \` " 0
M
rM   __main__zadding accounts from file : )F)Gr   r   r   r?   sysrF   r   r   keyboardrx   rD  pytzr;   decoupler   	django.dbr   django.db.modelsr   r   r   r   r   django.db.models.functionsr	   django.utilsr
   selenium.webdriver.common.byr   selenium.webdriver.common.keysr   Z!selenium.webdriver.support.selectr   Zurllib3.exceptionsr   rS   r$   pathappendenviron
setdefaultsetupaccounts.constsr   accounts.modelsr   r   r   r   r   r   sbc.login_to_ea_with_seleniumr   r   r   sbc.public_methodsr   r   r   utils.realy_public_methodsr   r>  r,   r.   r1   intrL   rM   r~  r:   r   r*   r*   r*   r+   <module>   sj   
 
%             
