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m	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZmZ d dlmZmZ d dlmZmZ d d	lmZmZmZmZmZ d d
l m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: ej;dkrld dl<m=Z=m>Z> d dl?m@Z@mAZA dej_BG dd„ dƒZCdS )é    N)Úclose_old_connections)Útimezone)ÚConsoleAccountsUtils)ÚFifaAccountSearchÚ
PlayerCard)ÚFifaAccountSquadGameÚFifaAccountMomentsGame)ÚBASE_DIRÚ	TIME_ZONE)Ú6ARZBAZI_REPORT_TOPIC_DISCHARGE_ERROR_THREAD_MESSAGE_IDÚ8ARZBAZI_REPORT_TOPIC_PLAYERS_NOT_FOUND_THREAD_MESSAGE_ID)Ú	SBCWorkerÚSBCTargetFilterÚSBCTargetFilterClubMovesÚSBCTargetFilterLeagueMovesÚSBCTargetFilterNationMoves)
Ú	new_printÚget_previous_price_gradeÚget_next_price_gradeÚ	has_imageÚset_main_logÚset_sub_logÚget_image_positionÚget_player_data_by_asset_idÚset_sbc_statusÚtelegram_send_photo)Úlogout_login)ÚConsoleErrorUtils)ÚConsoleLoginUtils)Ú	MenuUtils)ÚPlayFootballUtils)Úget_db_time)ÚScreenUtils)ÚTransferListUtilsÚnt)ÚPS4_ButtonsÚUniqe_XBOXS_Buttons)Ú	ps4_graphÚxbox360_graphz,C:\Program Files\Tesseract-OCR\tesseract.exec                   @   s¢  e Zd ZdddddœZed d ed d  ed	< ed
 d ed d  ed< eejedœdd„Zd^dd„Z	d_dd„Z
