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	m
Z
mZ d dlm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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 d d
l m!Z! d dl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF d dlGmHZHmIZImJZJ d dlKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZW d dlXmYZY d dlZm[Z[ d dl\m]Z]m^Z^ d dl_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZk d dllmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d d lmZ d d!lmZ d d"lmZ ejd#krLd d$lmZ d dlZd d%lmZ ejejeZeeLZd&d'gd'd&gd(d)gd)d(gg d*d+d,gg d-d.d/gd0d,gd1d/gg d2g d3d4d5gg d6d7d8gd9Zd:d:d;d:d<d=d>d?d:d:d:d:d@dAdBdCdDd<dEdFdGZG dHdI dIZdS )J    N)defaultdictCounterdeque)	timedelta)randint)	urlencode)BeautifulSoup)allow_join_result)User)caches)close_old_connections)CountSumSubqueryOuterRefValueIntegerFieldQ)Coalesce)model_to_dict)timezone)get_current_timezone)ActionChains)By)TRADE_ACCESS_DICT)FifaAccount	FifaProxy
PlayerCardFifaAccountSearchMuleAccountsItemPackFifaAccountRequestCaptchaSolverLogConsoleBotSettingAccountPackDataFifaAccountCurrentItemsTelegramMessageAccountBoughtItemAccountLoginLog)BASE_DIRCONSOLE_NAME_LIST	TIME_ZONE)FIFA_REPORT_TOKENFifa_REPORT_CHANNEL_IDARZBAZI_REPORT_GROUP_ID*ARZBAZI_REPORT_TOPIC_SBC_THREAD_MESSAGE_ID-ARZBAZI_REPORT_TOPIC_ERRORS_THREAD_MESSAGE_ID+ARZBAZI_REPORT_TOPIC_LOGS_THREAD_MESSAGE_ID2ARZBAZI_REPORT_TOPIC_SQUAD_ERROR_THREAD_MESSAGE_ID1ARZBAZI_REPORT_TOPIC_SBC_ERRORS_THREAD_MESSAGE_ID7ARZBAZI_REPORT_TOPIC_UNHANDLED_ERRORS_THREAD_MESSAGE_IDONE_WEEK_SECONDSONE_HOUR_SECONDSONE_DAY_SECONDS)CheckHealthyRunner)SBC_TARGET_CLUBS)login_to_accountwait_for_element)	SBCWorker
SBCProcess	SBCTargetSBCProcessTargetSBCTypeSBCTargetFilterAccountCheckHealthyWorkerAccountSBCNeedPlayerSBCSolvationModelSBCSolvationModelPlayersSBCSolvationModelWorkerRareFlag)	new_printget_trade_pile	force_getset_main_log
sell_itemsset_sub_logget_previous_price_gradeget_next_price_grademost_commonget_round_top_priceput_item_for_saleget_round_price
force_postget_player_data_by_asset_idget_trade_pile_2get_player_fifa_name_by_id clim_lvlup_objectives_milestonesset_sbc_statuspin_events_creatorget_chemistryProfilesVersion(convert_club_players_to_solvation_format#convert_players_to_solvation_formatget_newest_solvations_playerssave_account_requestconvert_futbin_timeget_storage_pile"get_trade_access_from_usermassinfoget_team_links_from_file
user_agent)logout_login)OPEN_PACKS_MAX_TRADE_PILE)deep_get)	fifa_hostfifa_23_addressfifa_first_addressaccounts_ea_auth_urlfut_web_numberfutbin_addressfifa_host_2)LoginWithRequest)PublicMoves)get_db_time)select_platformnt)app)SolvationCoreLBLWBRBRWB)LWLMLFr{   rz   )RWRMRFr~   r}   r|   r   )CMCAMCDM)r   r   CFr   r   )r   r   STr   r   )rv   rw   rx   ry   rz   r{   r}   r~   r|   r   r   r   r   r   r      i^    i  i  i    i\  iL  il  i&  ix  i  )zLWB-LBzLB-LWBzRWB-RBzRB-RWBzLM-LWLW-LMzRM-RWRW-RMzLW-LFzLF-LWzRW-RFzRF-RWCM-CAMCAM-CMCM-CDMCDM-CMzCAM-CFCF-CAMCF-STST-CFc                   @   s  e Zd ZdddZdddZdd	 Zdd
dZdd ZdddZdd Z	dddZ
dd Zdd Zdd ZdddZdddZded"d#d$Zd%d& Zd'd( Zd)d* Zd+d, Zdd-d.Zdd/d0Zdi d1d2d3Zdd7d8Zd9d: Zded"d;d<Zdd=d>Zd?d@ ZddAdBZddCdDZdEdF Z dGdH Z!ddJdKZ"ddLdMZ#ddNdOZ$ddQdRZ%ddSdTZ&dUdV Z'dWdX Z(dYdZ Z)dd[d\Z*d]d^ Z+ded`dadbZ,de-dcdddeZ.dfdg Z/dhdi Z0ddjdkZ1ddmdnZ2dodp Z3dqdr Z4de5e6dudvdwZ7dxdy Z8dd{d|Z9ed`d}d~Z:dd6g d6dsd6dd4dddtdddfe6dddZ;dddZ<dddZ=dd Z>dd Z?dddZ@dd ZAdd ZBdddZCdddZDdd ZEdddZFdd ZGdd ZHdddZIdddZJdeKdddZLdddZMdd ZNdd ZOdd ZPdddZQdd ZRdddZSdd ZTdS )	SBCSolverNTc
              8   C   s  t jj|d| _d | _|	r*tjj|	d| _tjj|d| _|pD| jj| _t	
 | j_d| j_| jjddgd t | _t | _d | _d | _d | _d | _d| _d| _d| _|| _|| _|| _|| _| jj }
|
std|
j | _ |
j!| _"d| _#d| _$d| _%d| _&g | _'d| _(d	| _)d	| _*d| _+d	| _,d	| _-d	| _.t/| j d
 | _0t/| j d | _1t2t3j45t6dd}W d    n1 s0    Y  t2t3j45t6dd}|7 }W d    n1 s0    Y  d}t8| j| t8| jd| jd| jd| jd| jj9d| jj:d| j;j<d|d| jd| t	
 | _=i | _>| j>?dddt	
 dddddt	
 dddddddddddddddddt	
 dddddddddddddddt	
 t	
 t@dd ddddddd| A d5 t	
 | j>d< d| j>d< || _B| jC  d| j_D| jjdgd g d| _Ed d!gg d"g d#g d$g d%g d&g d'g d(g d)g d*g d+d,| _Fd-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=| _Gg d>g d?g d@g dAg dBg dCg dCg dDg dAg dAg dAg dAg d?g dEg dAg d@g dAg dFg dGg dGg dCg dAg dAg dAg dHg dIg dAg dJg dKg dJg dJg dAg dAdL!| _Hi | _ItJD ]8}| jI?|d |d |dM |dM g|d gdNi qXtK dO D ]L}| jI|dP  dQ  |dR 7  < tLtM| jI|dP  dQ | jI|dP  dQ< qd| _N| jdSv r$|r$tO| | j| j| j>| j1dT| _Pd	| _NtQjjdUdVjR| _St	
 | _Td| _Ui | _Vg | _Wi | _Xg | _Yg | _Zg | _[d | _\d| _]d| _^d | __t`dW | _atb| dX| _cd S )YNid last_run_timeerror_descriptionupdate_fieldsTr   z NO app code or backup code foundFplatform_key
server_keyzversion.txtarz`###########################################################################
sbc job starting ...zusername = z password = z platform = z name in console z -- console = z
 -- bot : z -- running platform : z -- self.running platform : z -- current version :    )seconds)5Z	first_buyZ
first_soldZ	check_bug
start_timeZtemp_bidZtemp_buyZfirst_checkZsoft_ban_counterbid_controller_countZbid_controller_timeZbid_controller_reportwin_controller_countZtarget_controller_countweak_target_controller_countcaptcha_start_timeZcaptcha_end_timeZloop_controller_countZtemperory_not_bidZ	bug_countZfixed_bug_countdriverZsearch_min_timeZsearch_max_timeZtransfer_list_lenZtransfer_more_than_limitnumber_of_searchstemp_number_of_searchsZreporter_timetemp_bid_controllertemp_win_controllerremaining_buysZ	invest_idZinvest_sell_check
sleep_timeZcheck_proxyfirst_xipuzzle_masterZno_xiZ	no_masterempty_bid_handlerZfirst_buy_items	no_creditno_good_packbegin_new_sidend_new_sidZthird_sbc_problemZlast_sbc_failedproxy_ip
proxy_portnew_sid_setsoft_ban_handler	completedoptions_headerZcontrol_bid_timeZcontrol_bid_bidlogin_status)U :  N   ȭ qs N G 	 r   GK)r   rx   r   )r   CB   )r   r   r   )r   rv      )r   r~      )r   r      )r   r   r   )r   r{      )r   r      )r   r   r   )178005193082253163241486202884231443241096226161190286214997199110i:WL i9WL i?WL iAWL iBWL iDWL iEWL iFWL i@WL iWWL ifWL igWL iiWL i\WL iaWL inWL )r   r   r   r   r   r   r   r   r   BASICANCHORHUNTERSHADOWHAWKENGINEzGK-BASIC)	cardlid11	cardlid10cardlid9cardlid8cardlid5cardlid7cardlid6cardlid4cardlid3cardlid2cardlid1)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   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   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   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   )!z3-1-4-2z3-4-1-2z3-4-2-13-4-3z3-5-2z	4-1-2-1-2z4-1-2-1-2(2)z4-1-3-2z4-1-4-1z4-2-2-2z4-2-1-3z4-2-3-1z
4-2-3-1(2)z4-2-4z4-3-1-2z4-3-2-1z4-3-3z4-3-3(2)z4-3-3(3)z4-3-3(4)z4-3-3(5)z4-4-1-1z
4-4-1-1(2)4-4-2z4-4-2(2)z4-5-1z4-5-1(2)z5-1-2-2z5-2-1-2z5-2-2-1z5-3-2z5-2-3z5-4-1   )team_id	team_nameZsimilar_team_namessimilar_team_idsZteamChemLinksZteamIdr   ZlinkedTeams)consoleconsole_web_pcZconsole_manage_accounts)sbc_solver_instance
sbc_workersemain_dicr   account_high_search_count)name	print_log)
sbc_solver)dr   objectsgetfifa_accountZaccount_healthy_workerrB   r<   r   running_platformr   	localtimer   r   saverequestssessionr   se2sidfcas_sid
persona_id
nucleus_idZconsole_first_runZprogram_end_timejob_time_idusernamepasswordplatformmanual_loyalaccount_backup_codefirst	Exceptionbackup_codeapp_codeapp_authneed_contractsmanager_need_contracts
need_healsneed_position_changeneed_players_for_special_squad
first_listall_sbc_completedZcan_get_help_for_dischargeZneed_to_complete_first_sbcsZmax_delete_club_checkedZneed_play_for_accountcant_set_active_squadrr   r   r   openospathjoinr)   readrH   name_in_consoler   	__class____name__now_timer   updater   get_ea_options_header
account_idrefresh_from_dbr   special_squad_players_build)special_squad_players_build_with_positionuseful_itemssquad_positions_in_futbinteams_dict_datar9   rc   listsortedcan_send_telegramrp   public_movesr#   	int_valuer   last_time_get_new_siddanger_get_new_sid_counterall_club_players_by_searchall_club_players_by_get_bronzeclub_players_informationclub_asset_idtransfer_list_asset_idunassigned_asset_idsbc_storage_playerspin_events_countercoins_used_pack_openchemistry_profile_versionr   players_log_cacher8   Zcheck_healthy_utils)self	worker_idfifa_account_idr  r  r  r	  r   use_public_movesZaccount_healthy_worker_idfifa_backupZversion_file2Zversion_filecurrent_versiontextiieiit rE  AC:\Users\Administrator\Downloads\futplus_django\sbc\sbc_solver.py__init__f   sT   

 (





	
O


zSBCSolver.__init__GETc                 C   s   ddddt d|ddtd
S )	N*/*gzip, deflate, bren-US,en;q=0.5
keep-alivezcontent-type,x-ut-sidhttps://www.ea.comhttps://www.ea.com/)
AcceptAccept-EncodingAccept-Language
ConnectionHostAccess-Control-Request-HeadersAccess-Control-Request-MethodOriginReferer
User-Agent)rh   rd   )r<  methodrE  rE  rF  r"  S  s    zSBCSolver.get_ea_options_headerc                 C   s   |  j d7  _ | j S Nr   )r8  r<  rE  rE  rF  get_pin_events_countera  s    z SBCSolver.get_pin_events_counterc                 C   s  t jj| jdd}|sd}| jjdkr0d| }n`| jjdkrFd| }nJ| jjdkr\d	| }n4| jjd
krrd| }n| jjdkrd| }ntd|spt| jd| | jds| 	  t
}t| jdd dddt| jjddd}dtddtdd}| jj| | jj|||d}t| jd|j | }	|	d d!rLt| jd" d#S |	d }
t| jd$|
 d%t d&}d#td'd(d)d*|
dd+d,t| jj|d-d.
}t| jd/| dddttd0d1}| jj|||d2}t| j|d t| jd3|j|j z^| }	|	d4d!r6t| jd5|	d4  |	d4 | _| jd | jj nt| jd6 W d#S W n    t| jd7t  Y d#S 0 nt| jd8| | jds| 	  z| jj| _| jj| _dddt|d0d9d:d;td<
| jd< zd#td'| j|d(d=d*d>did?	}| jd }|td0d@| jj dA | jjd%t dBt||dCdD}t| jt  dEd | }|d4 | _!| jjd%t dFdCdG t| jt  dFd W n   t| jdHt  Y n0 | jj| jd  | jt  dI}t| jt  dId t| jdJ||jd dK  | }|dLd d ur|| _|dMd!dNkr4W d#S W n    t| jdOt  Y d#S 0 | jj| _| jj| _| j"  | j| j_| jj#d4gdP dddt| jd0d9d:d;td<
| jd< d'|_$|j#dQgdP dRS )SNr   r   login_methodFFA25pcz%sPCCxbox360z%sXBOxboxsz%sXSXpsz%sPS4ps5z%sPS5z<Wrong platform. (Valid ones are pc/xbox/xbox360/ps3/ps4/ps5)z(getting new sid by access token , sid : headerzxhttps://accounts.ea.com/connect/auth?client_id=FC25_JS_WEB_APP&redirect_uri=nucleus:rest&response_type=code&access_tokenr   linkFUTWEB_BK_OL_SERVERznucleus:restcodeprodzut-auth)	client_idredirect_uriresponse_typeaccess_tokenrelease_typeclient_sequenceapplication/jsonrM  rN  ztext/plain, */*; q=0.01)Content-TyperS  rV  rW  rX  rO  )headersparamszea auth response : errorr   z'access token is expired. need a new oneFzauth_code = https://z/ut/authr   zen-USauthcode   RETAIL)authCoderedirectUrltidzEa010c20b65fcf46a0f6e40113b44b17d4badbdabd268582979e4acb81c7e9434/9bf9)

isReadOnlyskuclientVersionlocalerY  priorityLevelidentificationnucleusPersonaIdgameSkudszget new sid payload = rI  )rr  rV  rW  rS  rX  rO  jsonrs  zauth response 2 : r  z"getting new sid is ok . new sid = z5app auth not working. will use the normal get new sidz@app auth not working. will use the normal get new sid , error : zgetting new sid by old sid : rJ  rK  rL  
rr  rV  rW  rX  zX-UT-SIDrO  rP  rQ  rR  rS  ACCESS_TOKENr{  )	r}  r~  r  r  r  r  rY  r  r  zBearer )rS  rO  Authorizationz/fc/auth   )datars  timeoutz
/user/authz/fc/userr  zerror on get fcas_sid 1 , /user/creditsz!get new sid check trade result : d   creditsreasonexpired sessionzcan not login with old sid r   r   T)%r(   r   creater   r  r  rH   r   r   #set_this_staff_to_pass_logout_loginrk   r_   strrn  rh   rd   r   rs  r!  rB  r  rl   intr  poststatus_coder  	traceback
format_excr  rn   dumpsri   r  r$  r   r   )r<  r  game_sku	login_logpre_game_skuurlZauth_paramsrs  response	json_resp	auth_codeurl2payloaddata_2	headers_2rc8_2rc9_2
check_respjson_check_resprE  rE  rF  get_new_sid_by_access_tokene  sV   





		