d`dd„Zdadd„Zdbdd„Zdcd d!„Zddd"d#„Zded$d%„Zdfd(d)„Zdgd*d+„Zdhd,d-„Zdid.d/„Zd0d1„ Zdjd2d3„Zdked4œd5d6„Zdleed8œd9d:„Zdmd;d<„Zd=d>„ Zdned@œdAdB„ZdCdD„ ZdEdF„ Z dodGdH„Z!dIdJ„ Z"dpdKdL„Z#dMdN„ Z$dqdPdQ„Z%drdRdS„Z&dTdU„ Z'dsdWdX„Z(dtdYdZ„Z)dud\d]„Z*dS )vÚPublicMoves)é/  é>  )r*   éÞ  )éL  r+   )r-   r,   )Úleft_topÚleft_buttonÚ	right_topZright_buttonr0   r   r.   Úwidthr/   é   Úheight)Ú
sbc_workerÚseÚmain_dicc                 C   s$  ddl m} || _|j| _|| _|| _|| _|| _ddg| _| jj	dv rRt
ƒ | _n| jj	dv rhtƒ | _ntdƒ‚ddgddgddgddgdd	gdd
gddgddgddgddgddgddgddgddgddgddgddgdd	gdd
gddgddgddgddgddgddgddgdœ| _d| _d| _d| _i | _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _i | _t| d| _t | d| _!t"| d| _#| jj	dv r°| j# $t%¡| _&n&| jj	dv rÎ| j# $t'¡| _&ntdƒ‚| j# (| j&¡| _)| j# *¡  t+| d| _,t-| d| _.t/| d| _0t1| d| _2d S )Nr   )Ú	SBCSolver)ÚpsÚps5©ÚxboxsÚxbox360zNo Joystick Foundr2   é   é   é   é   é   é   é   é	   é
   é   é   )ÚaÚbÚcÚdÚeÚfÚgÚhÚiÚjÚkÚlÚmÚnÚoÚpÚqÚrÚsÚtÚuÚvÚwÚxÚyÚzFT)Zpublic_moves_instance)r<   r;   zNo Platform Found)3Úsbc.sbc_solverr7   r4   Úfifa_accountr5   r6   Ú
server_keyÚsbc_solver_instanceZcurrent_letter_posÚplatformr%   Úps4_buttonsr&   Ú	ExceptionÚkeyboardÚbreak_press_r1Úbreak_get_minimap_dataÚmapZminimap_dataÚroundZball_position_xÚ	r2_statusZ	l2_statusZduplicate_key_counterZcant_find_console_counterZset_account_suspendZea_connecting_waitZcan_not_find_gameÚcant_buy_item_counterZimage_cacher   Zconsole_accounts_utilsr"   Úscreen_utilsr   Ú
menu_utilsZget_all_menusr'   Úmenusr(   Zmake_menu_dictÚall_menus_dictZload_all_templatesr   Úconsole_error_utilsr   Úconsole_login_utilsr#   Útransfer_list_utilsr    Úplay_football_utils)Úselfre   r4   r5   r6   rd   r7   © ry   úEC:\Users\Administrator\Downloads\futplus_django\utils\public_moves.pyÚ__init__.   s^    


$*$*ý
zPublicMoves.__init__çÍÌÌÌÌÌì?c                 C   s   | j j|||dS )N©Ú	threshold)rp   r   )rx   Úsmall_image_nameÚlarge_image_namer~   ry   ry   rz   r   {   s    zPublicMoves.has_imageúscreen_shot_tmp.jpgc                 C   s   | j j||dS )N)Ú
image_nameÚtry_counter)rp   Úget_screen_shot)rx   r‚   rƒ   ry   ry   rz   r„   ~   s    zPublicMoves.get_screen_shotTc                 C   s   | j  |¡S ©N)rq   Újust_find_state)rx   Úget_new_screen_shotry   ry   rz   r†      s    zPublicMoves.just_find_stateNc                 C   s   | j  ||¡S r…   )rt   Úerrors)rx   Úexcluded_imagesÚadd_logry   ry   rz   rˆ   „   s    zPublicMoves.errorsc                 C   s   | j j||dS )N)rƒ   Úraise_error)ru   Ú
close_game)rx   rƒ   r‹   ry   ry   rz   rŒ   ‡   s    zPublicMoves.close_gameFÚultimate_teamc                 C   s   | j j|||dS )N)Úhave_toÚ	state_setrŒ   )ru   Úconsole_open_ultimate)rx   rŽ   r   rŒ   ry   ry   rz   r   Š   s    z!PublicMoves.console_open_ultimatec                 C   s   | j j|dS ©N)rƒ   )ru   Úlogin_with_key)rx   rƒ   ry   ry   rz   r’      s    zPublicMoves.login_with_keyc                 C   s   | j j||dS )N)rƒ   Úspecial_error)ru   Úlogin_to_account)rx   rƒ   r“   ry   ry   rz   r”      s    zPublicMoves.login_to_accountr@   Ú c           	   	   C   sB  |d u rg }t | jd|ƒ t|d ƒD ]}|  ¡  | j|||dr\|dksVt d¡  dS |dkr®|  tj 	t
d| jj› d	¡|¡s¨|  tj 	t
d| jj› d
¡|¡r® dS |dkr|  tj 	t
d| jj› d¡|¡rt | jdƒ | j ¡  t d¡ | j ¡  t d¡  dS |r2|dkr2| j|d t d¡ q&dS )Nz	wait for r=   r}   Úno_wait_after_findr2   Túlive_search_results.pngúutils/ú!_controls/live_search_results.pngú_controls/time_remaining.pngÚcheck_failedú_controls/failed_action.pngz8check failed 1 , failed happened. press cross and circleç      à?F©r‰   )r   rc   Úranger„   r   ÚtimeÚsleepÚosÚpathÚjoinr	   rf   rg   ÚcrossÚcirclerˆ   )	rx   r   r€   Ú	wait_timeÚspecialr~   Úexcluded_errors_imageÚcheck_errorsrP   ry   ry   rz   Úwait_for_image“   sH    
þ
ÿþý
þ



zPublicMoves.wait_for_imagec                 C   s’  |d u rg }|d u rg }t | jd|d|d|d|d|ƒ t|d ƒD ]H}|  ¡  |D ].}	| j|	||drT|dkszt d	¡   d
S qT|dkrÖ|  tj 	t
d| jj› d¡|¡sÐ|  tj 	t
d| jj› d¡|¡rÖ d
S |dkr>|  tj 	t
d| jj› d¡|¡r>t | jdƒ | j ¡  t d¡ | j ¡  t d	¡  dS |r‚|d	kr‚| j|d}
|
dkr‚|dkr‚| jddr‚ dS t d	¡ qBdS )Nzwait for images : z wait time : z special : z excluded_errors_image : z check_errors : r=   r}   r–   r2   Tr—   r˜   r™   rš   r›   rœ   z8check failed 2 , failed happened. press cross and circler   Frž   r   Ú
find_state)r‡   )r   rc   rŸ   r„   r   r    r¡   r¢   r£   r¤   r	   rf   rg   r¥   r¦   rˆ   r†   )rx   Zsmall_image_listr€   r§   r¨   r~   r©   rª   rP   r   Zerrors_resultry   ry   rz   Úwait_for_images¶   sV    þ

þþþ
þ



"zPublicMoves.wait_for_imagesc                 C   s  | j  |¡s<t| jdd|d|ƒ | j  ¡ }t| jd|d|ƒ | j  | j||¡}d}|t|ƒk r|| d }t| j|| ƒ | jjdv r|| d d	kr|| d
 dkr| j	 
¡  t d
¡ | j	 ¡  t d
¡ | j	 ¡  t d
¡ | j	 ¡  t d¡ |d
7 }qR| jjdv rd|| d
 d	krd|| d dkrd| j	 
¡  t d
¡ | j	 ¡  t d¡ qR| j  || d ¡}|j}dd„ |jD ƒ}	| j  || d
 ¡}
|
j}dd„ |
jD ƒ}d}| jD ]}||jv rÂ|} qàqÂg }|rð|j}d
}|dkr>| j j||d|	d|v d|v d}| j j||d|d|v d|v d}|dkrà|r¨t|| d ƒD ]H}d|v r„t| jdƒ | j	 ¡  nt| jdƒ | j	 ¡  t d
¡ q^d|vrÈt| jdƒ | j	 ¡  t d
¡ t d
¡ nH|dkrt| jdƒ | j	jdd t d
¡ n|d krž|rrt|| d ƒD ]>}d|v rXt| jd!ƒ | j	 ¡  nt| jd"ƒ | j	 ¡  q2d|vr’t| jd#ƒ | j	 ¡  t d
¡ nŠ|d$kr(|rþt|| d ƒD ]>}d|v rät| jd%ƒ | j	 ¡  nt| jd&ƒ | j	 ¡  q¾d|vrt| jd'ƒ | j	 ¡  t d
¡ |dkrnd(|v rnt d
¡ | j	 ¡  t d
¡ | j	 ¡  t d
¡ |d)krŽ|| d
 |krŽd*S d}|d+kr d}d,}d-|v rP|d.krPt| jd/ƒ d}td0ƒD ]|}|d
7 }|d1 dkr0|  ¡ }|r0|}t| jd2|d|ƒ | j  | j||¡}d}d*} qP|d3kr@ qP|  ¡  |  ¡ }t| jd4|ƒ |rj qP|  t j! "t#d5| jj› d6¡d7¡sÖ|  t j! "t#d5| jj› d8¡d7¡sÖ|  t j! "t#d5| jj› d9¡d7¡rÜ d,S | j  || d
 ¡rø qP|  t j! "t#d5| jj› d:¡d7¡r" qP||krBt| jd;ƒ | j	 ¡  t d¡ qÐ|d<kr |  ¡  |  t j! "t#d5| jj› d=¡d7¡r t| jd>ƒ | j	 ¡  d,S |sRd?|v r°qRd}|D ]}| $d@¡dAkr¸dB}q¸|d
7 }t j! %t j! "t#d5| jj› dC|
j&› dD¡¡rR|d.krRt| jdE|ƒ t j! "t#d5| jj› dC|
j&› dD¡g}|D ],}| 't j! "t#d5| jj› dC|› dD¡¡ qD| j(||dFdGsRt| jdHƒ |d<krÒ|  ¡  |  t j! "t#d5| jj› d=¡d7¡rÒ| j	 ¡  d,S | j  ¡ }t| jd2|ƒ | j  | j||¡}d}qRd*S )INzneed to find statez first state z second state zstate = z second state = r   r=   r:   Zps4_mainr2   Zgames_and_appsÚoutr@   c                 S   s   g | ]
}|j ‘qS ry   ©Ú	file_name©Ú.0Úitem_1ry   ry   rz   Ú
<listcomp>  ó    z+PublicMoves.go_to_state.<locals>.<listcomp>c                 S   s   g | ]
}|j ‘qS ry   r¯   r±   ry   ry   rz   r´     rµ   r•   Zfind_1Úuse_r1_and_l1Úuse_up_and_down)r¶   r·   Zfind_2Úinr>   zpress a normal r1 step 1zpress a normal rightZdont_need_enterzpress a normal cross step 1zpress a normal circlegš™™™™™Ù?)Z
press_timeÚleftzpress a normal l1zpress a normal leftzpress a normal cross step 2Úrightzpress a normal r1 step 3zpress a normal right 2zpress a normal cross step 3Zconfirm_exitZdont_check_last_stateTÚ	check_keyFZcross_until_connectingZjust_enter_fifazcross until connectioné2   rE   znew state =é(   zerror status : r˜   z_controls/need_use_key.pngr   z_controls/need_use_key_2.pngz_controls/need_use_key_3.pngz_controls/ea_connecting.pngz$need to press cross until ea connectZcheck_for_banz"_controls/console_transfer_ban.pngzconsole transfer ban sign ...Zno_need_check_second_stateÚ
need_sleepéÿÿÿÿé   ú
_controls/ú.pngz*need to control second state, wait time = r¬   ©r§   r¨   zI missed my way))rq   Zcontrol_stater   rc   r¬   Zmap_pathrs   Úlenrf   rg   r8   r    r¡   Údownr¥   Zselect_menu_items_by_nameÚspecialsZmultiple_imagesrr   ÚnodesZfind_menu_iconrŸ   Úr1rº   r¦   Úl1r¹   Úupr†   r„   rˆ   r   r¢   r£   r¤   r	   ÚfindÚexistsÚnameÚappendr­   )rx   Zfirst_stateZsecond_stateZspecial_orderZthe_pathZmain_counterZmain_counter_param_2Ú
first_itemrÆ   Zfirst_multiple_imagesZsecond_itemZsecond_specialsZsecond_multiple_imagesZfirst_item_parentÚitemZparent_specialsZneed_right_leftrP   Zneed_to_pressZno_need_to_controlZ
temp_countÚnumZ
temp_stateÚerror_statusr§   r¨   Zwaiting_imagesZ
image_itemry   ry   rz   Úgo_to_stateà   s®   ÿ
ÿÿ







ÿÿ






þþ























ÿ

þý
þýü
þýøþ


þ
ÿþ ÿÿ

þý

zPublicMoves.go_to_statec              	   C   s   | j j|||||||dS )N)Úlist_with_default_valuesÚsecondÚplayer_min_priceÚplayer_max_priceÚwait_for_list)rv   Úlist_on_transfer_market)rx   Ústart_priceÚbuy_now_pricerÔ   rÕ   rÖ   r×   rØ   ry   ry   rz   rÙ   ù  s    þz#PublicMoves.list_on_transfer_marketc                 C   sb   | j  ¡  t d¡ | j  dd¡ t d¡ | j  ¡  t d¡ | j  ¡  | j  ¡  t d¡ d S )Nr2   éd   éú   g333333Ó?r>   )rg   Úsquarer    r¡   Zpress_left_joystickZpress_crossÚrelease_crossÚrelease_left_joystick©rx   ry   ry   rz   Úquick_sell_from_stadium_clubÿ  s    






z(PublicMoves.quick_sell_from_stadium_clubc                 C   s   | j j||||dS )N)Úscreen_nameÚconfigÚconvertÚconvert_type)rp   Úget_screen_text)rx   rã   rä   rå   ræ   ry   ry   rz   rç   
  s    zPublicMoves.get_screen_text)Úfilter_targetc                 C   s
  |	r(|	j › d|	j› d|	j› d|	j› }n|› d|› d|› }t| jd|d|d|d|d|d|d|ƒ d}|  dd¡ |  tj	 
td| jj› d¡d	¡s¶|  tj	 
td| jj› d
¡d	¡rÖt| jdƒ | j ¡  t d¡ |r®t| jdƒ | j ¡  t d¡ |	rBt| jdt|	ƒƒ |	js$|	jrê|	jp.d› |	jp:d› }t| jd|ƒ |  d¡dkrˆt| jdƒ | j|||||||||	|
d
S | j ¡  t d¡ | j |¡ t d¡ | j |¡sêt| jdƒ | j|||||||||	|
d
S |	jrht| jd|	jƒ |  d¡dkr<t| jdƒ | j|||||||||	|
d
S | j ¡  t d¡ | j |	j¡ t d¡ |	jr$tjj|	jd ¡ }|s°t| jdƒ t| j dƒ t d¡ dS t| jd|	jƒ |  d ¡dkrút| jd!ƒ | j|||||||||	|
d
S | j ¡  t d¡ | j !|¡ t d¡ |	j"r†t| jd"|	j"ƒ t#jj|	j"d# ¡ }|s|t| jd$ƒ t| j d$ƒ t d¡ dS t$jj|	j%d% ¡ }|s¼t| jd&ƒ t| j d&ƒ t d¡ dS |  d'¡dkröt| jd(ƒ | j|||||||||	|
d
S | j ¡  t d¡ | j &|¡ t d¡ |  d)¡dkrZt| jd*ƒ | j|||||||||	|
d
S | j ¡  t d¡ | j '|¡ t d¡ n¼|	j%rBt| jd+|	j%ƒ t$jj|	j%d% ¡ }|sÞt| jd&ƒ t| j d&ƒ t d¡ dS |  d'¡dkrt| jd(ƒ | j|||||||||	|
d
S | j ¡  t d¡ | j &|¡ t d¡ |	rN|
r®|	ršt| jd,ƒ |  d-¡dkršt| jd.ƒ | j|||||||||	|
d
S d}t| jd/|d0|ƒ | j ¡  t d¡ |dkrt(|d1}|d2 rê|d2 }t| jd3|› d4|› ƒ |d5krt| jd6|ƒ d7S | jj)||||||d8}|d9u rFq®nH|d7krŽt*| jtj	 
td	¡d:| j› d;|› d<|› t+d= | j ¡  d7S |d7 }| j ¡  t d¡ qž|  d>¡ t d¡ | j ,¡  t d¡ | j ¡  t d¡ |ržt d¡ | j-t.|ƒd?d@dA}|dBkrD| j ¡  t d¡ | j ¡  t d¡ dS t d¡ | j-|dC|dA}|dBkr”| j ¡  t d¡ | j ¡  t d¡ dS t d¡ |rþt d¡ | j-|d?d@dA}|dBkrô| j ¡  t d¡ | j ¡  t d¡ dS t d¡ |rþ|rZ| j-t.|ƒdDt.|ƒdA}|dBkr¤| j ¡  t d¡ | j ¡  t d¡ dS nJ| j-t.|ƒdDd@dA}|dBkr¤| j ¡  t d¡ | j ¡  t d¡ dS t d¡ | j-|dE|dA}|dBkrô| j ¡  t d¡ | j ¡  t d¡ dS t d¡ |	rb|	sbd@}|	rt/|ƒ}| j-|dE|dA}|dBk	rb| j ¡  t d¡ | j ¡  t d¡ dS | j ¡  t d¡ | jj0ddF |  1¡  |  tj	 
td| jj› dG¡d	¡	s´dS | j 2¡  t3jj4| jt5 6¡ dH t| jdIt3jj| jdJ 7¡ ƒ | j8tj	 
td| jj› dK¡dLdMdN d9S )ONú -- zsearch player in console : z -- sp name r2   Ztransfer_marketÚsearch_playersr˜   z%_controls/player_search_not_found.pngr   z+_controls/player_search_not_found_start.pngz'already in player search . press circlezneed to reset datar   zsearch player find filter : Úbronzer   zsearch player find quality 2 ÚqualityÚsuccessznot hovered quality 2)
Úplayer_nameÚplayer_rateÚplayer_asset_idÚmax_buy_nowr¨   Ú
reset_dataÚsearch_start_priceÚsearch_buy_now_pricerè   Úuse_target_and_filterr=   zselected quality not fixedzsearch player find positionÚpositionznot hovered position)Únationznation not foundrÜ   Fzsearch player find nationr÷   znot hovered nationzsearch player find club)Úteamzclub not found)Úleaguezleague not foundrù   znot hovered leagueÚclubznot hovered clubzsearch player find leaguez&filter target exists. so move to name.rÍ   znot hovered namezsearch player find player z rate : ©rð   r?   zcan not find player z time so change player rate to rÀ   z4too many try for buy target , break , try counter : úplayer name not found)ÚcounterÚwait_for_fix_nameÚplayer_special_nameTúaccount z find player , player name : ú ©ÚcaptionÚmessage_thread_idZpricingZ	min_starté–   )ÚpriceÚ
price_typeÚdefault_priceúcan not find priceZ	max_startZmin_buyÚmax_buy©Úsleep_afterú_controls/search_players.png)rc   Úsearch_timezlen search_number = )rc   ú._controls/transfer_market_no_search_result.pngé   r—   rÃ   )9Úidrö   ÚlevelÚ
rarity_idsr   rc   rÓ   r   r¢   r£   r¤   r	   rf   rg   r¦   r    r¡   Zr3ÚvarsÚmove_to_next_iconÚsearch_playerr¥   rv   Zfind_qualityZcheck_selected_qualityZfind_positionr÷   r   ÚobjectsÚfilterÚfirstr   r4   Zfind_nationrø   r   r   rù   Zfind_leagueZ	find_clubr   Zfind_playerr   r   rÞ   Úsearch_player_pricer   r   rÊ   r„   Útriangler   Úcreater   Ú	localtimeÚcountr«   )rx   rî   rï   rð   rñ   r¨   rò   ró   rô   rè   rõ   rþ   rÿ   Zsearch_start_min_priceZbuy_dataÚquality_nameZnation_movesZ
team_movesZleague_movesrý   Ú	card_infoZfind_player_resultZ
search_resr  ry   ry   rz   r    s^   $þ
þý
þýü	



ü


üü



ü




ü


ü


ü


ü





ÿþ


ÿÿû








þ





ÿ






þ





þ




þ





ÿ













þý
ÿ
þüzPublicMoves.search_playerrB   )ÚplayerÚtarget_filterc           +      C   sª  d}z¢t | jd|d|d|d||d|d|d||	d|
d|d|d|ƒ d}d}d}t|ƒD ],}|j}|rj|}|rŽz| ¡  W n   Y n0 |j}t|ƒD ]}t|ƒ}q–|}t|jd}d }|d rÈ|d }| j	|j
|j|j|||||||||rð|nd d	}|st | jd
ƒ ddi  W S |dkrxt | jdƒ | j ¡  t d¡ | j ¡  t d¡ | j ¡  t d¡ ddi  W S d}d}|rŠd}|  ¡ rþt|ƒD ]B}d} |r¸ttd}!t |!¡}"||"  ¡ }#t | jd|#d|d|!d|"ƒ	 |#}$tdƒD ]4}z| j ¡ }$W  q(W n   t d¡ Y n0 qòt | jd|$d|ƒ |$|#d krN qâ|$|#d k r`d} |$du rö|dkrö|röt | jdƒ | j ¡  t| jtj td ¡d!| j› d"td# n>|dkrött  dd$¡ƒ}%t|%ƒD ]}&| j !¡  t d%¡ qÚ| rÊ|r| jj"||d&}'|' #d'¡d(krt | jd)|'ƒ |  $¡  |  %tj td*| jj&› d+¡d ¡rf| j ¡  t d¡ |dk r~qœdd,i    W S |rÖt '¡ |krÖt | jd-t '¡ d.|ƒ | j ¡  dd,i    W S | jj(|
d/röd}|} qânÔ|  $¡  |  %tj td*| jj&› d0¡d ¡rÊ|  j)d7  _)| j)dkr¦d| _)t | jd1d2| j)ƒ tdƒD ]}(| j ¡  t d%¡ q\| j*dd3 d}t | jd4ƒ dd5i    W S t | jd6| j)ƒ | j ¡  t d¡ | j +¡  t d7¡ qœ|s| j ¡  t d¡ n t | jd8ƒ | j ,¡  t d¡ |rV| j ¡  | jj-| dk r^t | jd9| jj-d:|ƒ d;| j_-n| j j-|8  _-| jj.d<gd=  q†qV|
spt | jd>ƒ | j/tj td*| jj&› d?¡tj td*| jj&› d@¡tj td*| jj&› dA¡tj td*| jj&› dB¡gddCsB|rBt | jdDƒ | j ,¡  t d¡ | j 0¡  t d¡ |  1¡ dEvrft | jdFƒ | j ¡  t d¡ |rŽt | jdGƒ d|dHœW S t | jdIƒ dd,iW S W  nü t2y¤ }) zât | jdJt3 4¡ ƒ | j*ddKdL |rr| jj5rjt | jdMƒ zTt6| j7| j8| jƒ}*|* #dN¡du r>t | jdO|*ƒ ddiW W  Y d })~)S | j7 9¡  W n   t | jdPt3 4¡ ƒ Y n0 t2d4ƒ‚|) :¡ dQkrˆt2dRƒ‚ddiW  Y d })~)S d })~)0 0 d S )SNFzsearch and bid in console -- ré   z -*- z -+- r   r2   rû   )	rñ   rò   ró   rô   r¨   rè   rõ   rþ   rÿ   zsearch player result : sidÚresultÚsidrü   z@search player result : player name not found, press three circler?   r>   r¼   T)Ú	timezone_zdifferent_by_seconds 4 = z expire_time : z system time 2 : z aware systme time : r=   g      ø?zremaining time =z	 counter r@   é   rE   z"cant read remaining , press circler   r   z( error on discharge , get remaingin timer  rA   r   )Úowner_countÚcontract_countÚstatusÚfailedz"check owner and contract failed : r˜   z)_transfer_list_icons/player_data_icon.pngÚ
not_boughtzbuy time expire : z < )rØ   z&_controls/check_for_inside_bidding.pngzIitem will added to transfer target its a bad move . will ask from web appzcant buy counter : )Úneed_get_new_sidzneed to recheck credit from webZneed_check_creditz+cant buy item but dont need check credit , gš™™™™™É?z*search player has no result , press circlez7credit can not lower than 0 . set it to 1000. credit : z	 price : iè  Úcredit©Úupdate_fieldsznot waiting for listr™   rš   r  z$_controls/transfer_market_active.png)r§   zlive_search_results not found)rê   Z	transfersz#not in search player , press circlezitem bought)r#  Úbought_pricezcould not bought itemzerror 70 : Ú	home_main©r,  Ústateztry to update creditÚstatus_boolzlogin failed , zcan not update credit : z!cant set price for this one errorzneed sell from web app);r   rc   rŸ   r  Úrefresh_from_dbrÛ   r   r   Úasset_idr  rÍ   Úratingrg   r¦   r    r¡   Úhas_search_resultr!   r
   r   Ú
make_awareÚtotal_secondsrv   Zget_remaining_timer   r¢   r£   r¤   r	   r   ÚintÚrandomÚrandintrÈ   Zcheck_owner_contractÚgetr„   r   rf   r  Zbuy_nowro   Úconsole_close_ultimaterº   r¥   r-  Úsaver­   Zr2r†   rh   Ú	tracebackÚ
format_excÚuse_request_loginr   re   r4   Úupdate_creditÚ__str__)+rx   r!  rÚ   rÛ   Zmax_change_graderó   rô   Úexpire_timerÖ   r×   rØ   r¨   r"  Ú	sbc_pricerõ   rþ   Zbuy_timeout_timer'  r(  Z
need_errorZboughtr0  Z
first_timerP   r  rQ   rñ   r   rÿ   Zsearch_player_resultZbuy_tryZnum2Zcan_buyÚsystem_timeZaware_system_timeZdifferent_by_secondsZremaining_timeZnext_page_pressÚnmZcheck_owner_contract_resultrÑ   Z	error_strÚlogin_resultry   ry   rz   Úconsole_search_player_and_bidK  s¶   ú

ö










þ

þ

ÿÿ
þý



ÿ
ü
þýý
þþ







ÿ
ýúú






z)PublicMoves.console_search_player_and_bidc                 C   s   | j j||dS r‘   )rv   r  )rx   Znext_icon_namerƒ   ry   ry   rz   r  @  s    zPublicMoves.move_to_next_iconc                 C   s
   t ||ƒS r…   )r   )rx   r   r€   ry   ry   rz   r   C  s    zPublicMoves.get_image_positionr
  )r  c                 C   s¼   t | jd|d|d|ƒ tdƒD ]`}|  ¡  |  tj td| jj	› d|› d¡d¡rV q€| j
jd	d
 |dkrt | jdƒ  dS q|r¸|r¢| j
 ¡  | j ||¡ n| j
 ¡  | j |¡ d S )Nzsearch_player_price : ré   z default_price rÀ   r˜   z_search_player_icons/rÂ   r   r   r  r  z** can not find price **r	  )r   rc   rŸ   r„   r   r¢   r£   r¤   r	   rf   rg   rÅ   rº   rv   Zset_price_with_l_and_rr¥   Zsearch_player_select_price)rx   r  r  r  rI  ry   ry   rz   r  F  s(    ÿþ

zPublicMoves.search_player_pricec                 C   s2   |   ¡  |  tj td| jj› d¡d¡r.dS dS )Nr˜   r  r   FT)r„   r   r¢   r£   r¤   r	   rc   rf   rá   ry   ry   rz   r8  r  s    
þýzPublicMoves.has_search_resultc                 C   sØ   t dƒ‚|  ¡  |  tj td| jj› d¡d¡}| 	d¡}|  tj td| jj› d¡d¡}| 	d¡}t
|ƒ t
|ƒ t d¡}||d |d …|d	 |d	 …f }t |tj¡}t d
|¡ | jd
ddd}t|ƒS )Nzdon`t read coinr˜   z_controls/coin_sign.pngr   Ú	top_rightz_controls/point_sign.pngÚbottom_leftr2   r   zcoin_tmp.jpgz6--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789T)rä   rå   )rh   r„   r   r¢   r£   r¤   r	   rc   rf   r>  ÚprintÚcv2ÚimreadÚcvtColorÚCOLOR_BGR2GRAYÚimwriterç   r;  )rx   Zcoin_posÚtop_leftZ	point_posÚbottom_rightÚimgZcrop_player_nameZcoinry   ry   rz   Ú	read_coin{  s:    
þý

þý

ÿþzPublicMoves.read_coinc                 C   s   | j j||dS )N)Úneed_contractsÚmanager)rv   Úbuy_contract)rx   rX  rY  ry   ry   rz   rZ  –  s    zPublicMoves.buy_contractc                 C   s   | j j|dS )N)Ú
need_heals)rv   Úbuy_healing)rx   r[  ry   ry   rz   r\  ™  s    zPublicMoves.buy_healingc              	   C   s4  t | jdƒ |  ¡  tdƒD ]N}|  tj td| jj	› d¡d¡st | jdƒ | j
 ¡  t d¡ |  ¡  q|  tj td| jj	› d¡d¡sžt | jdƒ d	S td