z%SBCSolver.get_new_sid_by_access_tokenc           $      C   s|  zHt  | j  dk rv|  jd7  _| jdkrvd| j_d| j_| jjddgd | 	t
d	d
| jj d tdt  | _t| jd| j d| j  | jjrtd t| jd td| j  | jjsd| j_| jjdgd | jjrt| jd W d S | jjr| jjrd}z6|  rTtd |   td d}W W d S W n$   t| jdt  t  Y n0 |st| jd z4t| jd | jjrd\}}}}}nd}| jdkrd}| jjtj j!dddv rd}| j"|d}|#ddu r:|#d}|#d }|#d!}|#d"}|#d#}n$t| jd$| dd%|#d&d'W W S | jj$% }	|	j&}
t'j j(| jdd(}t)| jd)j*| jj| jj+|
||||| jj,| jj-d*	}|#ddu rt| jd+| |#d&d,krtd,n|#d-}|#d.}|#d/}|#d0}|#d1}|#d2}|#d3}td | j  || j_|| j_|| j_.|| j_/|| j_-| jjg d4d d|_0|jd5gd || _1|j2| j3d6< || _4t| jd7 W W d S W n$   t| jd8t  t  Y n0 t  | j3d9< d| j_5| jjd:gd | j  d;}|dkr,
q*d<t6| }t| j| z@z| j3d: #t7 W n$   | jj8}|r~t9:|}t| jd=| j3#d>| j3#d | j3#d!| j3#d" t;| j<| j+dd| j3#d>| j3#d | j3#d!| j3#d"| j=|d?
\| j3d:< | j3d@< }}|r| jdAv r| j3d: >  t?j@dBkr>t?AdC | jBC  | D  t;| j<| j+dd| j3#d>| j3#d | j3#d!| j3#d"| j=|d?
\| j3d:< | j3d@< }}|r~| jdAv r~t| jdD | j3d: >  t?j@dBkrt?AdC | jBjCdEdF | jBE r~t| jdG | D  | jBjFG  d| j_dH| j_| jjddgd | H  t?AdI t?AdI t?AdI t?AdJ Y W W d S Y n0 W n   t| jdKt  z| j3d: >  W n   t| jdLt  Y n0 t  tI| | j| j}|#ddu r8d| j_|#dM| j_| jjddgd | H  |#dM Y W S Y n0 tJdNdOdPdQ| j3d: dR}t| jdS| j3d:  | j3d: KtLdTt6| jM   tJdUdOdVdW| j3d: dR}|r| jdXv rW dYS t| jdZ td[ q|d7 }t| jd\| |r
q*|stJdUdOd]dW| j3d: dR}|szdt| jd^ tJdNdOd_| j3d: d`}tN| j3d: O|P Q  tJdNdOdP| j3d: d`}|rxW 
q*W n   Y n0 qt| jda | j3d: KtLdbt6| jM   t  | j3dc< | j  d| j_| jjddgd tRj jS| jt  t jTdedf dg}|U dk	rPd
| jj dh}t| j| | 	t
d	| td[ W diS tRj j(| jd)}| jj	r| jjj@tVtWdjdkv 	s| jjtj jSdlgdm!dv 	s| jjX	r| jjXjdnv 	rdo|_Y|  | Z }ndp|_Y|  | Zdq}|
r|drk
rdr|_[|  d}n||_[|  |W S q| j3d: \ds| _/| j  | j/| j_/| jjd.gd | j3d: \dt| _dudvgdwgdxgdy}| j3d: \dz} tWd{D ]d}!| j3d: \d||! d}
r| j3d: \d~|! }"|"|#| jj,g v 
r| j3d: \d|! }  q
qt6| } | j3d: \d}#t| jd|# | j  |#| j_| j| j_| | j_.| j  t]| | _.t| jd| j.d| jd| j/ dddt^| j/ddddt_d
| j3d6< dddt^ddddt_t`ddd| j3d< ddddt^d| j3d< | j3d: Kt?jabtcd t  | j3d< | j3d: >  t?j@dBkr&t?AdC | j  d;| j_5| jjd:gd W n,   t| jdt  t  tdY n0 d S )Nx   r   
   Tztoo many login	has_errorr   r   {   zaccount z too many loginz&getting new sid started , last time : z , danger counter :    zmust done botactivezcaptcha set in databaseF      ?zerror 47 : z5not logined with new sid , try to login with requestsz>cant get_new_sid_by_access_token so try to login with requests)r   r   r   r   r   r   web_healthyfifa_account__idflatmule)proxy_type_namestatus_bool
proxy_hostr   
proxy_user
proxy_passproxy_idzproxy error 2 , failedru  )r  statusr  r]  r   )	emailr  totpr   r   r  r  r  cookiesz!login status false , result is : zneed create clubr   r  r  r  r  rn  r  )rn  r  r  r  requests_cookiesr   re  zlogin with request success 1z"cant login with requests, error : r   r   r   z)number of refresh count in get new sid = zproxy_data = r   )	use_proxyr   r   r  r  r  r  futbin_cookiesr   console_webr   rs    TASKKILL /F /IM chromedriver.exez(need ro create club from getting new sid	play_main)	state_setzcreate club successfulzcreate club neededz'TASKKILL /F /IM run_console_manager.exezTASKKILL /F /IM python.exezerror 46 : zerror on close driver , r  classoneview-navbar-currency-coinscaptchaspecialr   zwait for element driver : z/logs/sid%s.pngxpath3//h2[contains(text(),'Signed Into Another Device')]breakr  r   console loginzconsole login w8 5 minutes,  zview-navbar-currency-coins = .//h2[contains(text(),'Verification Required')]znot elemzcall-to-actionr   zcaptcha foundz/logs/captcha%s.pngr   need_captcha   hours)r   create_time__gtz3 have been captcha 1 time in 24 hour. find problem.can not solve captcha(#  '     )Zinvestors__id__in)r  solve_with_ramin_captchaZsolve_with_ramin_captcha_newZ 51d6f1b562d03ccf8fe69ea7666f19f8captcha solved-return services.Authentication.utasSession.id!return services.User.getUser().idFFA25PS4FFA25PS5FFA25XBOFFA25XSX)rc  ra  rb  z0return services.User.getUser().personas[0]['id']r  z(return services.User.getUser().personas[]z3return services.User.getUser().personas[%s]['_sku']z1return services.User.getUser().personas[%s]['id']zAreturn window.localStorage.getItem('_eadp.identity.access_token')zaccess_token = z persona_id = z , nucleus_id = z	 , sid = rq  rM  rN  rI  rJ  rK  rL  r  easku1.1rr  rV  rW  rX  rO  rP  rQ  rR  rS  zx-ea-game-idzx-ea-game-id-typez	x-ea-taxvpin_enevts_header5content-type,x-ea-game-id,x-ea-game-id-type,x-ea-taxvPOSTrT  rU  rV  rW  rX  pin_enevts_option_headerzlogs/get_new_sid_tmp.pngr   zerror 44 : zerror in get sid)dr   r   r/  total_secondsr0  r   r  r   r   send_messagebotr   	user_namer  rH   	must_donetimesleepr$  r  r  rn  r  r  update_creditr  r  r   r   r   r   r   r   values_listset_sbc_proxyr   r
  r  r  r(   r  ro   	new_loginr  r  r  r  r  r   r   rs  r   r  r   r  rj   selenium_cookiesr  loadsr:   r  r  quitr  r   systemr-  console_open_ultimateconsole_close_ultimatecreate_clubconsole_login_utilsput_on_rest_modehandle_end_botre   r;   get_screenshot_as_file	file_pathr#  r   move_to_elementclickperformr"   filterr   countr*  rangecreatorcaptcha_solver_namer  solve_statusexecute_scriptr  rd   rh   rl   r  r  r)   )$r<  Zlogined_with_new_sidr   r   r  r  r  r  set_proxy_resultr@  r  r  login_result	n_sessionn_sid
n_fcas_sidn_persona_idn_nucleus_idn_access_token	n_cookiesrefresh_countrB  r  !need_to_close_ultimate_in_consoleneed_to_create_clubelemsigned_in_elemZlast_24_hour_need_captchamessage_textZcaptcha_solver_logsolver_resultplatforms_skuspersonaiskusrn  rE  rE  rF  get_new_sidA  s   













	



























$


















zSBCSolver.get_new_sidc                 C   s  t | jd |d td tddd|dd}|rt | jd	| |t| jj td tddd
|dd}| 	| td tddd|dd}|r| 	| tddd|d}| 	| td tddd|d}| 	| td tddd|d}| 	| td tddd|d}|rJt
ttd }t||}z|| W nn   d| j }	t | j|	dt  |tjtd| j d | jtd|	td |   td Y n0 td tddd|d}| 	| td tddd|d}td |r<|tjd d! }| 	| td t dD ]}
tddd"|d}|tjtd#| j d d$}g }|tjd"D ]$}|j!}|"d%d }|#| qt$|dkr qt | jd& tddd'|d}| 	| td( qDt | jd)| |S )*Nzgetting backup code startedzBhttps://myaccount.ea.com/am/ui/security-privacy/login-verificationr   r  r  z//input[@name = 'password']r  )r   	wait_timezneed to press password : z//*[@id = 'logInBtn']r   r  onz"//*[@id = 'truste-consent-button']z//*[@id = 'enter-tfa-button']r  r  z-//*[@id = 'verify-identity-app-radio-button']z*//*[@id = 'verify-identity-modal-confirm']z//input[@type = 'text'])	timezone_z problem in send backup code for z	 error : zlogs/send_backup_errorz.pngr  message_thread_id2   r   zverify-identity-modal-confirmz0//*[@id= 'tfa-section-details-view-backup-code']z///*[@id='tfa-section-details-view-backup-code']zZ//div[div[span[contains(text(), 'Backup codes are the only way to log in')]]]/div[3]//spanzlogs/new_backupr   .z&old backup codes is low , request newsz"//span[text() = 'Create new code']r   zget new backup code is done , )%rH   r   r   r  r  r;   	send_keysr  r  custome_clickr  rq   r+   	timestamppyotpTOTPatr  r  r  r
  r  r  r  r)   r  r  r0   r	  find_elementsr   XPATHr  rB  splitappendlen)r<  r   r  r  Zpassword_elemZsign_in_buttonZ
trust_iconr"  db_timerB  iiZbegin_backupZnew_backup_codesZittbackuprE  rE  rF  get_new_backup_codes  s    


















zSBCSolver.get_new_backup_codesc              	   C   s  t jj|d}d|j d|j d| d| d|j d|j d| d| d}t| jd| | jj	| z | jd}t| jd|j
 W nP   d	|| jf }| td
| t| jd |  |   td Y d S 0 t jj|d| j_| jjdgd | j  t| jd| d S )Nr   zhttp://:@httphttpszproxy info  : z8http://142.132.177.244:8000/accounts/get-local-timezone/zproxy set resp = z!cant set this proxy %s account %sr  z#can`t set proxy. icanhazip error :    proxyr   zproxy_id = )r   r   r   r  r  rH   r   r   proxiesr!  rB  r  r  r  deleter	  r  r  rH  r   r$  )r<  r  hostportZ
fifa_proxyrI  resprB  rE  rE  rF  set_account_proxy  s*    

zSBCSolver.set_account_proxyr   r   c              
   C   s4  | j j}t| j d| j jd|d| |rLd | j _| j jdgd | j   d }d}|stjj|djt	t
tjjtdd	djtd
ddt dtddd}| }|r| |j|j|j |}n0| d td| j  d| j d|  ddddS |j}|j}|j}	|j}
t| j d|d|d|	d|
	 |szd|	|
||f d|	|
||f d}| jj| z| jjddd}W n0 t j!j"t j!j#fy   | jjddd}Y n0 t| j d |j$ W nX   t| j d!t%&  d"| j' d#| j j( }| t)d$| t*+d% ddd&d Y S 0 d'd(|||	|
|jd)S )*Nz set sbc proxy . current proxy : z
 change : z proxy type name : rH  r   r   )	type_namepk)Z	proxy__idr   )	use_countrQ  )output_field)usage_countrS  zNo lowest proxy found.
z
worker:z
proxy type:Fr  zNo Lowest Proxy Found)r  r  ru  zproxy set. data : rB  rC  zhttp://%s:%s@%s:%srD  z0https://arzbazi.com/accounts/get-local-timezone/r  r  zhttps://icanhazip.com/zproxy set resp 2 = zerror 43 : zproxy is expired for  , console : r  r0  zproxy is expiredTsuccess)r  r  r  r   r  r  r  ),r   rH  rH   r   r$  r   r   r  annotater   r   r   r   valuesr   r   r   order_byr  rN  r   
ip_addressrL  r  r.   r   r  r  r   rI  r!  r   r   
exceptionsReadTimeoutConnectionErrorrB  r  r  r  r   r  r  r  )r<  changer  Zaccount_proxyZtemp_set_proxyZfifa_proxy_listZ
lowest_useZ
PROXY_HOSTZ
PROXY_PORTZ
PROXY_USERZ
PROXY_PASSrI  rM  rB  rE  rE  rF  r  (  s    


zSBCSolver.set_sbc_proxyc           
      C   s  t | jd d}tdddd|d}|r.d}ntddd	d|d}|rLd
}nzp| j  |d| }t | jd| |d| }|rt | jd| t|pd| j_| jjdgd t|dkrtddd|dd}	|	rd}t|dkst|dkrd}| jj	t|krt|dv rV| 
tdd| j d| j  dtt| d| jj  nJt|d kr| 
tdd!| j d| j  dtt| d| jj  t|| j_	| jjd"gd W n   t | jd#t  Y n0 |S )$Nzcheck account problemsr   r  r  r  
fast_breakr  r  uJ   //p[contains(text(),'It looks like your EA Account doesn’t have a FUT')]zno clubz>return services.User.repository._collection[%s]['tradeAccess']ztrade access =z<return services.User.repository._collection[%s].coins.amountzcredit from javascript : r   creditr   0r  zicon-transfer)r   r  account not yet access31zaccount transfer is ban)rc  rb  r  z!Warning : 
Account z change trade access from z to rT  2zGreeting : 
Account trade_accesszaccount problem : )rH   r   r;   r$  r  r  r_  r   r  re  r  r  get_trade_access_displayr   r   r   r  r  )
r<  r#  r   nucleusZ	acc_emailru  r"  re  r_  elem_transferrE  rE  rF  check_account_problemsg  sh    

00z SBCSolver.check_account_problemsc                 C   s0   t dddd| jd d}|r,t| jd dS d	S )
Nr  r  r  r  r   r  z'in checking for captcha : captcha foundr   r   )r;   r   rH   r   )r<  r"  rE  rE  rF  check_captcha  s    
zSBCSolver.check_captchac                 C   s,   t dD ]}z|  W q   Y q0 qd S rZ  )r  r  )r<  r"  r(  rE  rE  rF  r4    s
    zSBCSolver.custome_clickc                 C   sh  | j   d| j _| j jdgd t| jd | j  d| j_d| j_d| j_d| j_	| j  |st
 | j _| j jdgd z&| jd   tjd	krtd
 W n   Y n0 tjd	krz"tdtjtd| jf  W n   Y n0 t| jd tjd	kr<ztjj| j jddd W n   t| jd Y n0 td t| jd td tdd S )NTr  r   zinside handle end botFr   r   r   rs   r  z%s/user_data/%saccountszbefore revoking task ...ZSIGKILL)	terminatesignalz&no app found to kill will revoking ...r   zafter handle end botr  zAfter Handle End Bot)r   r$  r  r   rH   r   r  r   r   can_kill_by_motherr   r   r   r   r  r  r   r  shutilrmtreer  r  r)   r  rt   controlrevoketask_idr  r  r  )r<  without_update_timerE  rE  rF  r	    sD    




"

zSBCSolver.handle_end_botc           
      C   s  z`t | jd| t  tjj| j||d |r8|dkrft}| jjtjj	dgdv rZt
}n|d u rfd}||d}|r|d|i |rd	t d
}|d|i tj||d}	|	jdkrt | jd|	j n4d	t d
}tj||d}	|	jdkrt | jd|	j | jjtjj	dgdvr`tjj	t tjdd | j|d dkr`|dkr`d}||| W n   t | jdt  Y n0 d S )Nzsending on telegram : )r   message_typerB  r  r  id__inz-1001711538724)chat_idrB  
parse_modezhttps://api.telegram.org/botz/sendMessager/  rt  r   z%sending on telegram in topic error : zsending on telegram error : r  r  )create_time__gter   rB  r   ru  z-1001802370673z$except in send message , error 42 : )rH   r   r   r&   r   r  r.   r  django_userr  r-   r!  r,   r   r   r  rB  r   r   r   r  sendMessager  r  )
r<  r  rx  rB  ru  r/  ry  rt  r  resultrE  rE  rF  r    sZ    


zSBCSolver.send_message21r`  )filter_targetc           !      C   s  |
r~t jj| jt d | jjjt tjdd d	 }t
| jd|dt d| d| d	| d
| d| d|  nd}|d | jkrZ| jdks| jdkrZd| j_d| j_| jjddgd d| j }t| j| j| j| j}| }|d }d}d}|D ](}|d dv r|d7 }||d 7 }qd||f }| td||  |   dS d}|dkrld}| jdkrttd d! zd}|d"krd#}n|d$krd%}d}|rd&| d' t| }d}|rd(| }d}|	rd)t|	 }d}d}|rd*}d+| }n|r d,| }d}|r4d-| }|slt d.| d/| d0| | | | | | | }|rN||d1d2}|jr| d3|ji |j!r| d4|j!i |j"r| d5|j"i |j#r| d6|j#i |j$r| d7|j$i |j%r| d8|j%i |j&r&| d9|j&i | d%t|i t d:tt'| }|
rt
| jd;| | jj(|| ) d< t*| j|d= t+|| j| j| jd> d?d@}|
r`z| }|d }W nR   t
| jdA|j,dB|j- td  t+|| j| j| jd> }t*| j|d= Y n0 t.| j| jdC| jj/| jj0| jj1| j2| 3 dD | jdE  d7  < | jdF  d7  < |W S  t4y }  zt
| jdGt56  W Y d } ~ n
d } ~ 0 0 d S )HN)r   search_timer  r  search_time__gtzsearch_number = z time : znumber z	 , start z , rare z, pos zfilter_target z, level r   webinjectTzhigh searchr  r   r   z*search number more than 300 for account %sauctionInfor   
tradeStater  expiredstartingBidzB
number of active trades = %s
active trades starting bids sum = %scriticalr  r   SPr  r   Zmax_bidmacrmax_buyZmaxb&=z&pos=z&team=z&rare=SPz&rarityIds=%sz&rarityIds=z&lev=z/transfermarket?start=z&num=z&type=player&maskedDefId=player)startnumtypepos	rarityIdslevnatteamZleag	playStylez/transfermarket?zsearch player link : rs  rf  re  F)save_logzsearch auction error ,  -- z#Transfer Market Results - List View)sourcer  r  r  r  counterr   r   zerror 41 : )7r   r   r  r   r   r   account_searchr  r   r  rH   r   r   r   r  r   r   r  rI   r   r   r   r  r  r  r	  r  r  r   r  ri   positionr!  
rarity_idslevelnationr  leaguechemistry_styler   optionsr"  r_   rJ   r  rB  rZ   r  r  r  r   r\  r  r  r  )!r<  	player_id	max_pricesearch_typenumberr  rarer  rg  r  safer  r  Zsearch_numberrB  rM  r  tradessum_active_tradessum_starting_bidstradeadd_partZ	rare_itemspZsearch_partZpos_partZ	team_partZ	rare_partrarityZ
level_partr  auction_infoerE  rE  rF  search_player!  s    







2
	
zSBCSolver.search_playerc                 C   sX   | j jt d| |  d tt d| | j| j | jd }t| jt dd |S )N(/marketdata/item/pricelimits?itemIdList=r  re  */marketdata/item/pricelimits?itemIdList=%srf  r   r  ri   r"  rJ   r   r   r_   )r<  player_club_idrM  rE  rE  rF  get_price_limit  s    zSBCSolver.get_price_limitc                 C   sP   | j jt d|  d tt d| j| j | jd }t| jt dd |S )N/purchased/itemsr  re  rf  r  )r<  rM  rE  rE  rF  	get_items  s    zSBCSolver.get_itemsc                 C   sr   t | jd| t d}| jj|| jddd | jj||| jd d}t| j|d t | jd	|j	d d
  |S )Nz%put item in auction , auction data = z/auctionhouser  rY  r  re  r  rs  rf  resp.content = r   )
rH   r   ri   r   r  r"  r  r   r_   rB  )r<  r  rg  rM  rE  rE  rF  put_item_in_auction_house  s    
z#SBCSolver.put_item_in_auction_housec                 C   sN   t  d| }| jj|| jddd | jj|| jd d}t| jd| |S )Nz/watchlist?tradeId=DELETEr  r  re  zclear outbid = )ri   r   r  r"  rJ  r   rH   r   )r<  	trade_idsrg  rM  rE  rE  rF  clear_outbid  s
    zSBCSolver.clear_outbidc                 C   sH   t  d| d}|r,| jj|| jddd | jj||| jd d}|S )Nz/trade/z/bidPUTr  r  re  r  )ri   r   r  r"  putr   )r<  trade_idr  r  rg  rM  rE  rE  rF  	bid_trade  s
    zSBCSolver.bid_tradec                 C   s  |s(|d }t |d d }t|}|}|r:d||f }nd| }t| jd| t| j| jd || j}	t	d t
| jt dd	 t| jd
|	j |	 }
|
d d }|dd}|ddkrt| jd n|d st| jd nt d| }| jj|| jd d}	t	d t
| jt dd	 t| jd|d|	j |	 }|d d }|d d }||kr|dk rt| jd|| | jjt d| | jd d}t| jd|j t	tdd dS ||kr|dkrt| jd|d | |}t|}||kr0t| jd!d"|d#| |}||kr0t|}d$|||f }| |}|jrv| jd%  d7  < | jd&  d7  < n.d'| j }| td(| t| j| t	d) t	tdd |S d S )*Nr  _   z6{"itemData":[{"id":%s,"pile":"trade","tradeId":"%s"}]}'{"itemData":[{"id":%s,"pile":"trade"}]}zput for sale data =re  r   /item/pile_traderf  zput for sale resp : itemDatar   r  r   zNo such card existsr1  rU  z/some thing is wrong. not try to sell this card.r  r  r  zlink : z	  resp = minPricemaxPrice0u  z2Min price is less than limit. Quick sell this item/item/zquick sell item response : r   z*min price higher than start price , min : z start z&buy now price higher than max price , z buy now : z max price :zH{"itemData":{"id":%s},"startingBid":%d,"duration":3600,"buyNowPrice":%d}r   r   z problem in listing. account : %sr  r  )rQ   rN   rH   r   rR   r   r   r   r  r  r_   ri   rB  r  r   findrJ  r   rO   r  r  r  r  )r<  item_idr  Z	win_pricestart_pricebuy_now_price
sell_priceZsell_price_cal_taxr  rM  r  Z	item_respZitem_resp_reasonrg  js_resp	min_pricer  resp2Z	sell_resprB  rE  rE  rF  item_put_for_sale  s    







zSBCSolver.item_put_for_salerz  c                 C   s  |si }d}t | jd|d|d| jd| jdd|
 |d7 }tjd	d
ddd}t| jdrT| jdptd}| jdr| d| jd  d| jd  d| jd  d| jd  	| d| jd  d| jd  d| jd  d| jd  	d}nB| d| jd  d| jd  | d| jd  d| jd  d}|j| |j||d}n|j||d}|j	
ddkrxqt | jd|j	d d  td |d dkr| tdd| j| jd f  td |d kr|S q|S )!Nr   zcloud scraper link = z counter = z	proxie = r   r   z
 params = r   firefoxlinuxFbrowserr  mobiler  proxy_protocolrE  r  z://rB  r  rC  rD  rz  z$Why do I have to complete a CAPTCHA?r1  zcloud scraper resp :   r  r  r  z<cant get price from futbin for 10 try. account = %s. ip = %sr  r0  )rH   r   r   r   cloudscrapercreate_scraperr  rI  r!  rB  r  r  r  r  r  r  )r<  rg  rt  r  scraperr  rI  rM  rE  rE  rF  use_cloud_scraperU  sJ    

66


zSBCSolver.use_cloud_scraperr   ɚ;Fc           /      C   s@  t | jd|d|d|d|d| d}z|}d}|
r6|s|st|d}| j|d ||d ||d |d d	}|d
d}|d}|dkr|}nt|}d}tjj|||||d	 }| 
|||}|dkrd}d }}d}d}d}d}d}d}|r2|s2| j||d|||d}| } | d }!t|!dk r2d}||kr@|}d}"|rZ|dksZ|
r|s|"r||krt | jd |}qd}"|}#|r|d|  }| j|#|d||||d}| } | d }!t | jd| t | jdt|! d}$|dkrJdt|!  k rdk rJn n6t|!|krB|dkr>t | jd W dS d}t|!}t|!dk r>|$r>|rhq|dkr<t|!dkr<|r<|!d d d }!d| }%|!D ]}&|dkrt | jd  q2qt | jd|%d  | |&d! }'|' }(|(d d d" d#krt | jd$ td% q| |&d! |%})t | jd&|)jd d'  |)jd(kr|)jdkr|)jd)krd| jd*< | ||)|||	 t | jd+ t | j|)j d} q2n| jd*  d7  < | jd* d,kr$d-| j }*t | j|* | td.|* d/| j_d0| j_| j  |   td1  W d S td2 q|r<qt|}d}|dkr|d7 }|dkr|}+||krt | jd |}q8td3D ]},t|+}+q|r|d|  }| j|#|+d||||d}| } | d }!t|!dk r8|$r8|+}td4D ]},t|+}+q|r|d|  }| j|#|+d||||d}| } | d }!t|!dk r4|$r4|+}td1D ]},t|+}+qb|r|d|  }| j|#|+d||||d}| } | d }!t|!dk r4|$r4|+}td'D ]},t|+}+q|r|d|  }| j|#|+d||||d}| } | d }!t|!dk r4|$r4|+}nq8qdd}n|rPt|}qt|}d}|dkr|d7 }|d3kr|}+td4D ]},t|+}+q|+dkr|r|d|  }| j|#|+d||||d}| } | d }!t|!dkr|+}d}|dkr`|r`|td5kr`t|}qq`ztjj|||d6\}-}.W n"   tjj|||d6	 }-Y n0 t | jd7|- t |-j!|-_"|-j#s|r||-_#|-j$s|r||-_$|r||-_%t&' |-_(|-  t | jd8| |dkr|W S |dkrt)jj|d9j*|d: |s|W S |rW d;S W n(   t | jd<t+,  | -  Y d=S 0 d S )>Nzsearch price on web , r  r   r   player_asset_idr   r  r   )player_rareplayer_fplayer_lpriceupdate_time)asset_idratingr  r  r  i  r  )r  r  r  r     zmax price reachedz&maxb=%s)r  r  r  rg  zprice = z	length =    z	bug foundbugr   r1  
{"bid":%d}>  zplayer price more than 16000zdata = zin search pricetradeIdr  r  trade is closedr  zbid_resp.content = r  Permission Denied(You are not allowed to bid on this trader   zwe bought this oneF   *account %s temperory cant bid. deactivatedr  temp cant bidTr0        ?r  r  r   )r  r  r  zplayer card created 2 : zplayer_price 2 = r  r  player boughtzerror 39 : r  ).rH   r   rU   $get_player_price_from_futbin_web_appr   rN   r   r   r  r  $compare_futbin_price_with_local_datar  r  r=  check_trader  r  r  rB  r   account_sbc_targets_buy_staffr  r  r  r   r   r  r   r	  rO   r  get_or_createrW   r  r   r  r  r  r   r   r  r>   r!  r  r  r*  )/r<  r  r  
trade_moder  accounts_sbc_idr  r  r  
change_posforce_manuallimit_max_pricebuyr  rg  Zfutbin_price_onlyZ	temp_linkZ
last_priceZfutbin_and_futwiz_price	card_infofutbin_resultupdated_time
local_data	min_check	max_checkold_lenZ	bug_checkr  boughtZincrease_countZdecrease_countrM  r  r  Zcan_check_for_limit_max_pricer  Zexpire_checkr  r  r  r  bid_resprB  Z
price_helpr(  player_cardcreatedrE  rE  rF  search_price  s   
	





 




















zSBCSolver.search_pricec                 C   s"  |rt | jd|d|d| |ddkr|jr|ddkr| }t tt|d d }t | jd||j	t
  ||j	t
 k rt | jd	|j |j}nv|d
dkr| }t tt|d d }t | jd||j	t
  ||j	t
 k rt | jd	|j |j}|S )Nz3local data found , compare futbin price with local r  secsr1  minsr   minuteszfutbin update time , z!local data is updater than futbinhourr  zfutbin update time 2 , )rH   r   r  r  r;  r   r   r   r  
astimezoner   r  )r<  r  r  r  updated_time_minfutbin_updated_timeupdated_time_hourrE  rE  rF  r    s0    


z.SBCSolver.compare_futbin_price_with_local_datac           $      C   s  t | jd|d|d|d|d|dd| d}i }d}d}d}|dkrFd}n(|dkrTd}n|d	krbd
}n|dkrnd
}| j  | jjs| jjrt | jd d S |dkr| jr| jd dk r|   t	
d d S |dkrt | jd qt | jdt|d  d| |d	krb|r@t | jd| | j|t|jdt||
||d}n | j|t|dt||
||d}n|dkrd}|dv r|dkrd}| j||dt|||d}| }|d }t|dkrt | jdt| nt | jdt| n| j|t|dt||d}| }|d }|d	krt|d	k r|rt|j}td D ]R}| j|t|dt||
||d}t|}| }|d }t|d	krD qqDnt | jd! d"S |d d d# }|D ]}|d$ |krt | jd%|  d} q|d&vrDd}|}|d' |kr|d( |k rd}n$|d' |krP|d( |k rPd}|}nd}|d) }|rd*| }|dkr| jd+ d,k rl|d- d.krt | jd/ q| j  | jj|k r|d	krt | jd0 | jd1  d7  < t | jd2| jd1  | jd1 d3kr|   nt| jd1 d4kr|   nZ| jd1 d5krxd6| j }| td7| d8| j_d9| j_| j  |   t	
d:  d S t	
d |    d S |dkrt | jd;|d<| jj  d"S t | jd0 t	
d  qt | jd=| | |d> } t	
d |  }!|!d d d? d@kr0t | jdA t	
dB q| |d> |}"t | jdC|"dD|"jd dE  |d	kr|"jdFks|"jdks|"jdGkrPt	
dH | jdI  d7  < | jdI dJkrdK| j }t | j| | tdL| dM| j_d9| j_| j  |   t	
dN  d S | jdO  d7  < | jdO dPkrt	
d d| jdO< tdQqnFd| jdI< d| jdO< | |	|"||dR dS || |	s|dR dT   S |dkr z|"  d9}#W n   d"}#Y n0 |"jdFks|"jdks|"jdGks|#sqnd}|} q| jd+  d7  < | jdU  d7  < |d7 }||krLt | jdV d} qt	
t dd |dkrd}nt | jdW d} qnd}q|rq|d7 }|d	ks|dkrnqqn||k r| jdX  d7  < |dkr|dkr|S d"S d S )YNzsearch player and bid , r  z ** z
 filter : r   r   i  X  r  ir   worker has error or must doner   <   r  zno more tryzsearch and bid for %s bidsr  z   ,   temp_number_of_bids = zfilter target found ...r  )r  r  r  r  r   r   r   U   gold)r  r  r  r  z"trade mode 3 , len trade is low , z!trade mode 3 , len trade is ok , )r  r  r  z#player price need update. cant buy.Fr1  expiresz)remaining trades are more than %d seconds)r  r   r  
currentBidbuyNowPricer  r   P   ZbidStateZhighestz*I already have highest offer on this tradenot enough credit.w8 5 minutes.r   self.main_dic['no_credit'] =    r      z)not enough credit for account %s . In sbcr  	no creditTrG  z!not enough credit ... bid_price =zself.fifa_account.credit = zsearch player data = r  r  r  r  r  zbid_resp = z text = r  r  r  r  r   r  r  r  r  r0  r      zEmpty bid handlerr  assetIdr   r   zbid completedz@number of bids will be more than standard bid number. I wont bidr   )!rH   r   r   r$  r  r  r  r   r	  r  r  r  r  rO   r  r  r=  r  r_  r*  sbc_low_credit_staffr  r  r  r   r   r  r  r  rB  r  r  r   )$r<  r  Zplayer_bid_priceZnumber_of_bidsr  r  r  max_bid_pricer  r  r  r  sbc_target_idr  r  r  Zbought_tradedoneZtemp_number_of_bidsZ	let_it_goexpire_timerM  r  r  r  player_pricer  r  Zbid_this_oneZtemp_bid_pricer  rB  r  r  r  Zcheck_for_json_resprE  rE  rF  search_player_and_bid  s   













































zSBCSolver.search_player_and_bidc                 C   sf  |  }|d d d d }d| }	t| jd|	 t| j| jd |	| j}
|
  }t| jt dd	 z|d d d
 }t| jd| ddddd|d}| jj	t d|| jd d  }t| jt dd	 |d d d }d||f }	t| j| jd |	| j}
t| jt dd	 t| j|
j
 W n   Y n0 |rbtjj| jdd }tjj|||d d S )Nr  r   r  r   &{"itemData":[{"id":%s,"pile":"club"}]}data =re  /item/pile_clubrf  r  zduplicate item 3, reason r  r  descvalue)r  r  r  sortsortBydefId/clubr  z0{"itemData":[{"id":%s,"pile":"club","swap":%s}]}Fworkeris_done)sbc_processclub_idr  )r  rH   r   rR   r   r   r   r_   ri   r  rB  r=   r   r  r   r  r?   r  )r<  r  r  r  r  r  r  Zjson_bid_respr  r  rM  r  r  r  Zdup_idcurrent_sbc_processrE  rE  rF  r    sH    
z'SBCSolver.account_sbc_targets_buy_staffc                 C   sn   | j jt dt| |  d tt dt| | j| j | jd }t| jt dd t	| jd| |S )N/trade/status/lite?tradeIds=r  re  /trade/status/lite?tradeIds=%srf  zcheck trade : )
r   r  ri   r  r"  rJ   r   r   r_   rH   )r<  r  rM  rE  rE  rF  r    s     zSBCSolver.check_tradec           "      C   sV  d}|r| j jt dt| | jddd tt dt| | j| j | jd }t| jt dd |	 }	|	d	 }
g }|
D ]}|d
 dkr|
|d
  qzt|}t| jd|d| W q   t| jd d}Y q0 nd}td | |}|	 }|d d }t| jd| | jj}d}|dkr2d}d}td | |}|	 }|d d }t| jd| t|d}t| jd|d|d| z| j|d ||d |||d |d |d}|d}t|}t|}tdD ]}t|}qt|dkr`|t|kr`t|d k r`t| jd!|d"| | j jt d#| | jd d}t| j|j td nt| jd$| d"|  W n   t| jd%t  Y n0 |s| jd&krt| jd' | j|dd||d( d S |d)ks|st| jd*| d+|  | j|dd||d( d S |d,ks |s8| j||d||||d-}t|D ]}t|}q@|rbtt|}|d.krd}zt|}d}W n   Y n0 |rzd}tt j!"t#d/d0d1}|$ }|%  t	&|}|d2 D ]L} t| d3 t|kr| d4r| d4 }n| d5 d6 | d7  } q q|s||d8 D ]L} t| d3 t|kr.| d4r^| d4 }n| d5 d6 | d7  } q|q.W n   d}Y n0 |d9krd:| j' d;| d<| d=| d>| d?| d@(dAd}!|!| jj)rdB| jj) nd7 }!| *t+dC|! t| jdD|dE| z$t|}| j|ddt||d( W n   t| jdFt  Y n0 d S )GNr   rH  r  r  r  re  rI  rf  r  r(  r   zmost bid price =z	asset id zbid list is empty   r  r  zplayer limit max_price = r   r  r  item price limits = r  zasset id = rate = card info = r  r   player_clubr  r  r  r  r  r   r  zquick sell this item price = z and min price = r  z/will not quick sell 2 this item player price = zerror 38 : r  z,price not found , sell item with min and max)r  r     z1price not found , sell item with min and max 2 ,  , r  )r  r  r  r
  r	  iP  zutils/players.jsonzutf-8)encodingLegendsPlayersr   cf lPlayersi  z.
                    Congratulations. Account z8 Earned a good player
                    player_name = z$
                    player_price = z$
                    player_asset = z,
                    player_rare_and_rate = z, 
                      
console = r  zsing1 , price = z asset id = zerror 37 : ),r   r  ri   r  r"  rJ   r   r   r_   r  r<  rP   rH   r  r  r  r   complete_numberrU   r  r   r  r  rN   rJ  rB  r  r  r   r  r  r  r  r  r  r)   r  closer  r  replacer   r  r  )"r<  r  rF  trade_id_listr  r  r   r  rM  r  r  Zbid_listr  	bid_pricelimitsZlimits_jsonr  r\  r	  r  r  r  r  r  
back_stepsr(  r  Z	int_pricer   player_nameplayers_fileplayers_datar  rB  rE  rE  rF  sell_process  s2   








*






 
zSBCSolver.sell_processc                 C   sT  t | jd d S t | jd|d| zTt|D ]D}| jj||| jd d	}t| j|d
 t | jd||j	 |
 }q,W n   t | jd t d}|rt d}t | jd|d| zTt|D ]D}| jj||| jd d	}t| j|d
 t | jd||j	 |
 }qW n@   t | jd | j  | jdv r|rX|  j|7  _t | jd| j nR| jjdkr|  j|7  _t | jd| j n$t| jd t | jd| jd| jj nt | jd | jjdkrd}	d}
tdD ]@}t d}| jddd|d}|
 }|d }|d d d }d}|D ]}|d7 }|d kr> q|
d!krd"| j_d#| j_| j  t | jd" |   td$   Y Y d S | |d% }|
 }|d d d& d'krt | jd( td) q |
d7 }
|d* }d+| }t | jd,| | |d% |}|j	d-dks8|j	dks8|j	d.dkrDtd nt | jd/|j	 |d0 d }d1| }t | jd2| t| j| jd || j t| jt d3d
 td4 t | jd5|d0 d6  t d7|d0 d6  }| jj||| jd d8 t| j|d
 d}	 qq |	r qDqn&t | jd9 |   td$ Y Y d S Y n0 Y n0 d S ):Nz3apply contract failed. contract not exists any moreapplyr   z/item/resource/5001006z/item/resource/5001010zapplying contract , url : z payload : re  r  rf  zfirst contract resp : z-first contract type is finished. Try new one.z/item/resource/5001003z/item/resource/5001013zsecond contract resp : z!second contract type is finished.r  z manager contracts need to buy = iX  zcontracts need to buy = zneed contract but low creditz but low credit z,no contract found. must buy a contract firstr   r  zN/transfermarket?num=21&start=0&type=development&cat=contract&lev=gold&maxb=200r   rg  r  r1  r      r0  r  Tr  r  r  r  r  r  r)  r  zapply contract data = r  r  zbid_resp.text = r  r9  r:  r;  r  z$auction['itemData']['resourceId'] = 
resourceIdz/item/resource/%sr  z+no credit to buy contract . will deactivate)rH   r   r  ri   r  r   r  r   r_   rB  r  r$  r   r  r_  r  rY   r   r  r   r  r   r	  r  r  r  r  r  rR   r   )r<  r  manager	apply_numr  r  ZiterM  r  r  	bid_countr(  rg  r  r  Zauctionr  r  r`  r  r  Z
consume_idrE  rE  rF  apply_contract	  s        















zSBCSolver.apply_contractc                 C   s   ddt |igi}t d}| jj||| jd d}t| j|d z| }t| jd| W n   t| jd||j	 t d	}| jj||| jd d}z| }t| jd| W nb   t| jd
||j	 | j
dv r|  jd7  _t| jd| j n|  jd7  _t| jd Y n0 Y n0 d S )Nrg  r   z/item/resource/5002030re  r  rf  z$apply healing was success. result : z6first healing type is finished. Try new one. result : z/item/resource/5002031z7second healing type is finished. Try new one. result : r  r   zheals need to buy =z#apply_healing has not run on server)r  ri   r   r  r   r_   r   r  rH   rB  r   r  )r<  r  r  r  rM  r  rE  rE  rF  apply_healing
  s0    