ƒD ]Ð}|  ¡  |  tj td| jj	› d¡d¡r¦t | jdƒ t d
¡ | j
 ¡  t d¡ | j
 ¡  t d¡ | j
 ¡  t d¡ | j
 ¡  t d¡ | j
 ¡  t d
¡ | j
 ¡  t d¡ | j
 ¡  t d¡ q¦| j
 ¡  t d¡ | j
 ¡  t d¡ | j
 ¡  t d¡ | j
 ¡  tdƒD ]h}t | jd|› ƒ |  ¡  ttj td| jj	› d¡dƒr| j
 ¡   q0n
| j
 ¡  t d¡ qÆdS )Nzneed to create clubrÜ   r˜   z!_controls/delete_club_advance.pngr   z advance not found. press a crossr2   zcannot find delete club advanceFrE   zdelete club advance foundr@   r?   r>   zpress cross until final z _controls/fut_main_menu_sign.pngr=   T)r   rc   r„   rŸ   r   r¢   r£   r¤   r	   rf   rg   r¥   r    r¡   ÚoptionrÊ   r¦   )rx   Zneed_to_change_staterP   Úiiry   ry   rz   Úcreate_club3  sx    þ


þþ




















þý

zPublicMoves.create_clubc                 C   sH   d| _ d| _| j ¡  | j ¡  d| _| j ¡  | j ¡  | j ¡  d S )NTr   )rk   rn   rg   Z
release_r1Z
release_r2rß   rà   Úreset_to_defaultrá   ry   ry   rz   Úrelease_buttons_after_game}  s    