zSBCSolver.apply_healingc                 C   s   ddt |igi}t d| }| jj||| jd d}t| j|d z| }t| jd| W dS    t| jd	||j	 | j
d
v r| jjdkr|  jd7  _t| jd| j qt| jd| jd n|  jd7  _t| jd Y dS 0 d S )Nrg  r   z /item/resource/5003181?position=re  r  rf  z,apply position change was success. result : Tz3position change is finished. Try new one. result : r  r  r   zposistion change need to buy = z but low credit _pz-apply_position_modifier has not run on serverF)r  ri   r   r  r   r_   r   r  rH   rB  r   r_  r  )r<  r  Znew_position_indexr  r  rM  r  rE  rE  rF  apply_position_modifier.
  s.    
z!SBCSolver.apply_position_modifierr   c           $          s
  t | jd|d|d|d|	 td tdD ]}ddddd	d
}| jjt d|| jd d}t	| jt dd |
 }|d }	|	d d }
|dkrt|	dkr|r| jjt d|
 | jd d}t | jd||j q,q, qq,|	d }|d }td| jj t|d  d d }t | jd| d|d  d|  | j|d|d g g  g }d}| j  g dg dd}||d p|d |   | j  t | jd!| td | jjr| jj d"krt | jd# | jd$ | jdddd%dd&d'd$d(}nnt | jd) | jd$ dddd%dd&d'd$d*}t|dkrrd+}t | jd, | jd d-d.t| d/| j td0 t | jd1t| |t|krt | jd2 d$S d}t|krz|| }W n2   t | jd3d4t|d5|d6t  Y qY n0 ttfd7d8|}t | jd9t  d:t|  |rz|D ]>}|d vr:|d;  vr:|d< d= dks:|} qzq:|d v s|d;  v rt | jd> |d7 }qnt||d? kr
d+t  krd@kr
n n(|dA dBkr
t | jdC |d7 }qnt||d? krhd+t  kr8dDkrhn n,|d< d= dkrht | jdE |d7 }qn@tdFkr|D ],}|d vrz|d;  vrz|} qqz |d    |d;  | | t | jdG|d d|d; dHtd  dI|dJ dK|d dLt!|d; dM qd}|D ]}|d7 }|d | jj"| jj d k r|r|dDkrt| jj"| jj t|d  d d }nt|d dk rdnd}t | jdN|d;  d|d  d|  | j|d |dO |dP dkr"| #|d  q" fdQdR| jD }|r,d$| j_$| jj%dSgdT nd| j_$| jj%dSgdT | jjrt | jdU dV| j  fdWdR| jD }|rd$| j_$| jj%dSgdT nd| j_$| jj%dSgdT  fdXdR| jD }|D ]}t&j'j(ddYj|dZ)d[* }|rzlt!|dM}| j+|j,|j-|d |j.|d |d\ |j/d]} | d^}!t|!d_krLt|!|_0nd`|_0|%  W n   t | jdat  Y n0 | j1 | qt | jdb| j1 ddcdcddd$ddgdddd$dddedddd$dddedddd$ddded\ddd$ddded?ddd$dddedfddd$dddedgddd$dddedhddd$dddediddd$dddedjddd$dddedkddd$dddedDddd$dddedlddd$dddedddd$ddded@ddd$dddedmddd$dddednddd$dddedFddd$ddded+ddd$dddedoddd$ddded"ddd$dddedpddd$dddedddd$dddegdq}"t23|"}#|#4drdsdt t | jdu|# | jj5t dv|#| jd d}t | jdw|jd dx  td t23|"}|4drdy|d$ddgdz|6d{dc d| | 7| | j8dk
r| j9dk
rd| j_:| j%  | j  dS )}Nzactive squad handler : r  r   r  rk  r      r<  r=  r  r  r  r>  r?  rA  re  r  rf  r  r   r  r  z'remove current manager , remove status (   contractr-  zmanager z has z contract - T)rk  rl     )r   r   r   r   r~   r   r   r{   r}   r   rz   ANYrv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  )r   rx   r   r   rv   r~   r   r   r{   r   r   rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  rv  )r   r   r   zall_need_players = r  zusing special squadFovrr  )r  ZsearchAltPositionsr>  r?  r  r  )filter_bronzeplayers_listinclude_players_listspecial_payloadget_sbc_storagezusing normal squad)rx  ry  r{  r|  r  zcan not full all substitute : r  zBcan not full all substitute , less than minimum players , current z	 account r.  zlen(club_players) = z)club player is less than all need playerszerror 115 : zclub_players : z
counter : ztraceback : c                    s   t   | d v S )NpossiblePositions)r=  )Zperson)ry  selected_positionsrE  rF  <lambda>      z0SBCSolver.active_squad_handler.<locals>.<lambda>zneed player filter : z and len filtered players : r1  
statsArrayr1  z+selected player already in selected playersrx  r   preferredPositionr   zselected player is GKri  zselected player has red cardr0  zadd player z to squad players list, need z and player is r}  z current contract : z data : r  zplayer )rl  ZinjuryGamesc                    s    g | ]}| d d vr|qS Nri  rE  .0xxplayers_asset_listrE  rF  
<listcomp>D  s   z2SBCSolver.active_squad_handler.<locals>.<listcomp>special_squad_ready_to_playr   zplayer asset list : z special squad players build : c                    s    g | ]}| d d vr|qS r  rE  r  r  rE  rF  r  O  s   c                    s   g | ]}| vr|qS rE  rE  r  r  rE  rF  r  X  s   )r  r  r  r   )rc  player_rateplayer_known_asr  r  r  r  r        z$error on update player card price : zfor special squad need : r   r   dreamindexZ	kitNumberr  r      r   rP  	   r  r   r  r      r  )r   	squadName	formation	chemistryrk  players
best squadZf442)r  r  zmain squad = /squad/0r  r  !   rU  -)r  r  rk  r  );rH   r   r  r  r  r   r  ri   r   r_   r  r=  rJ  rB  r  account_played_gamesrn  r   r$  r   r  use_special_squadfifaaccountsquadgame_setr  get_bronze_club_playersr%  r  r2   r  r  r*  r  r<  rU   allowed_play_gamero  r  r   r   r   excluderX  r  r  r   r  r  r  r  r  copydeepcopyr!  r  r^  send_main_squadr  r  
main_squad)$r<  r  use_contractchange_managertry_counternnntr  rM  r  managersrF  r  Zselected_managermanager_club_idZneeded_manager_contractZplayers_list_full_dataZall_need_playersZteam_positionsclub_playersr  Zselected_player_datafiltered_playersitemZunused_itemZ	counter_1Zplayer_item_full_dataZneeded_contractZnot_duplicate_playersZnot_duplicate_players_2Zxxfplayer_card_itemr  r  r7  Zempty_squadZupdate_Squad_name_payloadrE  )r  ry  r~  rF  active_squad_handlerH
  s   


/

	








$


 








zSBCSolver.active_squad_handlerc           &         s>  t | jd|d|d|d|d| |st | jd d| j dtt  d	| d
| }| jtd|td dddt dddddd	S |ddd}| j	d|d}t
d g }|
rt | jd|jd|j |jdkst| tr| drdddt dddddS | }|D ]}|dd}|t|kr<qt|d}d }|r|dkr`d}n2tjj| d  }|st | jd!| n|j}t|dkr|rt|t|krt|d"vrt | jd#|d| n||d$ qt|d% t| ks6t|d% t| krzt|t|krf|d"vrft | jd&|d| n||d$ qt|d% t| kst|d% t| krt|t|krt | jd' n||d$ qd}t|  D ]$}|t|d% vrd}q|rt|t|krt|d"vrt | jd(|d| |st | jd) ||d$ n||d$ qq|
rt | jd*| |st | jd+||d, d-| j dtt  d.| d	| d
| 
}| td| |D ]}|
r0t | jd/t| | j	t d0| d1d2}|jd3krrdddt ddddd  S t|jd4}|j d5d6}|d7 }|j d8d6j}|j d9d:d;id<d: }|j d=d>d6}|s|j d=d?d6}z4| d=d@ }tt!"dAtt#j$%|&d}W n   dB}Y n0 |rLt|t|krLt | jdC|dD| q|j dEdFdG} | rx| 'dHjt|krxn|r| r|j dEdIdG'dHj}!|!( |!( dJ g  fdKdLt)D }"t||"v rt | jdMdN|!dO|"dP| nt | jdQdN|!dO|"dP| qnt | jdR|dS qt!"dTt#j$%|d@ }#|#rX|#&d}#d*dUdL |#D }#nd}#|#st | jdV|# dddt dddd|d	  S |	rt|#t|	krt | jdW|#d|	 q| j+||jdX}$|st|j dEdYdGj, dHj}|$dZr|$}%|%-|d|||d[ |%  S qdddt dddddd	S )\Nzfutbin search : player_name : z - rate z - known as z - player rare z - club z%can not find player info without namez&can not find player info without name rQ  z player name : z , player_rate : r  r.  r   r   )	r  r  update_time_stamplocal_time_stampfirst_pricefutbin_min_pricefutbin_max_pricer  display_namer   Fqueryyear
evolutions%https://www.futbin.com/players/search)rg  rt  r   zfutbin search result 3 : r    ru  Never)r  r  r  r  r  r  r  r  ratingSquarer  playerImage.versionNormalname__iexactcan not find rare flagr$  zdoesnt match rare type 6 r   r   zdoesnt match rare type 1 , zdoesnt match rare type 2zdoesnt match rare type 3 z4no other item found, add it and next step will checkzlist ids = z"can not find player list ids emptyz---z#can not find player list ids empty z list ids : z"get futbin link 1 : {}/player/{}/a/player//arh    html.parserplayer-card-wrapperclass_data-idplayercard-25-ratingdivtitleTattrsimgplayercard-25-base-imgplayercard-25-special-imgsrc	hd/(\d+)_r  z1special rare does not match 7, continue , rare :  current_player_rare : thzClub IDrB  tdClubz
 ( women )c                    s$   g | ]}|d   v rt |d qS )r   r   r  r  iinZsimilar_club_namesrE  rF  r  T  r  zBSBCSolver.get_player_price_from_futbin_web_app.<locals>.<listcomp>zclub name found in similar : z futbin club name : z similar : z player club : z!club name not found in similar : z*doesnt match club name. but for now pass. z != /players/(.+)\.pngc                 S   s   g | ]}|  r|qS rE  isdigitr  r?  rE  rE  rF  r  n  r  z cant get data player resource , zresource id does not match 2 , page_sourceIDr  )r  resource_idrc  player_ratingr  ).rH   r   r  r   nowr  r  r4   r  r  r  r  rB  
isinstancer  dictr   rg   rG   r   r  lowerr  rare_idr=  r  r<  	unidecoder;  formatrm   r   r  researchurllibparseunquotegroupfindNextstripr9   r   get_price_from_futbin_and_futwizparentr!  )&r<  rc  r  r  rO  r  r  r  r  r  r   rB  rt  r~  list_idsZresult_jsonr  query_ratingquery_rare_text
query_rarefoundr(  id_itemplayer_card_resultsoupplayer_card_wrapperplayer_futbin_idr  r  player_wrapper_imageZrare_image_urlcurrent_player_rareZ	club_elemZfutbin_club_nameclub_similar_idsplayer_resource_idr  output_datarE  r  rF  r    sl   

*


&	$  	




	

	z.SBCSolver.get_player_price_from_futbin_web_appc           %      C   s  t | jd|d|d|d|d| tjddddd}|ddd	}|jd
|d}	td g }
t | jdd|	jd|	jd|	j	 |	j	dkst
|	 tr|	 drt | jd|	j	 i S |	 D ]P}|dd}|t|krqt|d}d }|r4|dkrd}n2tjj| d }|s.t | jd| n|j}|r`|r`t|t|kr`t | jd qt|d t| kst|d t| kr|
|d qd}t|  D ]$}|t|d vrd}q|r|
|d qqt | jd|
 d}|
D ]}t | jdt| t d | d!}||}td t|jd"}|jd#d$}z4|d%d& }ttd'ttj !|"d}W n   d(}Y n0 |rt|t|krt | jd)|d*| q$n|d(k r|jd+d$}z|j#d,d$}|rx|D ]V}|d-}t | j|d. |d/  |d. d0krt|d/ dkrt | jd1 d2}qnt | jd3 W n   t | jd4 Y n0 |r|jd5| d6 d7krt | jd8| q$|d9 }|jd:d$}|jd;d<d2id=d< }t|jd>d?d@j$dAj} |r*t|j}nd }|jd%dBd$}!|!sP|jd%dCd$}!tdDtj !|!d& }"|"r|""d}"dE%dFdG |"D }"nd}"|rt|"t|krt | jdH|"d| q$td( | j&||jdI}#|#dJr$|#}$|$'| |"||||dK |$  S q$i S )LNzplayer_name 2 : r  r  r  Fr  r  r   r  r  rz  r   zfutbin search result 2 : z url : z text : z code : r  ru  z(futbin result status is 403 or has errorr  r  r  r  r   r  r  zrare does not match 9r   r   zlist ids 2 = z"get futbin link 2 : {}/player/{}/ar  r  r  r  r  r  r  r  r  z0special rare does not match , continue , rare : r  zplayer-versionspversionr   z
data-levelzdata-rare-typer&  z!####### another gold card foundedTzplayer hasnt any other cardzplayer hasnt any other card 2><r1  zdoesnt match club name. r  r  r  r  r  r  r  r  r  r  r  r  r   c                 S   s   g | ]}|  r|qS rE  r  r  rE  rE  rF  r  y  r  zCSBCSolver.get_player_data_from_futbin_with_name.<locals>.<listcomp>zresource id does not match , r  r  )r  r  rc  r  r  futbin_link)(rH   r   r  r  r   r  r  r  rB  r  r  r  r  r  rg   rG   r   r  r  r  r  r  r  r<  r;  r  rm   r   r  r  r  r  r  r  r  find_allr  r  r  r!  )%r<  rc  r  r  rO  r  r  r  rt  r~  r  r  r  r  r  r  r(  Zmust_check_clubr   r  r  r  r  Zplayer_image_urlr  Zplayer_versionsZ	pversionsr
  Za_elemr  r  r  r  r  r  r  r	  rE  rE  rF  %get_player_data_from_futbin_with_name  s   

&









 


z/SBCSolver.get_player_data_from_futbin_with_namer   c                 C   s  |r|}n&|  t d| d}|jdkr0i S |jdkrVt| jdt d| dd |j}|dd	kr2t| jd
t d| |dd	kr"d| j	
d| j	
df }| td| tjj| j	d | j	d d }|r|  t tdd }|| j_| jjdgd | jdd i S |r2t| t|d}	d}
|	jddD ]:}d|d v rLd|d v rLd|d v rL|}
 qqLg }d }}zH|
jddjd }|d }t|d!d"}|d# }t|d!d"}W n   Y n0 |
jd$dj}|
j d%dD ]}|!|jd!d" q|r4t| jd&| t"|dkrHd'g}t#|}|
jd(djd)d"}|rt| jd*|d+|d,| |	jd-dj}|r|}tt$|d!d"}tt$|d!d"}||||||t%|t d|d.
S i S dS )/z

        @param player_asset_id: player futbin id .
        @type player_asset_id:
        @param print_log:
        @type print_log:
        @return:
        @rtype:
        r  r  r  r  zfutbin return error 403 on z/a ,z seems proxy expired.z$Your client does not have permissionr1  zerror 40 : z ,   futbin result : zproxy %s:%s is dead for futbinr   r   r  )rY  rL  r  r  last_runr   r   rt  r  Nz	price-boxr  r  zplayer-price-not-pszprice-box-original-playerr   zprice-prrV  ,r   r   zlowest-price-1zlowest-pricezfutbin_all_prices_list = r`  zprices-updatedzPrice Updated: zfutbin player price , min : z current buy now : z update time : z playercard-25-name text-ellipsis)
r  r  r  Zfutbin_price_listr  r  r  r  r  r  )&r  rm   r  rH   r   rB  r  r  r  r   r   r  r  r   r   r  r  rJ  r   r   r   r   r   r   r	  r  r  r   r  r;  r  r^  findAllr<  r=  rP   r  r`   )r<  r  r   wait_on_errorr  rM  rB  rH  r  r  Zcard_price_inforC  Zfutbin_all_prices_listr  r  Zpr_pricer  ZitiiZfutbin_player_priceZfutbin_price_update_timeZconsole_display_namer  rE  rE  rF  r    s    





*

z*SBCSolver.get_price_from_futbin_and_futwizc	           
   
   C   s"   d}	| |||	|||||g d S )Nr   r<  )
r<  r  rF  
items_listr  rater   r  last_sale_pricer_  rE  rE  rF  items_sell_get_listJ  s    zSBCSolver.items_sell_get_listc                 C   sz  t | jd g }tjj| jdd }|rPtjj|jd}|D ]}|	|j
 q>| js| dd}|rtjjtjj|d d}|D ]}|	|j
 q| dd	}|rtjjtjj|d d}|D ]}|	|j
 qnjtjjtjjdd
d d}|D ]}|	|j
 qtjjtjjd	d
d d}|D ]}|	|j
 q2t | jd| | j|d}|rvt| | j| j d S )Nr2  FrB  sbc_typer   r  r   rx  $   r   )
sbc_numberr  zasset_id_list = )asset_id_list)rH   r   r=   r   r  r   r  r>   r  r<  r  r	  get_loyal_sbc_idr@   #send_to_pile_tradeable_club_playersrL   )r<  r  rG  sbc_targetstargetsbc_idneed_relooprE  rE  rF  r2  O  s8    zSBCSolver.sbc_low_credit_staffc                 C   s  t | jd zTd}d}| j  | jd sD| jj|krDt d| d}| jj|| jd d}t| j|d	 z|	 }W nt   t
d
 | jj|| jd d}t| j|d	 z|	 }W n,   t | jd|  d| jd< Y Y W d S 0 Y n0 |d }d}g }|D ]L}	|	d dkr|	d}
|	d}|	d}|	d}|	d}|	d}t|d}zdt| }| j|}|r|dt

 td  krt | jdd| |}nH| j|d ||d |||d
 |d |d}|dr| jj||td  |d!}|||d" W n"   t | jd#t  d}Y n0 |t|7 }t
d
 qt | jd$|d%| |d&kr,d'| j d(| d)| d*d+d,}|| jjrd-| jj nd,7 }t | j| | jtd.|td/ t d0}|d1d2}| jj|| jd |d3 t| j|d	 t
d
 t| | j| jd4d5 nt | jd6 d| jd< nt | jd7| jd | jj| W n$   t | jd8t  t   Y n0 d S )9Nzstart preview gold packi=(  iL  r   z/preview/pack/z/itemsre  r  rf  r  zpack id %s is not previewabler   itemListr   itemTyper  r   rj  r1  r  teamidrareflagr  futbin_player_r  r   z;this item was selected from futbin less than 60 minute ago  , so use old data again : r   rN  r  r  r  )zasset idr  zerror 90zsum_item_prices preview pack = zitems : r  z)Gold pack preview seems good for account zQ.
                     Try to open it.
                     expected coins get > z# and total coin need for open it = rY  rZ  r   r[  r  r.  r  COINS)packIdcurrency)rs  r  Fcheck_players_pickzits not a good packznot open preview gold pack : zerror 77 : )!rH   r   r$  r   r_  ri   r   r  r_   r  r  r  r   rU   r  r;  r6   r  setr5   r<  r  r  r  r  r^  r   r  r  r1   rL   r   r   )r<  pack_idcoinsr  rM  r  itemsZsum_item_pricesry  r  r  r  r  r  r   	rare_flagr  player_cache_namefutbin_datar  r  rB  r  rE  rE  rF  preview_and_open_good_gold_packq  s    









"	



 


z)SBCSolver.preview_and_open_good_gold_packc           
      C   s   t  d| d}t| jd| td | jj|| jd d}t| j|d t| jd||j	d d	  |j
d
krt| jd| d dS |j
dkrt| jd| d dS | }|d }d}|D ]2}	||	d kr|	d dkrd}q|	d dkrd}q|S )Nz/sbs/setId/z/challengesz$checking for completed sbc , link = r  re  r  rf  zchallenge resp = r   i  zchallenge with father z
 not exitsr1  i  
challengesr   challengeIdr  	COMPLETEDr   ZIN_PROGRESS)ri   rH   r   r  r  r   r   r   r_   rB  r  r  )
r<  father_numberr  rE  rg  rM  r  r9  completed_challenge	challengerE  rE  rF  check_if_completed_sbcD  s2    


z SBCSolver.check_if_completed_sbcc                 C   s   |sg }t | jd t| jd d}| jdd}|D ]x}|d s4|d |vr4t| jd d	|d
  }t| jd| t| j| jd || j t	| jt
 dd td d}q4t | jd |S )Nzsen to pile steter   r   Texclude_squaduntradeabler1  zitem send to tradepiler  r   r:  re  r  rf  r  r   zend of sending)rM   r   rH   r   get_gold_club_playersrR   r   r   r   r_   ri   r  r  )r<  r  r$  r  r  r  rE  rE  rF  r   _  s.    
z-SBCSolver.send_to_pile_tradeable_club_playersc                 C   s   t | jd dS )Nz"really need buy change position???F)rH   r   )r<  Z	first_posZsec_posr  rE  rE  rF  buy_pos_change_and_applyw  s    z"SBCSolver.buy_pos_change_and_applyasctarget_filterc           &         sh  d}d}d}d}g }g }|d u r$g }| j jr2| j}|r>|| }g }t|
D ]>}|dkr^ qrddd|dd}jr|dji jr|dji jr|d	ji jr|d
ji j	r|dj	i j
r|dj
i jr|dji | j jrg }| jjt d| jd d}t| j t dd | dg D ] }||di dd q^|dddd |D i nddd|dt||d}|dd| i | }|d | jt|r| jt|} qt| j d|d| | jjt d|| jd d}t| j t dd | }td |d }||7 }t|d k rJ|| jt|<  qqJ| jslt| j d! | jjt d| jd d}t| j t dd | dg D ]}| jt|d"d qtd# |   d } | D ]}!| j |!d$  qt!| j | j| j d% }"|"D ]}#| j"t|#d"d qP| j#d u rt$| j | j| jd } |  dpg }$|$st| j d&| j%d d'  |$| _#n| j#}$rjrfd(d|$D }$jrfd)d|$D }$jr"fd*d|$D }$jr<fd+d|$D }$j	rVfd,d|$D }$j
rbg }$jrt&tdd-t&td-d.t&td.d/d0  fd1d|$D }$|$| }|D ]}%|%d2 |	k r̐qrj'rj'|%d2 krq|%d3 d4u r0|%d2 d5kr0t| j d6|%d2  d7|%d3   qn|%d3 d8u rrj'rj'|%d2 krt| j d9|%d2  d7|%d3   qn@rj's|%d2 d5krt| j d:|%d2  d7|%d3   q|%d3 d8u r|d#ks|%d3 d4u r|dkrq|%d$ |v rq|%d$ | jv rP|rP|%d$ | j vrP|%d$ | j"vrP|%d$ |$vrPq|%d; dkrd|rt|%d; |v rzq|%d<s|%d=rq|%d3 d4u r|%d>d?d@krq|%dA }|%d$ }|%d2 }|%dBdpd}|rt||k r|| d}d}d}qt| j dC|dD|%d$ dE|%d3 dF|%dBdG| |r||||dH  S q||||dHS )INr   r   r  rq  rw  rr  r  r  r  r  r  r  r  r  re  r  rf  r  r  rj  excldefr  c                 S   s   g | ]}t |qS rE  r  r  ZnttrE  rE  rF  r    r  z3SBCSolver.search_target_in_club.<locals>.<listcomp>)r  r  r  r>  r?  r@  r  r  z search target in club payload = z need more rA  r  r      z!exclude squad from search targetsitemData.assetIdr  r1  r  zstorage error 2? , r   c                    s$   g | ]}| d pd jkr|qS )r'  r   )r   r  r  rF  rE  rF  r    r  c                    s$   g | ]}| d pd jkr|qS )r  r   )r   r  r  rF  rE  rF  r    r  c                    s$   g | ]}| d pd jkr|qS )leagueIdr   )r   r  r  rF  rE  rF  r    r  c                    s$   g | ]}| d pd jkr|qS )r  r   )r   r  r  rF  rE  rF  r    r  c                    s(   g | ] }t |d pd jkr|qS )r(  r   )r  r   r  r  rF  rE  rF  r    r  A   K   r  bronzesilverr&  c                    s*   g | ]"}| d pd  jv r|qS )r  r   )r   r  r  Zlevels_dictrG  rE  rF  r    s   r  rB  Fr%  zplayer_rate_1 , player rate z( and will not use in sbc , untradable : Tzplayer_rate_2 , player rate zplayer_rate_3 , player rate r(  loans	loansInfomarketDataMinPrice    r   lastSalePricezitem found from club , id : z , asset id : z untradebale : z last sale price : z
 rating : )r  r  r  player_last_sale_price)(r   r  r%  r  r  r!  r  r  r  r  r  r  r   r   ri   r   r_   r  r<  r  r  r  popr1  rH   r  r  r  r=  r4  rg   r  r6  rI   r5  r7  ra   rB  r*  
max_rating)&r<  r  r  r  r  tradable_typerare_targetrG  Zexclude_players_listZmin_rate	get_pagesZsort_by_descrA  exclude_rare_flagsneed_more_thanr  r  r  rY  Zexclude_asset_idZneed_more_than_listZall_club_players_datar  r  exclude_resource_id_listr  club_playerZpayload_minus_startrM  r  result_listZsquad_playerresp3Z
unass_itemresp4Ztransfer_itmstorage_pile_itemsr~  rE  rR  rF  search_target_in_club|  sX   
 





 
D& 
zSBCSolver.search_target_in_club)	rate_listc                 C   sZ   |sdS t |}|t| }d}|D ]}||kr$||| 7 }q$tt|| t| }|S )Nr   )sumr=  r  round)r<  rh  Zsum_rate_listZdiv_sum_rate_listZtotal_excessr  Z
final_raterE  rE  rF  calculate_team_rate_avg\  s    z!SBCSolver.calculate_team_rate_avgc                 C   s   d}| j ddd}| |}tjj|ddd}|D ]p}d}tjj|d}|D ]B}	|D ]8}
t|
jt|	d krTt|
jt|	d	 krT|d7 }qTqL||kr2|j	} qq2|S )
Nr   r   T)r  rA  r  )r  r  
submit_sbcr  r1  r'  )
rC  #get_loyal_players_from_players_listr@   r   r  r>   r  r  r  r   )r<  Z
loyal_needr  r#  r  ZsbcssbcZloyal_counterr!  r  r"  rE  rE  rF  r    s    
,zSBCSolver.get_loyal_sbc_idc                 C   s(   g }|D ]}|d dkr| | q|S )NZloyaltyBonusr   r  )r<  r  r  r  rE  rE  rF  rm    s
    z-SBCSolver.get_loyal_players_from_players_listc                 C   s  g }g }ddddddd}|r| j jt d| jd	 d
}| dD ]}||di dd qH|dddd |D i t| j	d| | j j
t d|| jd	 d}t| j	t dd | }	|	d }
|
D ]8}|ds|ds|r|d |krq|| q|}|S )Nr  r   r  r<  r=  r&  )r  r  r  r>  r?  r  r  re  r  r  r  rj  rH  r  c                 S   s   g | ]}t |qS rE  r  rI  rE  rE  rF  r    r  z3SBCSolver.get_gold_club_players.<locals>.<listcomp>z get gold club players payload : rA  r  rf  rS  rT  r(  )r   r   ri   r   r  r<  r!  r  rH   r   r  r_   )r<  r  rA  	temp_listra  r  r  rb  rM  r  rc  r~  r  rE  rE  rF  rC    s8    zSBCSolver.get_gold_club_playersr   c           
      C   s   dddddd}g }g }t | jd| t|D ]}|dd| i | jjt d	|| jd
 d}t	d t
| jt d	d | }|d }t|dkr q|D ](}	|	d d dkr||	 ||	 qq.||dS )Nr  r   rq  r<  r=  rr  zget club players , payload : r  rA  re  r  r  rf  r  r  r1  )r  red_card_players)rH   r   r  r!  r   r  ri   r   r  r  r_   r  r=  r<  )
r<  r^  r  ro  rp  r  rM  r  rc  r~  rE  rE  rF  get_full_club_players  s*    

zSBCSolver.get_full_club_playersc                 C   sf   | j jt d| jd d}t| jt dd | }g }|dpHg D ]}||d  qJd|iS )N/squad/activere  r  rf  r  r  squad_players)r   r   ri   r   r_   r   r  r<  )r<  Zactive_squad_responseZactive_squad_response_jsonZ
temp_squadr  rE  rE  rF  get_active_squad_players  s    z"SBCSolver.get_active_squad_playersc                 C   s0   t | j| j| jd }| dp&g }d|iS )Nre  r  r7  )ra   r   r   r   r  r   )r<  rd  rf  rE  rE  rF  get_sbc_storage_players   s    z!SBCSolver.get_sbc_storage_playersr  r  )r  search_filterc                    s  t | jd|d|dd|d|d|dt|d d d	|
d|	d
|d| |d u rLg }|d u rXg }|d u rdi }| js| jg g g d | j| jdd | j|   | j|   tt	j
tdd&}|tj| jdd W d    n1 s0    Y  | jd }|dkrg }|r(| jd | }dd | jd D }g }t }|D ]$}|rh|d |v rhqJ|drxqJ|r||d krqJ|d }||v rqJ|| ||v rqJ|dsJ|drڐqJt|d |v rqJt|d }||	ksJ||
krqJ|d  d!u r0|d"kr0qJ|d  d#u rH|d$ksJ|d  d!u rd|d%krdqJ|| qJtt|d&d' d(}|r"|d)|d* |d+|d,|d-|d.|d/}td0d1td1d2td2d3d4}|r ||nd  fd5d6|D }|rtt}|D ]^}t|d d1k rNd7n*d1t|d   krnd8krvn nd9nd:|d;< ||d;  | q4g }| D ]2}tt|t|D ]}|  q|| q|}|S )<Nzget filtered club players z--r  z exclude_squad z exclude_resource_list z search_filterz first 5 exclude_rare_flags r  z rating z get_sbc_storage z save_some_items )r  rs  r7  r^  zexample_players.jsonwrx  )indentr  r   r7  c                 S   s   h | ]}|d  qS r   rE  r  rE  rE  rF  	<setcomp>'  r  z6SBCSolver.get_filtered_club_players.<locals>.<setcomp>rs  r   ZacademyAttributesr1  rj  rS  rT  r(  r  rB  Fr%  Tr  r   c                 S   s   | d S Nr  rE  )item_1rE  rE  rF  r  E  r  z5SBCSolver.get_filtered_club_players.<locals>.<lambda>keyr  r  r  r  r  r  r  r   rM  rN  r  rO  c                    s   g | ]}r"t |d pdv rr8|ddfv r rRt|dt krrlt|dtkrrt|dtkrrt|dtkrrt|dtkr|qS )	r  r   r  anyr  r  r'  r(  r  )r  r   r  )r  rC  r  Zlevel_ranger  Z
play_styler  r  r  rE  rF  r  V  s   z7SBCSolver.get_filtered_club_players.<locals>.<listcomp>rP  J   rQ  r&  rating_color)rH   r   r  r3  r!  rq  rt  ru  r  r  r  r  r)   writer  r  r0  r   addr  r<  r*  r+  r  r   r   rW  minr=  popleftextend)r<  r  r\  sort_byrA  Zinclude_resource_listZexclude_resource_listrv  r_  r[  
min_ratingr|  save_some_itemsZ	json_fileZfull_players_listZsquad_players_id_setZresul_players_listZseen_resource_idsr  r  r  	level_keyZlevel_rangescolor_groupsr  updated_playersr  _rE  r  rF  get_filtered_club_players  s    4













(z#SBCSolver.get_filtered_club_playersc                 C   s   | j sdddS d }|sP| j d}t|D ]"\}}|d |kr,||} qPq,|s| j d}t|D ]"\}}|d |krh||} qqh|d u|dS )NFclub players emptyr  ru  r  r   r7  )r  	item_data)r3  r   	enumeraterZ  )r<  r  Z
item_found
club_itemsr  r  Zstorage_itemsrE  rE  rF  $remove_from_club_players_informationt  s     


z.SBCSolver.remove_from_club_players_informationr  c                 C   sb   | j sdddS |dkr2| j d | d|dS |dkrT| j d | d|dS dddS d S )	NFr  r  r  T)r  	item_infor7  zbad data part name)r3  r<  )r<  r  data_part_namerE  rE  rF  add_to_club_players_information  s    


z)SBCSolver.add_to_club_players_informationc                 C   s   i }|j r|d|j i |jr0|d|ji |jrF|d|ji |jr\|d|ji |jrr|d|ji |jr|d|ji |jr|d|ji |S )Nr  r  r  r  r  r  r  )r  r!  r  r  r  r  r  r  )r<  rG  r  rE  rE  rF   convert_target_filter_to_payload  s     z*SBCSolver.convert_target_filter_to_payload)r{  c           (      C   s8  t | jd|d|d|d|d|d|d| |d u r2g }|
d u r>g }
g }g }g }dd	d
ddd}|rl|ddi |	rt|	}|r
| jjt d| jd d}t| jt dd | dg D ]0}|	|di dd	 |	t
|dd	 q|dddd |D i |rt| jd u rlt| j| j| jd }| dpDg }|sdt | jd|jd d  || _n| j}ng }g }t|D ]}|dd
| i | jjt d|| jd d }td! t| jt dd | }|d }|d	kr|| }t|d	kr q|D ]}|d d"d |D v r2q|d#s|d$rNq|d%r^qt|d& |
v rtqt|d' |kst|d' |krq|r|d( d)krq|d* |v rƐq|d+ d, d	kr|	| q|r|d* |v rq|	| qq|d-kr2tt|d.d/ d)d0}ntt|d1d/ d)d0}t | jd2t|d3t| || }|rjg }g }|d4dd5d |D i | jjt d|| jd d } t| jt dd |  }!t | jd6|!d d d7  |!d D ]f}"|"d#s|"d$s|"d%s|"d* |v r,q|"d+ d, d	krL|	|" q|	|" q|| }|| }|r4|D ]D}#|#d' d8k rdn&d8|#d'   krd9krn nd:nd;|#d<< qttt}$|D ]}%|$|%d<  	|% qg }&|D ]F}'|$|'d<  rt|$|'d<  |kr|&	|' |$|'d<  d	 q|&}|S )=Nzget bronze club players z
 -- trade z	 -- sort z -- exclude squad z -- max rate z -- min rating z -- get sbc sotrage r  r   rq  r<  r=  rr  r  rP  r  re  r  rf  r  r  rj  rK  rH  r  c                 S   s   g | ]}t |qS rE  r  rI  rE  rE  rF  r    r  z5SBCSolver.get_bronze_club_players.<locals>.<listcomp>zstorage error? , r   r  rA  r  r  c                 S   s   g | ]}|d  qS )rj  rE  r  rE  rE  rF  r    r  rS  rT  ZendTimer(  r  rB  Tr1  r  r1  rt  c                 S   s   | d S )Nrt  rE  r  rE  rE  rF  r    r  z3SBCSolver.get_bronze_club_players.<locals>.<lambda>r~  reversec                 S   s   | d S r{  rE  r  rE  rE  rF  r    r  znormal cards : z red cards : r@  c                 S   s   g | ]}t |qS rE  r  rI  rE  rE  rF  r    r  zinclude players result = r  rM  r  rQ  r&  r  )rH   r   r!  r   r   ri   r   r_   r  r<  rg   r  r7  ra   rB  r  r  r  r  r=  r  r  r*  r+  r   rZ  )(r<  r  rx  ry  	tradeabler  rA  rz  r^  r{  r_  r[  r  r|  r  ro  ra  r4  r  r  rb  rd  rf  rp  r  rM  r  rc  r~  r  Zred_card_players_2Ztemp_list_2Zresp_2Zjson_resp_2result_2r  r  Zplayer_card_0r  Zplayer_card_2rE  rE  rF  r    s    


$

$
$

z!SBCSolver.get_bronze_club_playersc              	   C   s   g }| j jt d| jd d}t| j| j | jj| jjd| j| 	 d |
 }|d }|D ] }|rr||d krrq\|| q\|S )Nz/club/consumables/developmentre  r  z
Hub - Homer   r   r  r  r  r  r  r  rj  )r   r   ri   r   rZ   r   r  r  r  r\  r  r<  )r<  r  ro  rM  r  rc  r~  rE  rE  rF  get_club_consumables,  s     zSBCSolver.get_club_consumablesc                 C   s  t | jd tjj| jd\}}|jt tjdd krV|du rV|sVt | jd dS | j	dd	}| 
  }|d
 }t| j| j| j }|d }dd |D }	dd |dg D }