z&PublicMoves.release_buttons_after_gamer½   c              
   C   s	  t | jd|ƒ |  dd¡ t | jd| jjdƒ d}||k sT| jjdu sT| jjdu rò| jjrò| jjdu ròt	| jd| jj› ƒ t
| jd	| jj ƒ t | jd
| jj› ƒ |  dd¡ t| jd| jj› ƒ d}d}d}d}d}| jjrîd}|dk r¼|d7 }|  ¡  | j ¡ }|dkr qîn
|r*|S |  tj td| jj› d¡d¡rªt | jdƒ |  ¡  |  tj td| jj› d¡d¡r”| jjdd | j ¡  t d¡ qî|  tj td| jj› d¡d¡rð| j ¡  | jj ¡  ¡ dkrb| jjr| jjs.| jj| jj | jj d t d¡ d}n2| j  ¡ \}}|dkrât | jdƒ t d¡ dS n€| jj| jj | jj d t d¡ | jjrâ| jjrâ|  ¡  | j !¡ }|râd|  k rÌdkrân n| jj"d krâd}t | jd!|d"|d#|ƒ t d¡ | j ¡  t d$¡ |  ¡  |  tj td| jj› d¡d¡r”t | jd%ƒ |  tj td| jj› d¡d¡s€| jjdd | j ¡  t d¡ |d&krî|d' dkrî|  tj td| jj› d(¡d¡rît | jd)ƒ | j #¡  t d$¡ qînr|sàt | jd*ƒ |  ¡  |  tj td| jj› d+¡d¡sv|  tj td| jj› d,¡d¡sv|  tj td| jj› d-¡d¡rLt | jd.ƒ t d¡ |  ¡  |  tj td| jj› d/|› d0¡d¡rÒt | jd1|ƒ qön t | jd2ƒ | j $¡  t d¡ qŒd3}| j ¡  |  %tj td| jj› d4¡tj td| jj› d5¡g¡ t d6¡ qîn’|d&krb|d' dkrb|  tj td| jj› d7¡d¡r¨t | jd8ƒ | j ¡  t d¡ t | jd9ƒ | j #¡  t d¡ | j #¡  t d¡ qîn‚|d&krb|d dkrb|  tj td| jj› d:¡d¡s@|  tj td| jj› d;¡d¡rbt | jd<ƒ | j &¡  t d6¡ qît | jd=ƒ | j ¡  |  tj td| jj› d>¡d¡r°t | jd?ƒ d3}q¼t d¡ qî|rà| jjsät
| jd@ƒ | j '¡  nt | jdAƒ t(j)j*| j| jjd ||dB}	|d7 }| j ¡  | jjdu r`t | jdCƒ t
| jdDƒ d3| j_| jj+dEgdF nˆ| jjdu r t | jdGƒ t
| jdHƒ d3| j_| jj+dIgdF nHt | jdJ| jjƒ t
| jdK| jj› ƒ | j jd7  _| jj+dLgdF t | jdM| jjƒ |  ,¡ }
| j -¡  t.ƒ  t/|
t0ƒr0|
 1dN¡r0d3|	_2t3 4¡ |	_5|	j+dOdNgdF | j ¡  | jjdu r|t | jdPƒ t
| jdQƒ nP| jjdu r¤t | jdRƒ t
| jdSƒ n(t | jdT| jjƒ t
| jdU| jj› ƒ t | jdM| jjƒ q2t | jdVƒ dS q2| j #¡  t d¡ | j ¡  | j ¡  d3S )WNzneed to do play games : r   Zopponent_selectz1played squad battle games account_played_games = z
start a game in squad battler   Fzplaying game : zstart playing %szstart playing zstart game ZamateurrÜ   Úsemi_pror2   Úcontinuer˜   ú_controls/reply_squad.pngr   z2reply squad special game message appear. close it.ú!_controls/confirm_reply_squad.pngr   r  r>   ú_controls/opponent_select.png)Zspecial_game_oneZspecial_game_twozcan not find good opponentz+can not find good opponent , sleep 5 minutei,  r¼   éK   éQ   z opponent selected , rating is : zdifficulty will be : z counter : r@   zreply squad special gamerÀ   rE   z_controls/your_rank.pngz$your rank page seeen? , press circlezinside difficulty checkú%_controls/squad_battle_go_to_game.pngz"_controls/difficulty_selection.pngz"_controls/difficulty_breakdown.pngzdifficulty select foundedrÁ   z_difficulty.pngzdifficulty is set : zcould not see the difficultyTz_controls/squad_in_game.pngz_controls/squad_eligible.pngr=   z#_controls/squad_battle_week_end.pngzsquad battle week endzDdifficalty not selected and can`t find defficalty page, press circleú(_controls/advance_in_go_squad_battle.pngú._controls/squad_actions_in_go_squad_battle.pngú'not going to squad battle? press optionzpress cross , until enter gameú_controls/scoreboard.pngúfind scoreboardzgame settings setting ...úno need change settings)rc   Úgame_numberÚ
difficultyÚenemy_team_ratez!squad_special_game_one game startzbefore special game oneÚsquad_special_game_oner.  z!squad_special_game_two game startzbefore special game twoÚsquad_special_game_twozone of none special game startzbefore game Úaccount_played_gamesz!number of account_played_games = Ú
win_statusÚend_timez squad_special_game_one game donezafter special game onez squad_special_game_two game donezafter special game twozone of none special game done zafter game z"failed in playing for squad battle)6r   rc   rÓ   ru  rs  rt  Úrun_squad_battler4   Ú	must_doner   r   r   Úspecial_squad_ready_to_playr„   rw   Úcheck_squad_errorsr   r¢   r£   r¤   r	   rf   rg   rÊ   r¥   r    r¡   r5  Úfifaaccountsquadgame_setÚallr  Zstart_opponentZstart_opponent_2Zget_opponent_ratingÚmain_squad_rater¦   rÅ   r­   r]  Zset_squad_game_settingsr   r  r  r@  Úplay_one_gamer`  r   Ú
isinstanceÚdictr>  rv  r   r  rw  )rx   Z
play_gamesZplayed_games_counterr  Zdifficulty_setZdifficulty_nameZcurrent_opponent_ratingrí   Úcheck_squad_errors_resultZ
squad_gameZplay_game_resultry   ry   rz   Úplay_squad_battle_games‡  s*   þÿ
þ
ýü
ü


 
þý
þý