t| j| j| jd  }|d
pg }||	 | }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }dd |D }i }|D ].}t|d  }||d! ||  d"7  < qt||_t||_t||_t||_t||_t||_t||_t||_t||_t||_t||_t||_t||_ t||_!t||_"t||_#t||_$t|
|_%t |_|d#d!|_&|d$d!|_'|d%d!|_(|d&d!|_)|d'd!|_*|d(d!|_+|d)d!|_,|d*d!|_-|d+d!|_.|d,d!|_/|d-d!|_0|d.d!|_1|d/d!|_2|d0d!|_3|d1d!|_4|d2d!|_5|d3d!|_6|d4d!|_7|d5d!|_8|d6d!|_9|d7d!|_:|;  t | jd8|j< d S )9Nzsave account all itemsr  r   r  Fzitems already saved in 3 hourzalready savedr  rw  r  r  c                 S   s   g | ]}|d  qS )r  rE  )r  r  rE  rE  rF  r  K  r  z0SBCSolver.save_account_items.<locals>.<listcomp>c                 S   s   g | ]}|d  qS )itemIdrE  )r  ZtllrE  rE  rF  r  L  r  duplicateItemIdListre  c                 S   s   g | ]}| d dkr|qS )r&  r  r   r  rE  rE  rF  r  P  r  c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   r  @   rB  Fr  r  ZmmmtrE  rE  rF  r  Q  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   r   r  r  rB  Fr  r  rE  rE  rF  r  T  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   rM  r  r  rB  Fr  r  rE  rE  rF  r  W  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   rM  r  r  rB  Fr  r  rE  rE  rF  r  Z  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   rN  r  r  rB  Fr  r  rE  rE  rF  r  ]  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS r(  r   rN  r  r  rB  Fr  r  rE  rE  rF  r  `  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS r  r  r  rE  rE  rF  r  c  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   r  r  rB  Tr  r  rE  rE  rF  r  f  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   r   r  r  rB  Tr  r  rE  rE  rF  r  i  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   rM  r  r  rB  Tr  r  rE  rE  rF  r  l  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   rM  r  r  rB  Tr  r  rE  rE  rF  r  o  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS )r(  r   rN  r  r  rB  Tr  r  rE  rE  rF  r  r  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS r(  r   rN  r  r  rB  Tr  r  rE  rE  rF  r  u  s   0c                 S   sL   g | ]D}t |d  dkrdt |d   kr4dkrn q|d du r|qS r  r  r  rE  rE  rF  r  x  s   0r  r   r   8081828384858687888990919293949596979899100zsave account items data : )=rH   r   r%   r   r  r  r   r   r   r  r  r  rI   r   r   r   ra   r  
setdefaultr=  sbc_storage_countclub_bronze0_tradable_itemsclub_bronze1_tradable_itemsclub_silver0_tradable_itemsclub_silver1_tradable_itemsclub_gold0_tradable_itemsclub_gold1_tradable_items!club_gold1_special_tradable_itemsclub_bronze0_untradable_itemsclub_bronze1_untradable_itemsclub_silver0_untradable_itemsclub_silver1_untradable_itemsclub_gold0_untradable_itemsclub_gold1_untradable_items#club_gold1_special_untradable_itemsunassigned_item_counttransfer_list_items_count#transfer_list_duplicate_items_countrating_80_itemsrating_81_itemsrating_82_itemsrating_83_itemsrating_84_itemsrating_85_itemsrating_86_itemsrating_87_itemsrating_88_itemsrating_89_itemsrating_90_itemsrating_91_itemsrating_92_itemsrating_93_itemsrating_94_itemsrating_95_itemsrating_96_itemsrating_97_itemsrating_98_itemsrating_99_itemsrating_100_itemsr   __dict__)r<  force_updatecurrent_itemsr  r  Zunassigned_items_json_2Zunassigned_items_2Ztrade_pile_json_2Ztrade_pile_items_2Ztrade_pile_items_dataZduplicate_transfer_list_ids_2Zsbc_storage_dataZsbc_storage_itemsall_players_dataZ$bronze_common_tradeable_club_playersZ"bronze_rare_tradeable_club_playersZ$silver_common_tradeable_club_playersZ"silver_rare_tradeable_club_playersZ"gold_common_tradeable_club_playersZ gold_rare_tradeable_club_playersZ(gold_rare_special_tradeable_club_playersZ&bronze_common_untradeable_club_playersZ$bronze_rare_untradeable_club_playersZ&silver_common_untradeable_club_playersZ$silver_rare_untradeable_club_playersZ$gold_common_untradeable_club_playersZ"gold_rare_untradeable_club_playersZ*gold_rare_special_untradeable_club_playersZrating_itemsZnntritem_ratingrE  rE  rF  save_account_items>  s    
&


















zSBCSolver.save_account_itemsc           
      C   s|  t | jd| d}|D ] }||d | d d< |d7 }qt | jd| | jjt d|| jd	 d
}t | jd|j td | jj	t d| jd	 d}t
| jt dd t | jd|j | 	dst | jd | jtdd| j td z\| d }dd |d d D }tt|t| }	| j  |	| j_| jjdgd W n   t | jdt  Y n0 td d S )Nz
players = r   r  r  r   r   zsend main squad 2 = r  re  r  zsend main squad resp = r  r  rf  zsend main squad resp2 = validzsend squad not valid , check itr  z send squad not valid , check it r.  c                 S   s   g | ]}t |d  d qS )r  r  r  )r  player_itemrE  rE  rF  r    r  z-SBCSolver.send_main_squad.<locals>.<listcomp>ri  main_squad_rater   zerror on give rating : )rH   r   r   r  ri   r   rB  r  r  r   r_   r  r  r  r0   r  ri  r=  r$  r  r   r  r  )
r<  r  r  r  r  rM  r  Zvalid_squad_playersZplayers_rateZaverage_raterE  rE  rF  r    sD    


zSBCSolver.send_main_squadc                 C   s   t d | jjt d| jd d}t| jt dd t| jd|j	 |
 }|d }|| j_| jjdgd	 | j  d S )
Nr  z
/watchlistre  r  rf  zcheck account_healthy resp = r  r_  r   )r  r  r   r   ri   r   r_   r   rH   rB  r  r_  r   r$  )r<  rM  r  r_  rE  rE  rF  check_account_web_app  s    
zSBCSolver.check_account_web_appc                 C   s   |sf| j jt d| jd d}t| jt dd t| jd|jd d  t	d |
 }|d }|| j_| jjd	gd
 | j  d S )Nr  re  r  rf  zupdate credit resp = r  r  r  r_  r   )r   r   ri   r   r_   r   rH   rB  r  r  r  r_  r   r$  )r<  r_  rM  r  rE  rE  rF  r    s    
zSBCSolver.update_creditc                 C   s   t | j| j|  | jd }| }|d }|d }d}|D ]D}|d dv rX||d 7 }|dd d u r<||di d	d7 }q<||d
 d  }|| }|S )Nre  r  r  r   r  r  r  r  rX  r   r  )rV   r   r   r"  r   r  r   )r<  rM  r  r_  r  sum_buy_nowr  rE  rE  rF  get_plus_credit#  s    zSBCSolver.get_plus_creditc                 C   sZ   | j jt d| | jddd | j jt d| | jd d}t| jt dd |S )N/sbs/challenge/r  r  r  re  z/sbs/challenge/%srf  r   r  ri   r"  r  r   r_   r   )r<  r  rM  rE  rE  rF  open_sbc2  s    
zSBCSolver.open_sbcc                 C   sZ  t jj|d }t jj| jt tjdd |jdj	|j
d}| dkrdt| jd td |sp|jj}|stjj|d}g }|D ]}||j|jd qd	ddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddddd
ddd dd
ddd!dd
ddd"dd
ddgi}	|D ]"}|d# |	d	 |d$  d% d&< qt| jd'|	 | j|	||||jjd(}
t|
d)krt| jd) tjj|d  | j  | jjd*k rt| jd+ |   nHt| jd,| jjd- | jtd.d/| j d0| jj d1| td2 td3 dS t|
d4krt| jd4 tjj|d  t|
S |rVzJ|
d5 }t| jd6|
 |jj d7krd|j!"   d8|_#|j$d9gd: W n   td | j|	|||jjd;}
t|
d)krt| jd) tjj|d  |   Y dS t|
d4kr t| jd4 tjj|d  t|
 Y S Y n0 zB|
%d<}t| jd=| |rFd8|_#|j$d9gd: t| jd> W n   Y n0 d?S )@Nr   rG  r  )rC  r  r  r   zLthis sbc completed in last 30 minute so sleep 30 second before send it againrE  )r  rF  r  Fr  )r  r  r   r  r   rx  r   r  r   rP  r  r  ri  r   r-  r   r  r   r0  r  r  r  r  ru  rF  r  r  r   zsquad_example = )submitr  pass_on_errorneed_recheck_playersrV  zsbc not ok, and low creditz)sbc not ok, but not low credit, credit : z sleep 300 secr  z)sbc not ok, but not low credit, credit 
 z 
 console : z, sbc number : r.  r  need_check_sbc_solutionr:  zpacks = immediatelyTrD  r   )r  r  ZgrantedChallengeAwardsz
packs 2 = zsbc completed
successful)&r=   r   r  lastr   r   r   r   r  r  r   r  rH   r   r  r  r  r?   r<  r  rF  submit_squad_funccan_pass_on_errorr  rJ  r$  r_  r2  r  r  r   r3   
repeatablesbcprocesstarget_setallrD  r   r   )r<  r  r  r  r  rE  Zcompleted_in_30_minutery  r  r  r  packsrE  rE  rF  !send_squad_solution_and_open_packF  s    
 




"z+SBCSolver.send_squad_solution_and_open_packc              
   C   s(  | j dd}t d| d}| jj||d | jj||| jd d}	t| jd|d	|	d
|	j d|	jv sp|	j	dkr|dk rt| jd t
d |   t
d | | t
d | j|||||d |dS |	j	dkr0t
d t| jd | jj||d | jj||| jd d}	t| jd|d	|	d
|	j |	j	dkrTt| jd|	j	d| dS |	j	dkr| | t
d | jj||| jd d}	|	j	dkrd| j_d| j_| j  |   t
d d S t
d |r$d D ]}
t d| d!| j }| jj||d | jj|| jd d}t| jd"|d#|jd d d$| |jrL qn
t
d |j	dkrt| jd% t
d& |   t
d qz| }W n   d'}t| jd(| | jtd)d*| d+| j td, |rt
d Y d-S t
d. | j  d/| j_| j  td(Y d S 0 |S d S )0Nr  r  r  z/squadr  re  r  zlink = z    , resp = z  , resp_text = r  r  r   z:session expired , try again after new login, sleep 120 secr  r  r  r   )r  r  r  r  r  r  zea servers error , try againztry data : link = i  z'need_recheck_players res.status_code = z	 payload r  r  i  zneed login logoutr0  r$  z7?skipUserSquadValidation=true&chemistryProfilesVersion=zsubmit squad , url : zresp text : z status code : zCstatus 403 in submit sbc , 120 sec sleep before login and try againrG  r   need to check sbc solutionr  need to check sbc solution rQ  r.  r  r  T)r"  ri   r   r  r  r   rH   r   rB  r  r  r  r*  r  r  r   r   r  r   r	  r:  r  r  r  r3   r$  r  r  )r<  r  r  r  r  r  r  r   rg  resr  
submit_urlrM  r  
bad_playerrE  rE  rF  r    s    
















zSBCSolver.submit_squad_funcc                 C   s  t | jd| | jtdd| d| j td | jdv rDtd n
td | j	  d	| j_
| j  td| jd	d
}tjj| jdd }tjj|jd}tjj|d}d}|D ]}d}|D ]Z}	|	d |jkr|D ]6}
|	d |
jkrt|	d t|
jkrd}d} qq|r q"q|st | jd zRd|j }t | jd| t| j| jd || j t| jt dd td W n   Y n0 |  q|S )Nr  r  r  rQ  r.  r  r  rW  Tr@  FrB  r  r  r   r   r1  r'  r   z'no need this one item send to tradepiler  r:  re  r  rf  r  ) rH   r   r  r  r3   r   r  r  r   r$  r  r   r  rC  r=   r   r  r  r>   r  r?   rF  r  r  r  rR   r   r   r   r_   ri   rJ  )r<  r  r  rG  r!  Zsbc_club_playersr  Zsbc_club_playerZ	need_thisrb  
sbc_targetr  rE  rE  rF  fix_accounts_sbc_playersW  sX    





z"SBCSolver.fix_accounts_sbc_playersc                 C   sr   |dkr|dd}n
||d}| j jt d| jddd | j jt d|| jd	 d
}t| jt dd |S )Nr   T)r,  ZusePreOrder)r-  r,  r  r  r  r  re  r  z/purchased/items_open_packsrf  r  )r<  r1  r-  r  rM  rE  rE  rF  	open_pack  s     


zSBCSolver.open_packc                    s6  j jt djd d}tjt dd | }|d }d}jjdkrZdj }t	j
d	d
d tjdtfdd|D  |D ]}|d dks|d |krtjdg }tjd|d|d  |tkr|ddd
u rtjd q jt|d 7  _tjd|d d|d djd|d 	 dD ]`}|d dkr`|d }nj|d dd}|jdkrtj
jd
d
d n qq>g }	g }
z$| d  }	| d!pg }
W n2   tjd"|d d#|jd$|jd%t 	 Y n0 |d d
u r&|	rd}j|	d&}nd}tjjj|d d|d' td( jd)v r|d rd*d+d |	D i}tj jd t|d}tjd,|j tjt d-d td. z`d/d | d* D }|D ]@ t fd0d1|	D d   r܈ d2d3kr܈j  d4}qW n   tjd5t  Y n0 |
rd*d6d |
D i}tj jd t|d}tjd7|j tjt d8d td. zbd9d | d* D }|D ]Btfd:d1|	D d rd2d3krj d;d<}qW n   tjd5t  Y n0 d=d | d* D }|rj j!d>t" d?d@dAd |D d dB ijd dC}tjdD|j tjt dEd td. ntj
jd
dF_ntj
jd
dF_j
j#rtjdGj
dH z$  W  dIS    tjdJt  Y n0 tjdK  dLS qd S )MN)/store/purchaseGroup/cardpack?ppInfo=truere  r  rf  purchaser   r   r0  z
open packsFr  zpacks count : c                    s$   g | ]}| d pd jkr|qS )r2  r   )r   r9  )r  iieer[  rE  rF  r    r  z/SBCSolver.open_packs_method.<locals>.<listcomp>r2  trade_pile_auctionztrade pile : z pack id : r   rB  Tz(trade pile more than allowed 2. continuezpack idzwill open , coins need : z all pack coins : z untradable : )r   r  r+  )r-  i  )check_transfer_listr/  r%  r  z#open pack in sbc solver, pack id : z
 opened : z status coode : z error: )
pack_items)r   r1  
open_price
pack_valuer  r  r  c                 S   s(   g | ] }| d dvr|d ddqS )r&  )miscr   clubr   piler  r  ieerE  rE  rF  r    s   z move opened pack to club result z/item/multiple_pile_clubr   c                 S   s(   g | ] }| d dkr| dr|qS )r  r  rU  r  r  iiierE  rE  rF  r    s   c                 3   s&   | ]}| d   d kr|V  qdS r   Nr  r  Zitem_22)
moved_itemrE  rF  	<genexpr>  r  z.SBCSolver.open_packs_method.<locals>.<genexpr>r&  r  )r  z)error on add item to cached club items , c                 S   s   g | ]}|d  ddqS )r  storager  rE  r  rE  rE  rF  r    s   z#move opened pack to storage result z/item/multiple_pile_storagec                 S   s(   g | ] }| d dkr| dr|qS )r  r!  rU  r  r  rE  rE  rF  r    s   c                 3   s&   | ]}| d   d kr|V  qdS r  r  r  )moved_item_2rE  rF  r     s   r7  )r  r  c                 S   s"   g | ]}| d dkr|d qS )r  zDestination Fullr   r  )r  dd_itemrE  rE  rF  r    s   rv  z/ut/delete/game/fc25/itemr  c                 S   s   g | ]}|qS rE  rE  )r  ieeerE  rE  rF  r    r  rG  r  z"remove multiple duplicate items : z/item/multiple_quick_sellr.  sbc worker 
 must done	must doneerror 58 : 4bot is done and must return something in main branchits done)%r   r   ri   r   r_   r   r  r_  r9  rY   r   rH   r=  sell_items_resultrf   r  r  r  rL   rB  r  r  calculate_pack_pricer    r   r  r  r  r   rR   r  nextr  r  rh   r  r	  )r<  rM  r  r  Zpack_coins_can_openpacklen_trade_piler  open_pack_respr  Zduplicate_pack_itemsneed_sell_items
pack_priceZ
sales_dataZmove_to_club_resultZmoved_itemsZadd_item_statussales_data_2move_to_storage_resultZmoved_items_2Zneed_to_delete_itemsremove_multiple_itemsrE  )r  r"  r<  rF  open_packs_method  s8   













zSBCSolver.open_packs_methodc              
   C   s   t | jd tjj| jd  | jjt d| j	d d}zg }|
 d D ]B}t| j|d|d|d	|d
|dd}|| qNtj| dd |
 d D }t | jdt|dt| W n   t | jdt  Y n0 d S )Nzsave unopened packs datar  r  re  r  r  r   r  descriptionr2  rB  )r   r1  	pack_typer7  r2  rB  c                 S   s    g | ]}| d ddk r|qS )r2  r   r  r  r  r  rE  rE  rF  r  K  r  z6SBCSolver.save_unopened_packs_data.<locals>.<listcomp>z"saving packs data , packs count : z low credit coin : z"try to save packs but got error : )rH   r   r$   r   r  rJ  r   r   ri   r   r  r<  bulk_creater=  r  r  )r<  rM  Zpacks_data_listr.  Zpack_objectZlow_credit_listrE  rE  rF  save_unopened_packs_data8  s2    z"SBCSolver.save_unopened_packs_datac                 C   s  t | jd d}g }g }|d u r$|}|D ]\}|dddu r(|ddkrt|d}|d	}|d
}|d}	|d}
|d}|dd}|dd}|	dkrd}n|	dkrd}nd}|tt|dk  }t|d}t | jd|d|	d| zdt| }| j|}|rL|dt td  krLt | jdd| |}nH| j	|d |	|d |
||d |d |d }|d!r| jj
||td" |d#}td t|d$kr|t|7 }|| n|t|7 }|| W n   t | jd%t  zL| |}td | }t | jd&| |d d' }||7 }|| W n   t | jd(t  Y n0 Y n0 q(||d	d q(t | jd)|d*|d+| |S ),Nzstart calculate packr   rB  TFr&  r  r   rj  r1  r  r'  r(  discardValuerU  r  r&  r  rQ  rP  r   r  zcalculate pack  : asset id = rL  rM  r)  r  r   z8this item was selected from futbin less than 3 days ago r*  r  rN  r  r  r  r   zget price from futbin error :  rK  r  z$can not get player price , error :  z5calculate pack : item is not player , resource ids : z pack price : z players price list : )rH   r   r   r  rU   r  r;  r  r7   r  r0  r5   r  r<  r  r  r  r  )r<  r  r2  Znot_players_resource_listZplayers_price_listr  r  r  r  r  r   r4  discard_valuemarket_data_min_pricecard_type_first_namecard_type_namer  r5  r6  r  r  rM  r  r  rE  rE  rF  r,  Q  s    






"	



zSBCSolver.calculate_pack_pricec                 C   sT   z"| j dd | j j| d W n,   t| jdt  | j|d Y dS 0 d S )Nps4_maintransfer_listFzerror in transfer list)need_get_new_sidr  )	r-  go_to_statetransfer_list_utilssearch_transfer_list_itemrH   r   r  r  r  )r<  rC  rE  rE  rF   console_transfer_list_sell_items  s    z*SBCSolver.console_transfer_list_sell_items?B r  c              
   C   s  z^| j dd | |j}|dp*d}|d}|dkrF|j}nt|}| |||}|rd|}|rn|r|st| j	d d}d }	}
d}d}||krW d	S |d7 }| j j
|j|j|j||j|t|d
 ddsW dS | j  }|r| j j }| j j  nd}| j j  td | j tjtd| j	j dtjtd| j	j dtjtd| j	j dg d}t| j	d| |dk r|