þý

ÿþ


þ

ÿ
ÿ
þ
ÿ



þý
þý

þý


þý
þýý
þýú


ýü

þ

þý

ÿ



"þý
þýý


þ
8
ü
ÿÿ


ÿÿ



z#PublicMoves.play_squad_battle_gamesc              	   C   sÎ  t | jd|ƒ t| jdƒ t| jdƒ |  dd¡ | j ¡  d}tdƒD ] }|  	¡  | j
 ¡ }|dkrlqHn†|rx|  S |d	krò|d
 dkrò|  tj td| jj› d¡d¡sÐ|  tj td| jj› d¡d¡ròt | jdƒ | j ¡  t d¡ qHt | jdƒ | j ¡  t d¡ |  tj td| jj› d¡d¡rHt | jdƒ d} qLqH|rºtƒ  |dkrpt| jdƒ nt | jdƒ tjj| jdd}|  ¡ }| d¡rd|_|jdgd | j ¡  t d¡ | j ¡  t d¡ | j ¡  t d¡ | j ¡  t d¡ | j ¡  t | jdƒ |  dd¡ |  dd¡ t d¡ | j ¡  t d¡ | j ¡  t d¡ | j ¡  t d¡ | j ¡  t d¡ | j ¡  | j ¡  | j ¡  | j ¡  dS t | jd ƒ dS d S )!Nzneed to do moment : zdoing moment 0zdoing momentsr   Zmoments_foundationsFrÜ   rc  rÀ   r>   r   r˜   rj  r   rk  rl  r=   z%press cross , until enter moment gamer2   rm  rn  Tz moment game settings setting ...ro  )rc   Úmoment_numberrv  r.  r@   zmoments complete , go to clim ÚplayZmoments_star_galleryzmoments not completed)r   rc   r   r4   r   rÓ   rg   r¥   rŸ   r„   rw   r{  r   r¢   r£   r¤   r	   rf   r]  r    r¡   r   r   r  r  Úcomplete_10_passing_momentr>  rv  r@  r¦   rÈ   )rx   r„  rí   Úiiier‚  Zmoment_gameZmoment_statusry   ry   rz   Ú
do_moments}  s¢    

þý
þýý



þ
þ





















zPublicMoves.do_momentsc              	   C   s¦   t | jdƒ d}tdƒD ]„}|  ¡  |  tj td| jj	› d¡d¡rZt | jdƒ d} qž|rˆ|d	 d
krˆ|  
¡ rˆt | jd|  
¡ ƒ  qž| j ¡  t d¡ qd|iS )Nzstart moment : 10 passFrÜ   r˜   ú#_controls/win_moments_game_sign.pngr   úfind win momentsTrÀ   r   ú"after game , find state , break , r2   rv  )r   rc   rŸ   r„   r   r¢   r£   r¤   r	   rf   r†   rg   r¥   r    r¡   )rx   rv  r‡  ry   ry   rz   r†  Ô  s&    
þý
z&PublicMoves.complete_10_passing_momentr?   c           
   	   C   s¶  d}t |ƒD ]@}|r qPt| jd|d › ƒ d}|d7 }| j ¡ }|dkrx|dkrxt| jdƒ | jdkrtd}nd}|  ¡  |  	t
j td| jj› d	¡d
¡rt| jdƒ d| _|  ¡  |  	t
j td| jj› d¡d
¡rî| jjdd | j ¡  t d¡  d S |  	t
j td| jj› d¡d
¡rVt| jdƒ d| _|  ¡  t d¡  d S |  	t
j td| jj› d¡d
¡sÂ|  	t
j td| jj› d¡d
¡sÂ|  	t
j td| jj› d¡d
¡rît| jdƒ d| _|  ¡  t d¡ d}qr|  	t
j td| jj› d¡d
¡rRt| jdƒ d| _|  ¡  t d¡ d}| j ¡  t d¡ qr|r\qr| j ¡  t d¡ q6|| _d| _t| jdƒ | j ¡ }t| jd|d › ƒ t| jd|d › ƒ |dkröd| _|  ¡  t| jdƒ t d¡  qPn4|dkr*t| jdƒ d| _|  ¡  t d¡  d S d| _|  ¡  t d¡ t| jdƒ q|rZd S d}|  ¡  t dƒD ]<}	t| jdƒ |	d kržt| jd!ƒ td"ƒ‚|  ¡  |  	t
j td| jj› d#¡d
¡rÚt| jd$ƒ d}|  	t
j td| jj› d%¡d
¡rt| jd&ƒ d} q®|  	t
j td| jj› d¡d
¡r> q®|  	t
j td| jj› d	¡d
¡rtt| jd'ƒ  q®|  ¡ r–t| jd(|  ¡ ƒ  q®| j ¡  t d)¡ qnd*|iS )+NFzgame round r2   r   éZ   zcan`t get round numberr=   r˜   rd  r   z#reply squad found. will end of playTre  r   r  rf  z'opponent select found. will end of playz*_controls/advance_for_end_of_the_match.pngz _controls/after_squad_game_1.pngz _controls/after_squad_game_2.pngz.advance end of game or after game 1 or 2 foundri  zdifficulty selection foundzstart playingzafter round zgame is donezend of playing step 1zgame was donezend of playing step 2rÜ   ztry to find opponent selectéb   zcant get opponent selectz)after game complete can not find new gamez!_controls/win_squad_game_sign.pngzfind win statusr‰  rŠ  z%after game , find reply squad , breakr‹  r>   rv  )rŸ   r   r4   rw   Zget_round_numberr   rc   rm   r„   r   r¢   r£   r¤   r	   rf   rj   ra  rg   rÊ   r¥   r    r¡   r¦   Zstart_playingrh   r†   )
rx   Zbreak_after_gameZround_countZ
must_breakrP   r  Zround_numberZgame_resultrv  rÑ   ry   ry   rz   r  é  s@   


þý
þý


þý

þýýûýýûø

þý











þý
þý
þý
þý

zPublicMoves.play_one_gamec                 C   s   | j j||dS )N)rŽ   rƒ   )ru   Úxboxs_go_to_app)rx   rŽ   rƒ   ry   ry   rz   rŽ  …  s    zPublicMoves.xboxs_go_to_appr1  c                 C   s   | j j||dS )Nr2  )ru   r?  )rx   r,  r3  ry   ry   rz   r?  ˆ  s    z"PublicMoves.console_close_ultimate)r|   )r   r   )T)NT)r   T)Fr   F)r   )r   N)r   r@   r•   r|   NT)Nr   r@   r•   r|   NT)r•   )FFr   r   F)r•   r•   Fr2   )
r   r•   r2   r   r   NFTNr   )r   r   rB   r   r   r   r   r   Fr•   Nr   FTNr   r   )r   )r   r
  r   )F)T)r½   )r   )Fr?   )Fr   )Tr1  )+Ú__name__Ú
__module__Ú__qualname__Zmap_positionr   ÚrequestsÚSessionr  r{   r   r„   r†   rˆ   rŒ   r   r’   r”   r«   r­   rÓ   rÙ   râ   rç   r   r  r   rK  r  r   r;  r  r8  rW  rZ  r\  r_  ra  rƒ  rˆ  r†  r  rŽ  r?  ry   ry   ry   rz   r)   (   sŠ   ÿM







  ÿ
#  ÿ
*
    ÿ

     üþ  @       úü v
,	
 
J

   y
W
 
r)   )DÚos.pathr¢   r<  r    rA  rO  Úpytesseractr’  Ú	django.dbr   Údjango.utilsr   Zaccounts.console_accounts_utilsr   Úaccounts.modelsr   r   Úsquad_battle.modelsr   r   Úfutplus.settingsr	   r
   Úsbcr   r   Ú
sbc.modelsr   r   r   r   r   Úsbc.public_methodsr   r   r   r   r   r   r   r   r   r   Zaccounts.web_login_utilsr   Zutils.console_error_utilsr   Zutils.console_login_utilsr   Zutils.menu_utilsr   Zutils.play_footbal_utilsr    Úutils.realy_public_methodsr!   Zutils.screen_utilsr"   Zutils.transfer_list_utilsr#   rÍ   Zsbc.visual_buttonsr%   r&   Zutils.graph_corer'   r(   Útesseract_cmdr)   ry   ry   ry   rz   Ú<module>   s:   0