rqt|}d}	qqq||_t  |_!|j"ddgd t| j	d| |dkr\t#j$j%|dj&|d t'j$j%| j(dd) }t#j$j%|j*dj+t,ddd}t| j	d| |j*-  ||j*_.|j*"  |W S    t| j	dt/0  | 1  Y dS 0 d S ) NrA  transfer_marketr  r   r  z!no price found , set default 1000r   r   ztoo many change gradeg?F)max_buy_nowr  
reset_datasearch_start_min_pricewait_for_fix_namezsearch not resultzutils/z_controls/transfer_market.pngz_controls/search_players.pngz._controls/transfer_market_no_search_result.pngzresult count =r   r   zplayer_price 3 = Zbuy_sbc_targetsrI  r  rB  r  )	sum_pricerO  zsum actual price =zerror 71 : r  )2r-  rD  r  futbin_resource_idr   r  rN   r  rH   r   r  r   r  r  special_namerS   has_search_resultrE  get_live_search_countps4_buttonscirclecrossr  r  wait_for_imagesr  r  r  r)   r  rO   r   r   r  r   r>   r   r  r!  r=   r   r  r  	aggregater   r$  sbc_actual_pricer  r  r  )r<  r  r	  r  Zchange_grader  r  r  Zlocal_pricer  r  
first_timeZchange_grade_counterZ
has_resultresult_countrE  Zsum_sbc_pricerE  rE  rF  console_search_price  s    









zSBCSolver.console_search_price	home_mainc                 C   sL   t | jd | jd| | j  d| j_| jjdgd |rH|   d S )Nzclosing ultimate in consoleultimate_teamFrn  r   )rH   r   r-  rD  r$  rn  r   r*  )r<  rC  staterE  rE  rF  r  -  s    
z SBCSolver.console_close_ultimatec                 C   s   | j j}| j j}|r,|jttddv r,d }|r`|j| jd< |j| jd< |j	| jd< |j
| jd< d| jd< d	d
dtddddttddd| jd< ddd
dtd| jd< |  | jd< d S )Nr   r  r   r   r  r  r   r  rq  rM  rN  rI  rJ  rK  rL  r  r  r  r  r  r  r  r  r   )r   rH  r   r   r*  r  rY  r   rL  r  r  rd   rh   rl   r"  )r<  rH  r   rE  rE  rF  r  6  s@    

z-SBCSolver.set_this_staff_to_pass_logout_loginc                    s\-  t | jd t| jd t| jd t| jd z>|   | jjdkrl|  | j_| jj	dgd | j
  W n   Y n0 | jdvrd}|d	7 }|d
krd| j }| td| d	| j_d| j_| jj	ddgd |   td dS | jdv rDt| j}|rDt|dkrDd| j_d	| j_| jj	ddgd |   dS z|   W qW q   td t| jdt  |   Y q0 qzD| jjt d| jd d}t| jt dd t| jd|j W n   Y n0 z| jdv rd}n4t j!"dj#| jt dt$% t$j&d d! d"' }|d	k rt(| j| j| jj)| jj*d#| j+| , d$ t-| j| j| jd | j. td t/| | j| j td | 0  nt| jd%|  W n$   t| jd&t  t1  Y n0 t$% }g }g }g | _2z\t3j!j#t$% t$j&d'd( | jd)d*d+d,4d-j5d-d*d.}	|t6|	7 }t| jd/t6|	d0 W n$   t| jd1t  t1  Y n0 | jdv st j!"dj#| jt d2t$% t$j&d d! d"' d	k r| 7  nt| jd3 | 8  d*}
d*}d*}i | _9t j!"dj#t$% t$j&d	d! d4' }|d5krZt| jd6d7| d*| j_d8| j_| jj	ddgd | jd	d9 d8S 'z2t1  g | _:g | _;| j
  |t$% t$j&d:d! k r| td;| j d< W -qXt| jd=| jj< | jj=r t| jd>| jd? z|   W W d@S    t| jdAt  Y n0 t| jdB W dCS d	}| j
  | jj>rTt| jdD tdE W qZ|r"t| jdF d+}t j!"dj#| jj<t$% t$j&d d! dG' }t j!"dj#| jj<t$% t$j&d:d! dG' }|dHks|dIkr"t| jdJdK|dL| d*| j_dM| j_| jj	ddgd | jd	d9 W dMS td |rXd+}d| jdN< t/| | j| jd*d+dO| _9|
rd+}
| ? }|rt| jdP| |W S | j@stA| j| j| jd }|BdQr|BdR| _@nt| jdS| d| _@d}t| jdT t3j!j#| jd+dUjC|dVD }|rt| jdW|dX|jE |jE
  |jEr|jEj=st| jdY|jEj=dX|jE d*|_dZ|_F|j	g d[d |G|jEj< tHj!j#|d\I  W qZ|jE}t| jd]tJ|j< d+d^ |jEjK}|jEjL}td | M|||}|d	kr4t| jd_||d`|jE td d*|_Nda|_F|j	dbgd tHj!j#|d\I  W qZn`|dcv rt| jdd||jL d*|_|j	dgd |G|j< | tdedf|jL dg| j  W qZn"tO }tPtQ|R D ]\}}|tO||dhO }qt3j!j#| jd)dij5d-d*d.}| jdv 	r.tSj!j#d	d*djCtOtT|dkjC|dkC|UdldmV }n8tSj!j#d	dnCtOtT|dkjC|dkC|UdldmV }| j
  | jjW}|rt| jdo|j<dp|jX t3j!jY| j||jLdq}| j
  t | jdo|j<  t| jdr t| jd]|j<  | M|jK|jL|j<}|d	k
rDt| jds|jL d*|_Nda|_F|j	dbgd |G|j< W qZnf|dcv 
rt| jdd||jL d*|_dt|_F|j	dgd |G|j< | tdedf|jL dg| j  W qZ|dk
r| Z|jL t| jdu t| jdu t[j!j#|dvUdm\dw}t]dxdy |D }t^j!j#|dvV r|j_}t`t||d  } || k r|jas| jdvrdz}!|jbdzkrxt`t|jb|jbd  }!| jdv rt| jd{d||  |G|j< W qZ| jdv rt| jd}|!d~|d| d| jjW	 W dS t| jd | jd  d	7  < t| jd| jd  | jd dkr"|   n| jd dkr<| c  nj| jd dkrd| j||jbf }| tde| d| j_d	| j_| jj	ddgd |   tdE W dS td W qZd	}|'r||j=}"t| jd t[j!j#|dvUdm}#d+}$|jdr|jdd }%nd}%d}&g }'g }(d})g }*g }+d+},d }-t^j!j#|dvV }.|.rd|jedv rdd}/|.jfrlt6|.jfg j5dd*d.}0ng }0| jhrti| jhdEkrt| jdti| jh | jj|.jkd| _htd
 ti| jhdEks| jjls|jard}1nd}1| jj|.jm|.jn|.jk|0|1d}2|2| _hnt| jdti| jh g }2|2D ],}3t| joBt|3d Bdd |3d< q tpdD 	]}4	zrg }+tqj!j#| j|d}5g }6g }7|5r&t| jd t|5D jr}/|/dkrt| jd W  q |6Gg d |5D ]T}8d+}9| joBt|8jsBd}:|2D ]
};t|;Bd|8jtkrt|;Bd|8jukrt|;Bd|8jvkrt|;Bd|8jwkrt|;Bd|8jxkrt|;Bd|:v r|6G|8jt|8jvtJ|8ju|8jytJ|8jwtJ|8jxtJ|8js|;Bdpddd+d+|;Bdmd+d+dz|;Bd|;Bdpdd	|8j{g d*}9 qq|9d+u rt| jdt||8d|: qt} }<|<~|. | j|<_ti|6d	 |.jkrt| jd t|6}=|=j|=jd d*d |=j|=jd d*d |<|=}=|= }>|>d}7|<jB|.j }?t|7dd d*d}7dddy |7D v }@t| jd|7 tHj!j#|d\I  |5I  n|4dks |.jrt| jd|4 |5I  tt|2}=|=j|=jd d*d |=j|=jd d*d |4dkr
| jdv rt| jdd|4 W  q t| ||.}Att|A}B|Bj|Bjd d*d |Bj|Bjd d*d tj|=|Bdd}C|Cjddgdd}C|C}Dd|<_n|=}D|<|D}Dt| jd|Dj tjXdkrpg }7tpdD ]p}Etj!j#td+d+t$% t$j&d'd dD }F|Fr|Ed' dkrt| jd td' q@nt| jd  qq@tj!jY| j|.d+d}Gz6|<|D}Ht1  |G
  d*|G_|Gj	dgd |<j}-W n> ty: }I z$d*|G_|Gj	dgd |IW Y d }I~In
d }I~I0 0 |HrT|Dj|H  }>|>dd|>d |>d}7nddlm}J g }7t|.}K|Kdg  |Kdd |Kddzt6ddń |.jEjj5dd*d.D i |Jjt|K|DjddǍ| jj<dȍ}Ltd	 t & |LB }Lt| jd|L W d    n1 s00    Y  |LBdʡ}H|HrT|LBdˡ}7|7r|<jB|.j }?ti|7dk rt6|#j5dd*d.}Mt|?D ]\}N}O|N|Mvrd|?|N< qt|7dd d*d}7dddy |7D v }@t| jd|7d|? tHj!j#|d\I  |7r|7D ]}Pt|PBdѡdkr<|PBdҡs<|)t|PBdѡ7 })|PBdӡrf|PBdӡ}Qt|PBd|?|Q< nj|PBdr|<js|<jr|?|PBdԡ}Qt|PBd|?|Q< n*|?ddy |?D d }Qt|PBd|?|Q< t|PBd֡dkrtj!j#t|PBdt|PBdt|PBdסd؍V }R|Rsvt|PBd}St|Sd  }Ttj!jY|Sd |Tt|PBdt|PBdt|PBdסdٍ}R|+G|Rt|PBdѡdڜ tqj!jY|| j|Qt|PBdt|PBdt|PBdסt|PBdۡt|PBdܡt|PBdݡ|/d	 dލ
 n|@r^tqj!jY|| j|Qt|PBdt|PBdt|PBdסt|PBdۡt|PBdܡt|PBdݡ|/d	 dލ
 n6|@stHj!jY||PBd֡|Q|PBd|PBd|PBdߡd qd*},t| jd|j<  W  q nt| jd|/d|.j W n*   t| jdtJt d d  Y n0 qV|jedkrd|,d+u rd| jtded| j d| d|/ d|- td t| jd|jed d*}$|G|j< |,d+u r|jedv r| j
  | jj=s| jjrt| jd W dS |#st| jd td d}qg }*d})|
  |#D ]n |jdrPti|(ti|#krP| |(}U|jdrP|U|jdkrP|&dkrPt| jd|U d|jd d|(   qT|jb|j_d krt| jd | tded|j<  d}td tdtHj!j#| jydV }Vt| jd|Vd|& ti|(dkrt| jd  qT|&dkrt| jd  qT|&dkr2|Vr2|VI  d }V|(d	d  }(|'d	d  }'|Vs"t| jd  jt j d*}W jr^d+}W|%}X ju}Yg }0 fddytpddD }0 jrT jjws jjss jjxrd}Xn jjrĈ jj}X jjfr jjfg j5dd*d.}0ng }0 jjr  jj}Y jjfddytpddD }0n4 jjr:d	}Ydg|0 }0nd }Yddy tpddD }0|jar jr jjws jjxs jjss jjsd}1nd}1 jr|  j}Zni }Z| jj js jtnd  jk|Z|0|X|W|1d}[i }\|[r|[D ]$}]t|]Bd|'vr|]}\ qqt|\Bdmpd}^t|\Bdp2d}_t|\BdpFd}`t|\BdpZd}a|'G|_ |(G|` |^rtHj!jY||^ jy|_|`|ad t| jdd|\dti| jBd q|^dkr|jEjart| jd	 d*}$|G|j<  qT|*G   jr|) jj7 })n
|) j7 })n.t| jd
|Vd  |'G|Vjt |(G|Vjv q| |(}U|jdr|U|jdk rt| jd|U d|jd d|( d|% d|$ 
 |$s|%d	7 }%|&d	7 }&qzt| jd|Ud|( td |sq|$rqqqz| jjW|)d k r|   | j
  | jjW|)k r| jdvr|*sH|+rd}!|)dkrd|)d }!| jdv rt| jdd|) |G|j< W qZn| jdv rt| jd|!d|)d| jjW W dS t| jd | jd  d	7  < t| jd| jd  | jd dkr|   n| jd dkr4| c  nn| jd dkrd| j| jjW|jbf }| tde| d| j_d	| j_| jj	ddgd |   tdE W dS td |$r|*s|+$rt| jdti|* dti|+  | jdv  r6t| jd|* d|+ ddt]ddy |+D  |G|j< W qZ|*D ]B | jdv  r  rn j rnt| jd  j nt| jd!  tj!jY| j d"  q:nt j r| j jtdd	dd jy|j< j j< js jd#  q:n6| j j jtd ju jv jy|j< jd  j jsd$
}bzt|b}cW n   t| jd%t d&|b |bd'k!r\t| jd( Y  q:nl|b!r| jd) dk!rd*| j }| td| td+ | jd)  d	7  < t| jd, d}Y  "qY n0 d| jd)< t| jd-|c |cd.k"r&d/| j }| td| td td0| jdv "rHtj!jY| j d" n4| j jt|cd	 jv judd jy|j< j j< jsd1  q:|+D ]}d| jdv "rt| jd2|d tj!jY| j|dBd3|dBd4d5 "qnF|dBd3}e| j|dBd4|ejtd|eju|ejv|dBd4d |ejy|ejsd6}bzt|b}cW n   t| jd%t d&|b |bd'k#rht| jd( Y "qnl|b#r| jd) dk#rd*| j }| td| td+ | jd)  d	7  < t| jd, d}Y  $qpY n0 d| jd)< t| jd7|c |cd.k$r0d8| j }| td| td td0|dBd3}f| j|fjt|dBd4d	|fjv|fju|fjy|fjsddd9	 "q| jdv $r|*$s|+$rW d:S |$$rW qZ|$sW qZt| jd;|jX d| jd< i | _d | _t| jd< t6tHj!j#|d\4d= }gd>dy |gD }h|gD ]}i| t|iBd=}j%qt| jd?|gd@| | j|j<|jdA}k|kdBk&r|jÐ&r|G|j< tSj!j#|jKdCjCddnCtO|jLdDtO|j<dE @ }l|l' dk&r|lD ]L}mt| jdF|mjL dG|mjX dH|mjK dI |mj<|v %r||mj< %q|kdBk&rt| jdJ|jL dK t | jdL t| jdM|h g }n|hD ]2}o|o&r^|nGt| jt|odNdO|jLdP &q^|n&rtj!j|ndQ t]|h|_|j	dRgd d*}|jd	k&rd*}
|kdSk'rd*|_Nd*|_|j	dbdgd d*}$|G|j< |j's2d*|_Nd*|_|j	dbdgd |kdTk'rNd*}$|G|j< |k+r| jdv+rt| jdU td' nt| jdV | j
  d+}p| jɐ'rt| jdW td | jdv 'rt/| | j| j t| jdX | jdv 'rt | jdY nt | jdZ d*| _| ˡ }q|qBd[}r|qBd\}s|qBd]}t|qBd^}u|udk(rf| jdv(rfW qZ| j jd	7  _| j	  | jj͐(r| jjΐ(r| j| jjΐd_ n| ϡ  | ? }|(rt| jd`| |W S | 8  | jdv (r| jd*da db| j dc tJ| jjj#t$% t$j&d d! dd'  }de|s df|t }vdg| jj }w| jjҐ)r||wdh|u di| jjjX 7 }w| jjӐ*rg }xg }y| jjBt dj| jd d}z|z dk D ]V}{|{dl }|||Bdmd+)r||d | jv )r|xG|| n||Bdmd+)r|yG|| )qti|x*rl|wdnti|x 7 }w| jjՠg ' }}|}dk *sV|}dok*rb|wdp7 }wn
|wdq7 }wti|y*r|wdrti|y 7 }wt| j||v |w  | jtde||v |w td | jdsv *r| j֐*rd+| _t| jdt td W qZW duS |td+k +s(|sd
k +r|tdvk +s(| jdv +rXd	| j_N| jj	dbgd | jdwk+rnW duS n| jdxk+rnW duS |   tdy W duS W qZ   zt| jdzt  t1  | j
  | jj=,r2z6t| jd>| jd{ | jdv +rW W Y d@S |   W n    t| jd|t  Y n0 t| jdB W Y dCS |  }~| jdv ,r|~d}k,rd*| j_tJ|~| j_| jj	d~dgd tJ|~W  Y S W n   t| jdt  zlzR| jd ء  tjXdk,rtِd d*| j_אd| j_| jj	d~dgd W n   Y n0 W Y Y dS    t| jdt  td' t1  Y n0 ,qY n0 Y n0 qZd S (  Nzpreparing sbc solver core ...z"updating credit and claim rewards zpreparing sbc solver ...zsbc solver core startedr   
start_coinr   r  r   r   zaccount have some issues %sr  zaccount problemr  r   r0  zaccount have some issues)r  r  ra  r   zerror 60 : z/sqbt/user/prizere  r  rf  zsqbt content = )r   r1  logs_pgbouncerz/scmp/campaign?type=activer  r  )r   rg  r  zObjectives - Season Progressr  zclimed in 24 hour zerror 132 : r  )daysr   TF)r  Zworker__fifa_accountsbc_type__repeatablerD  r  sbc_type__idr  z#this sbc type ids already solved , z so dont try againzcant get already solve sbcs , z/preview/pack/10301/itemsz@preview gold pack was checked in 24 hour , so dont try every run)r  i@B z!max request per one hour arrived z all one hours zmax request one hourr  r   L9z3 is more than 12 hour is in sbc solver loop. fix itz-sbc solver core loop start ... , worker id : r%  r&  r'  r(  r)  r*  z!wait for captcha solving . 30 secrG  zchecking max requests)r>  r  rJ  r  z max request per 24 hour arrived z
 24 hours z	12 hours zmax request 24 hourr   )update_trade_piler/  zopen packs result : , r  versionzcant get profile version : z,checking for existed sbc or select a new onerB  )Zsbc_type__id__inzprocess already exists : z sbc type : zsbc type must done is znot active anymore)rD  r  r  r  z	sbc id = r  z"this challenge already complete : z - zalready completerD  )r1  r8  zchallenge has error 1 , code : r  zchallenge has error : z account : )r   Zmax_try_repeats_per_worker__lte)rC  rc  )r  console_can_userv  priorityr   )r  zperforming sbc id = z , sbc name : )rC  r  r  zcheck if its solvedz%this challenge already completed 2 , zchallenge not existsz.check for credit and other required conditionsr  rG  c                 S   s    g | ]}|j r|j jn|jqS rE  )rG  r  r  r9  rE  rE  rF  r    r  z-SBCSolver.sbc_solver_core.<locals>.<listcomp>i.  zFneed more coin for solving sbc 1 but this type of worker dont use coinzneed coin : z#need more coin for solving sbc 1 : z sbc_targets_price : z sbc_estimate_price z
 credit : r/  r+  r   r,  r-  r   r.  zLnot enough credit for account %s . Before sbc. credit = %s , sbc_credit = %sr  z8getting all need to buy targets for solving sbc from webr   )r   r  r  z1len club players less than 30 or is not exists , )r\  )r[  r  r\  r_  r  z club low items , dont use items r'  r   )r   r  z5this challange already solved , but need some playersz$cant solve in two buy try , break it)NameRatingRarityPreferredPositionNationLeagueTeamLastSalePriceDiscardValueUntradeableLoansDefinitionIdIsDuplicateIsInActive11AlternatePositionsExternalPriceIsExistsIndexCompositionr1  r(  r  r  rL  rX  r  r}  zplayer not found in club , z similar clubs : z)already solved and bought players success)columnsinplace)r}  recordsc                 S   s   | d S )Nr{  rE  drE  rE  rF  r    r  z+SBCSolver.sbc_solver_core.<locals>.<lambda>r  c                 S   s   g | ]}|d  qS rz  rE  r  ierE  rE  rF  r    r  zplayers targets 2 : z:not solved before or some players not exists , loop num : r  zAneed to solve with futbin solvation? this worker cant buy item , zloop num : outer)howrj  rk  r  )subsetkeepcostz"solving started . players shape : rs   r!  r  )Zfifa_account__console__name__inis_completer  r{  z'already one not completed worker existsz(no other worker exists , solving started)r   solvation_modelr  r  Is_Pos)get_solvationexcluded_rarity_idsr  required_positionsc                 s   s   | ]}t |V  qd S )Nr  r  rE  rE  rF  r   C  r  z,SBCSolver.sbc_solver_core.<locals>.<genexpr>r  )orient)solvation_model_dictZjson_players_datar>  zsolvation result : final_playersplayers_targetsri  c                 S   s   | d S )Nr  rE  r  rE  rE  rF  r  i  r  c                 S   s   g | ]}|d  qS r  rE  r  rE  rE  rF  r  j  r  zplayers targets : z formation : ZCostrz  r{  Positionc                 S   s   g | ]}t |tr|qS rE  )r  r  r  rE  rE  rF  r  {  r  ru  rl  )r  r  r  )r   unicode_namer  r  r  )r  r  r  ZCountryro  )
r  r   index_compositionr  r  r  r  r  r  add_counterrq  )rE  rF  r  r  r  r  zsolved with solvation model z/cant solve with auto solvation , try counter : z buy players allowed : zcan not solve , error: r  z'cant solve sbc with auto sbc solvation
z
sbc : z
try counter : z
cant solve reason r.  z2can not solve with new model and solver type is : z pass this sbcr$  r"  zhas error or must donez'no target found for this sbc w8 20 secsr  zcurrent team rate is z  equal or greater than min team zteam rate : i  zmust recheck players pricez6must recheck sbc actual price and sbc prce : sbc id : r  zMust recheck players price)rE  r  zprocess target exits : z builder count : z6how process list can goes more than 11. its bug. breakr  z/how builder count more than 100? its bug. breakz'process target not exists , asset_id = c                    s"   g | ]}t | jkrt |qS rE  )r  r  r  )r"  rE  rF  r    r  c                    s    g | ]}t | krt |qS rE  r  r  )target_filter_rarity_idrE  rF  r    r  c                 S   s   g | ]}t |qS rE  r  r  rE  rE  rF  r    r  )r  r\  rv  r_  r  rA  r  zplayer exist in club , z search result : z len(club players) : r  z(need player that not exists but can passz-sbc process target already exists , process: z, target : zcurrent team rate z is lower than min team z , players_min_rate : z , need_pass_sbc_process : zplayers rate : r  i  zFneed more coin for solving sbc 2 but this type of worker dont use coinz need coin : z!need more coin for solving sbc : z needed credit : z current coin : z%not enough credit.w8 5 minutes. #### zbuy needed targets , len = z , len_2 = zsbc solution need some player r  z@but this type of worker cant buy player, so add it to cant solvez -- sum players 2 : c                 S   s   g | ]}| d qS r  r  r  rE  rE  rF  r    r  zneed this target filter : zneed this target : )r   r	  )r  r3  r  r  r  r4  r  r  )r  r  r  r  r  r
  r  r  zerror 57 : z	 error = r   z'player already bought look for next oner   zsearch loop for %srW  znew sid set.reloop.zplayer_price 4 = r  zDplayer price is more than 16000. will not buy this item . account = zplayer price is more than 16000)	r  r  r  r3  r  r  r  r4  r  zneed this target 2 : r  r  )r   r  r  )r  r  r  r
  r  r  zplayer_price = zFplayer price is more than 16000. will not buy this item . account = %s)r  r  r  r  r  r3  zneed to buy playerz(buy all players for sbc is done , sbc : zsend sbc solution and open packrF  c                 S   s   g | ]}| d qS )r  r  r  rE  rE  rF  r  G  r  z" remove me , solvation targets  : z sbc number : )r  r  )r<  )r  r   zsbc rV  z with father number z will resetzsubmit sbc z donezsbc done successfulz"process_targets_last_sale_price : r  rn  )r   	buy_price	item_typerequested_workerr  )objssum_bought_itemsr  zpass sbczsleep for 10 secondsz2no sbc left to done. going to all sbc done processzmanual loyal??zall sbc completed thingszsbc file completedzsbc core completedactive_tradesr  r  sum_unlisted_items)r  zopen packs result 2 : , )r  zall SBC is completed
z&
searchs for solving and sell items = r  z
number of active trades = z$ 
active trades starting bids sum = z
complete try number = %sz
unlisted items : z
console : rr  r  r  r  z
dream players : r   z
 can play : Truez
 can play : Falsez
dream not special players : )r   znow can set active squad againzall sbc completedip  r   r   r#  zerror 54 : z must done_2zerror 53 : r  ru  zerror 51 : r   r  zunknown errorzneed to rerunzerror 52 : )rK   r   rM   rY   rH   r   r  r`  r  r   r$  r   r  r  r  r  r   r	  r  r  rb   r   r  r  r  r  r*  r  ri   r   r_   rB  r!   r   usingr  r   r   r   r  rZ   r  r  r  r\  rX   r  rL   read_fut_web_live_msgr   r4  r=   distinctr  r*  r7  r;  r+  r5  r6  r   r  r  r6  r:  r[   r   r  r  r  r  r<  r?   rJ  r  r<  r  r?  rD  r   r  r   r3  r@   r   rX  r  r_  r   r  r  r>   select_relatedri  rD   	sbc_pricerS   can_passrY  r2  team_min_ratesolvation_typer  r  r2  r=  r  r\  run_squad_battlemax_rating_playersmin_rating_playersr)  r  rE   r  r  r  r  r  r  r  r  r  r  varsru   Zset_conditionsnum_playerspd	DataFramerenameilocdropr  Zpreprocess_data_3r  to_dictZformation_dict_2r  r+  
buy_playerr\   r^   r]   mergedrop_duplicatesZMINIMIZE_OBJECTIVEshaper  rF   r*   solverr  Zsolve_status_short_textr  insertrZ  Z	sbc.tasksr  r   r!  sbctarget_setdelayr  r  to_jsonr	   r  Z	CHEMISTRYZCHEM_PER_PLAYERr   rU   r  r  r/   rk  rG  use_squad_playersr  r  use_special_playersr  r3  r  r  rC   r8  r  r  r1  r7  rW  r  r  rl  r  remover'   r:  r  
open_packsr	  r  check_active_unlisted_itemsr\  order_active_squadorder_active_squad_formationr  r  r  r   r  r%  r  r  ru  r  r  )r<  Zproblem_counterrB  trade_access_1rM  clim_count_in_24_hourZstarting_loopZcant_solve_sbc_type_idZsolved_sbc_type_idZalready_solvedZneed_open_packsr1  Zneed_check_max_requestsZall_request_1_hoursZsid_controlZrequest_24_hoursZrequest_12_hoursZopen_packs_result
get_resultnewrE  rn  r<  r  r=  Zsbc_type_max_try_qZ	sbc_id_eeZcount_eeZalready_done_qsr_  Zsbc_targets_2Zsbc_targets_priceZsbc_estimate_priceZinject_coinr  r!  Zneed_pass_sbc_processZplayers_min_rateZbuilder_countZprocess_asset_id_listZprocess_players_rate_listZneeded_creditZneed_to_buy_playersZneed_to_buy_players_2Zsolved_in_model_twoZcant_solved_in_model_two_reasonr  r  r_  r`  Zaccount_club_itemsr  iiiZlast_solved_playersZsolved_listr  Zsolved_playerZplayer_found_1r  Z	club_itemZ	solvationZexists_itemsZdf_outr  Zneed_buy_playerZfutbin_players_datare  Zmerged_data
data_frameiiiiZexisted_model_workerZnew_model_workerr  Zsolver_exceptr  r  Zsolvation_resultZcorrect_positionsindeer|  Z
item_indexZneeded_player_cardZp_infoZu_nameZcurrent_team_rateZprocess_target_existZexclude_squad_playersZplayer_min_rater]  rv  r  Zsearch_in_club_resultZiteer  r  Zp_raterY  ru  r7  Ztarget_2Zplayer_card_obj	card_dataZprocess_targets_informationZprocess_targets_last_sale_pricer  Zremove_statusZsubmit_sbc_resultZsame_group_sbcsZ	group_sbcZbought_item_listZaaadZ&need_to_set_puzzle_master_and_first_xiZcheck_active_resultr  r  r  r  r  Z	add_part2Zdream_playersZdream_not_special_playersZactive_squadZactive_squad_playerr  Zsquad_played_countZget_sid_resultrE  )r"  r  rF  sbc_solver_coreb  s	   
































	
	














*










,





&

.



 


















	

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
























E9"





zSBCSolver.sbc_solver_corec                 C   s   t | j| j| j| j}| }|d }d}d}d}g }|D ]}|d dkr|d7 }||d 7 }|d d d	kr| jd
v r| |d d }| }	|	d d }
t|d |
kr|	| q:|d7 }q:||||dS )Nr  r   r  r  r   r  r  r&  r  r  r   r  r)  )r  r  r  r  )
rI   r   r   r   r   r  r   r  r  r<  )r<  rM  r  r  r  r  r  r  r  r  r  rE  rE  rF  r    s.    
z%SBCSolver.check_active_unlisted_itemsc           *       C   sf  t | jd |s<t d}t|i | j| j| jd }t | jd| t | j| jd  td t d}t|| j| j| jd }|	 }|
d}|
d}td t d	}	||d
d}
t|	t	|
| j| j| jd }|	 }t|d}t d| }t | jd|  t|| j| j| jd }|	 }|
d}n@tt d| j| j| jd 	 }|
d}|
d}td t d}t|| j| j| jd }td |	 }|
d}|d g}t d|d d d  }t | jd|  | j|	 }td |
d}t d}d|ddgi}t | jd|  | j||}td |
dd 
d}dd d!|d"d#gd$dddd"d#d%dddd"d#d%dd&dd"d#d%d&d'dd"d#d%d'd(dd"d#d%d(d)dd"d#d%d)d*dd"d#d%d*d+dd"d#d%d+d,dd"d#d%d-d-dd"d#d%d.d/dd"d#d%d,d0dd"d#d%d1d2dd"d#d%d0d3dd"d#d%d2d4dd"d#d%d3d5dd"d#d%d4d6dd"d#d%d5d7dd"d#d%d6d8dd"d#d%d7d9dd"d#d%d8d1dd"d#d%d9d.dd"d#d%d/ddd"d#d%gd:}| || td t d;} t| | j| j| jd 	 }!td t|!d< d=d> d?}"t|!d@ dAd> d?}#t | jdB|"  t | jdC|#  t d;}$|#dD |"dD dE}%t | jd|%  t|$t	|%| j| j| jd  td t dF}&t|&| j| j| jd 	 }'td t|'dG dHd> d?}(t | jdI|(  t dJ|(dD  })t|)i | j| j| jd  dKS )LNzstart create clubz*/user/action/ONBOARDING_COUNTRY_1_SELECTEDre  zselect country resp : r   z/user/historicalclubAbbrclubNamez/userT)r  r  Z	purchasedzlogin.personaIdz/squad/0/user/zsquad info link r  z/usermassinfosquadr  z/loan/playersrS  r   z/loan/player/r  r1  zloan put lin : r   z/itemr  r  z
swap data rk  r  c   Fr  Zf343r  r   rx  r   r  r   rP  ri  r  r  ru  r-  r   r   r  r   r0  r  r  r  r  )r   r  r  rk  r  r  z/onboarding/kitsZhomeItemDataListc                 S   s   | d S r{  rE  xrE  rE  rF  r    r  z/SBCSolver.create_club_web_app.<locals>.<lambda>r}  ZawayItemDataListc                 S   s   | d S r{  rE  r  rE  rE  rF  r    r  zmax home kit zmax away kit rj  )Z	awayKitIdZ	homeKitIdz/onboarding/badgesZbadgeItemDataListc                 S   s   | d S r{  rE  r  rE  rE  rF  r    r  z
max badge z/onboarding/badge/r   )rH   r   ri   rT   r   r   r  r  rJ   r  r   r  rg   r  r  max)*r<  start_part_2rg  r~  Zhistorical_info_linkZhistorical_infoZhistorical_info_jsonr  r  Zuser_info_linkZuser_info_dataZuser_info_resultZuser_info_jsonZ	person_idZsquad_info_linkZsquad_info_resultZsquad_info_jsonZsquad_players_infoZuser_mass_infoZloan_players_linkZloan_players_resultZloan_players_jsonZloan_players_listry  Zloan_put_linkZloan_put_jsonZswaped_player_idZ	swap_linkZ	swap_dataZswap_resultr  r  Z	kits_linkZ	kits_jsonZmax_home_kitZmax_away_kitZsend_kits_linkZsend_kits_dataZbadges_linkZbadges_jsonZ	max_badgeZsend_badge_linkrE  rE  rF  create_club_web_app  s    






















 


zSBCSolver.create_club_web_appc                 C   st   | j t d}g }| dD ]}||d q$|rpt| jd| | j jt dddd |D id	}d S )
Nz*/livemessage/template?screen=futweblivemsgZmessageListZ	messageIdzread message list : z!/livemessage?screen=futweblivemsgZidListc                 S   s   g | ]}|qS rE  rE  r9  rE  rE  rF  r  $  r  z3SBCSolver.read_fut_web_live_msg.<locals>.<listcomp>)r  )r   r   ri   r  r<  rH   r   r  )r<  r  id_listmessage_itemZread_resultrE  rE  rF  r    s    zSBCSolver.read_fut_web_live_msgc                 C   sr  |sd}| j d  }d}|D ] }t|d dkrt|d }q|svd| j }| td| t| j| t	d	 d
S ddt
dddd| jj|| j d d| j|| j d dddd}| j d r|t| j d | j d | j d | j d dd ddi}t| jd| tdD ]$}tjd||d}	z|	 }
|
d  d!kr|
d" d!krd#| j_| jjd$gd% | j  | td&d'| j  t	d( | j d t td)d*d+| j d d, d-}W  d.S t| jd/|
d0 t	d	 W nX   t| jd1t  d2| j }| td3| t| j| t	d	 |   Y  d4S 0 qd2| j }| td3| t| j| t	d	 d5S )6NZ ccbf62d7921a1c4b4f9cdc0fa18ece52r   r   r   Z	_nx_mpcidr=  z no nx_mpcid found for account %sr  r  zno nx_mpcidWEBZPSZXBOX)rc  rb  ra  r  r  Z
simonhainsZ
zmvLAS0193)fingerprintdeviceZ	userAgentr   nx_mpcid	sessionIdZfutEmailapi_keyZ	nucleusIduserpassr   r   r  r  HTTP)r   r   r  r  
proxy_typezcontent-typerq  zbefore request data = r   z$https://api.dmapi.co/fcapi/solve.phpr  ZEA_VALIDATEDr   Z	FC_SOLVEDr   r  r   re  zcaptcha solved for %sr   r  r  r  r  r  r  zcant solve captcha : ztry again after 300 minzerror 45 : zcant solve captcha for %sr  zsolving captcha exceptionr  )r   get_cookiesr  r  r  r  rH   r   r  r  rd   r   r  r  r!  r  r   r  r  r  r   r$  rj   r;   r  r  r	  )r<  r  r  r  cookierB  r  rs  nmrM  r  r  rE  rE  rF  r  &  s    










z"SBCSolver.solve_with_ramin_captchac                 C   s   dS )Nr  rE  r[  rE  rE  rF  solve_with_anticaptchaz  s    z SBCSolver.solve_with_anticaptcha)NTN)rH  )NN)N)r   r   )r   )NNN)	r  r`  r   r   r   r   TNN)T)r   r   )N)r   r   r   r   r   r   r   r   r  r   r   r   F)r   r   r   r   r   r   r   r   r   r   N)N)F)Fr   )r   TFr   )r   r   r   r   r   r   NT)r   r   NN)Tr   N)FN)N)
r   r   NNr   r   rE  TNr   )N)r   F)r   )Nr   r  FNNNNr  r   Tr   )r  )N)F)r   )r   Nr   )r   r   r   F)r   )N)T)r   r   rH  )Tr]  )F)N)Ur  
__module____qualname__rG  r"  r\  r  r*  rA  rN  r  ri  rj  r4  r	  r  rA   r  r  r  r  r  r  r  r  r  r  r8  r  r  rf  rn  ro  rp  r  r  r  r  r  r2  r7  r?  r   rD  rg  r*  rk  r  rm  rC  rq  rt  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r6  r;  r,  rG  r   r\  r  r  r  r  r  r  r  r  rE  rE  rE  rF  r   d   s0    
 n

 ]  n
`
?<
5
9   %"	

H*   
         
/
 
 
  a  
  ]  
 u
U  
" T
     aR i"
$
    o

 	

rR

 
}/
 !
l
`
	,            >
o

Tr   )r  r  r  r  ro  r  r  r  collectionsr   r   r   datetimer   randomr   urllib.parser   r  r6  r   telepotr  bs4r   celery.resultr	   django.contrib.auth.modelsr
   r|  django.core.cacher   	django.dbr   django.db.modelsr   r   r   r   r   r   r   django.db.models.functionsr   Zdjango.formsr   django.utilsr   Zdjango.utils.timezoner   Z'selenium.webdriver.common.action_chainsr   selenium.webdriver.common.byr   accounts.constsr   accounts.modelsr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   futplus.settingsr)   r*   r+   rn  r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   Zsbc.check_healthyr8   
sbc.constsr9   sbc.login_to_ea_with_seleniumr:   r;   
sbc.modelsr<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   sbc.public_methodsrH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   accounts.web_login_utilsre   squad_battlerf   utilsrg   utils.ea_settingsrh   ri   rj   rk   rl   rm   rn   utils.login_to_ea_with_requestsro   utils.public_movesrp   utils.realy_public_methodsrq   Zutils.toolsrr   r   Zfutplus.celery_confrt   pandasr  Zsbc.solvation_maker.optimizeru   r  dirnameabspath__file__r  Botr  Zsimilar_positionsZchange_pos_pricesr   rE  rE  rE  rF  <module>   s   $@88|	$
	