a
    ¹}ÂhÞŠ ã                   @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlZd dlZd dlmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZmZ d dlmZ d d	lm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d d
l(m)Z)m*Z* d dl+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZH d dlImJZJ d dlKmLZL d dlMZMd dlNmOZOmPZPmQZQmRZRmSZSmTZT d dlUmVZVmWZWmXZX d dlYmZZZm[Z[ G dd„ deLƒZ\ddd„Z]ddd„Z^dd„ Z_dS )é    N)Úmd5)Ú	urlencode)ÚBeautifulSoup)Úclose_old_connections)ÚSubqueryÚOuterRefÚCountÚIntegerFieldÚValueÚFÚQ)ÚCoalesceÚAbs)Útimezone)ÚFifaAccountRequestÚMuleAccountsÚCloseWebAppSnipesÚCloseWebAppTransfersÚ
PlayerCardÚFifaAccountSearchÚConsoleBotSettingÚSniperPlayerCard)ÚBASE_DIRÚ	TIME_ZONE)ÚFIFA_REPORT_TOKENÚARZBAZI_REPORT_GROUP_IDÚ8ARZBAZI_REPORT_TOPIC_PLAYERS_NOT_FOUND_THREAD_MESSAGE_IDÚONE_DAY_SECONDS)Ú	SBCWorkerÚSBCTargetFilter)Úget_next_price_gradeÚget_previous_price_gradeÚdelete_sold_itemsÚ
sell_itemsÚset_sub_logÚset_sbc_statusÚget_round_priceÚget_player_fifa_name_by_idÚ	new_printÚsave_account_requestÚget_player_data_by_asset_idÚcalculate_player_taxÚThreadWithReturnValueÚget_card_from_mydgnÚfocus_on_psÚget_card_from_game_currencyÚcancel_buy_cardÚu7buy_trade_apiÚget_card_from_buyutÚ
user_agentÚset_main_log)Úlogout_login)Ú	SBCSolver)ÚDischargeUsableCardÚSniperTradeItemLogÚDischargeMode3SpecialPlayersÚStartDischargeBotÚMuleDischargeMode2ÚDischargeMode2)Úfifa_23_addressÚfutbin_addressÚ	fifa_host)Úget_db_timeÚ"telegram_send_message_fifa_accountc                   @   s¢   e Zd Zedœdd„Zeedœdd„Zedœdd„Zd	d
„ Z	d%dd„Z
d&dd„Zedœdd„Zd'dd„Zd(dd„Zd)dd„Zdd„ Zdd„ Zd*d!d"„Zd#d$„ ZdS )+ÚDischargeRunner©Útransferc                 C   s   z~t | j| jd | jƒ t d¡ |  ¡  | j ¡  | jj	}t
t
t
t
t
|jƒƒƒƒƒ}||k r|tjj| jdjdd W dS W q    z@t| jdt ¡ ƒ |  ¡  tjj| jdj| j| j| jd W nL   t| | j| jƒ}| d¡du rtjj| jdjd	| d
¡d Y n0 Y q 0 q d S )NÚheaderç      à?©Úfifa_accountF©Úin_usezerror 68 : ©Úlast_sidÚlast_nucleusÚlast_personaÚstatus_boolTÚreason©ÚerrorÚerror_description)r"   ÚseÚmain_dicÚ
server_keyÚtimeÚsleepÚupdate_creditrH   Úrefresh_from_dbÚcreditr    Úplayer_min_price_from_futbinr   ÚobjectsÚfilterÚupdater(   Ú	tracebackÚ
format_excÚget_new_sidÚsidÚ
nucleus_idÚ
persona_idr5   Ú
sbc_workerÚget)ÚselfrD   r[   Úbuy_now_priceÚlogin_result© rk   úCC:\Users\Administrator\Downloads\futplus_django\sniper\discharge.pyÚ"web_app_discharge_with_snipe_first*   s4    

ÿ
þ

ÿz2DischargeRunner.web_app_discharge_with_snipe_first)rD   Úmicr_reduction_countc                 C   s˜  t  ¡ }|}d}|d7 }|dkr0t| jdƒ dS zžt  ¡ }	ttttt|jƒƒƒƒƒ}
t|
ƒ}t|ƒ}t|ƒD ]}t|ƒ}qn|dk rˆd}t|
ƒ}t|ƒD ]}t|ƒ}q˜t  ¡ }ddd|jd	|||
|d
œ	}|j	rô| 
d|j	i¡ |j	dkrô| dd ¡ t› dtt|ƒƒ }| jddd|dd}| ¡ }|d }t|ƒdkrlt| jdt|ƒdt  ¡ d|d|d|d|	ƒ W dS |D ]X}d|d   k r’dk rpn qpt d|d i¡}t  ¡ }| j|d |dd}t  ¡ }t| jd| jjjt  ¡ t jd d! d" ¡ d#|d|ƒ t| jd$|d d%|d&|ƒ t| jd'|d d(|d) d*|d d+|d ƒ	 t| jd,|jƒ t|d-| jj› d.|d d/|d d(|d) d0|d d1|jd2|ƒ d3|_d4|› d5|› |_|jd6d7gd8 |j d9¡d:kr~|jdkr~|jd;kr~t| jd<ƒ t|d-| jj› d=d2|ƒ d3|_| j|_|jd>d?gd8 t  !d@¡ | "¡  d3|_| j|_d|_#d|_$| ¡  t  !d¡ zà| j%|dA dB |d dtt|j&ƒƒt|j&ƒdC t| jdDƒ z€t'j( )dE¡j| jt› dFt  ¡ t jdd! dG}| ¡ dkröt| jdHƒ nt  !dI¡ t*| | j+| jƒ t,| j-| j.dJ | j/ƒ W n   t| jdKt0 1¡ ƒ Y n0 W n   t| jdLt0 1¡ ƒ Y n0 t| jdMƒ  W d S | "¡  |js¢d3|_#dN|_$| ¡  t| jdOd2|ƒ t|d-| jj› dPƒ qpW d S    | j+ "¡  | j+j2rþt| jdQƒ Y dS z@t| jdRt0 1¡ ƒ |  3¡  t4j(j| jdSj
| j5| j6| j7dT W nL   t8| | j+| jƒ}| 9dU¡du r†t4j(j| jdSj
d3| 9dV¡dW Y n0 Y q0 qd S )XNr   é   é   zchecked and must done bot 4Ú éú   é   ÚplayerÚgold)	ÚnumÚstartÚtypeZmaskedDefIdÚlevZmicrÚmacrZminbÚmaxbÚ	rarityIdsé   ry   z/transfermarket?F)ÚlinkÚsafeÚauctionInfoúlen auction info = z time z search time : z search link : z	 dis 3 , z dis 4 iÞ  Úexpiresi  ÚbidÚbuyNowPriceÚtradeId)r   zsearch_number count : é   ©Úhours)Úsearch_time__gtz search start time : ú'similar found  *** ,player['expires'] =z bid start time : z bid end time : útrade id = ústart price = ÚstartingBidúbuy now price = ú
expires = zdischarge bid resp : zreceiver_log z*: similar found  *** , player['expires'] =z trade id = z buy now price = z bid resp :   z	 count : Tzacc num:z count:Úsecond_side_found_targetÚwinner_account_data©Úupdate_fieldsúPermission Deniedéÿÿÿÿú(You are not allowed to bid on this tradeúitem boughtz: item boughtÚsecond_side_doneÚwinner_accounté
   ÚitemDataÚid©Ústart_priceri   úafter putting for saleÚlogs_pgbouncerz/trade/sold)rH   r~   Úcreate_time__gtz+sell items not work now , just every 3 hourrF   rE   zerror 67 : zerror 66 : újob is doneÚmissedzmissed itemz: missed itemúchecked and must done botzerror 65 : rG   rK   rO   rP   rQ   ):r   Ú	localtimer(   rH   r    r\   r!   ÚrangeÚplayer_asset_idÚplayer_rarity_idsr_   Úpopr=   Ústrr   Úsearch_playerÚjsonÚlenÚdumpsÚ	bid_tradeÚaccount_searchr^   Ú	timedeltaÚcountÚtextrœ   r   r‘   ÚsaveÚfindr˜   r™   rW   rX   rZ   rR   Ú
error_descÚitem_put_for_saleÚplayer_pricer   r]   Úusingr#   rf   r"   rT   rU   rV   r`   ra   Ú	must_donerb   r   rc   rd   re   r5   rg   )rh   rD   r²   Úaccount_numberrn   Úfirst_accountZdis_3Úsender_accountÚ
temp_countZdis_4ri   Zmain_start_priceZprevious_player_priceÚiZnext_buy_now_priceZsearch_start_timeÚpayloadÚsearch_linkÚrespÚ	json_respÚauction_infort   ÚdataZbid_start_timeÚbid_respZbid_end_timeZsell_items_last_3_hoursrj   rk   rk   rl   Úweb_app_discharge_with_snipeH   s(   ÿ


ý
þ
"ÿûýþú
ÿþÿ

ÿÿýý


þ

ÿz,DischargeRunner.web_app_discharge_with_snipec                 C   s  |j sNt| jd|jƒ d|_d|_| j|_| ¡  tj	j
| jdjdd dS d}|  ¡  d}|d7 }|d	kr¬t| jd
ƒ | ¡  d|_| ¡  tj	j
| jdjdd dS zpt| j| jd | jƒ t d¡ |  ¡  | j ¡  | jj}||jk r<d|_| ¡  t| jd|jd|jd|ƒ tj	j
| jdjdd W dS t› d||j |jt|jƒ|jt|jƒf }| jddd|d}z| ¡ }W nV   |dkrØd|_d|_| j|_| ¡  tj	j
| jdjdddd Y W dS Y n0 |d }t ¡ |j  ¡ }	d|	 }	t| jd|	ƒ |	dk rRd|_| j|_d|_| ¡  tj	j
| jdjdd W d S t |ƒdkr¬t| jdt |ƒƒ d|_d|_| j|_| ¡  tj	j
| jdjdd W d S |D ]V}
t| jd|
d d|
d d|
d d |
d! ƒ	 |
d! dkr<t| jd"|
d! ƒ d|_d|_| j|_| ¡  tj	j
| jdjdd  W d S |
d |jkr°|
d |jkr°t| jd#|
d! ƒ d$}|j!r~d%}|	| |
d!   k r¢|	| k r°n q°d&|
d  }|  "|
d |¡}t| j|j#ƒ |j# $d'¡d(kr°|j#dkr°|j#d)kr°t| jd*ƒ d|_%d|_| j|_| ¡  t d	¡ zn| j&|
d+ d, |
d dt't'|jƒƒt'|jƒd- zt| j| jd | jƒ W n   t| jd.t( )¡ ƒ Y n0 W n   t| jd/t( )¡ ƒ Y n0 t| jd0ƒ tj	j
| jdjdd t ¡ |_| ¡  t| jd1ƒ  W d S q°|d27 }t d	¡ W q^   | j* ¡  | j*j+rz| ¡  d|_| ¡  tj	j
| jdjdd t| jd3ƒ Y dS z@t| jd4t( )¡ ƒ |  ,¡  tj	j
| jdj| j-| j.| j/d5 W nL   t0| | j*| jƒ}| 1d6¡du rtj	j
| jdjd| 1d7¡d8 Y n0 Y q^0 q^d S )9Nz$not have any asset id transfer id = TFrG   rI   rq   r   ro   rp   úchecked and must done bot 3rE   rF   ztransfer id = zneed credit = zmy credit = zc/transfermarket?num=21&start=%s&type=player&maskedDefId=%s&lev=gold&micr=%s&macr=%s&minb=%s&maxb=%s©r~   rc   zhigh search)rJ   rR   rS   r€   é  zdifferent_by_seconds 2 = é   r   r‹   r…   rŒ   r   rŽ   r„   r   r‚   zplayer['expires'] = rŠ   é<   é   z
{"bid":%d}r”   r•   r–   r—   r›   rœ   r   zerror 64 : zerror 63 : rŸ   r¢   é   r¤   zerror 62 : rK   rO   rP   rQ   )2r§   r(   rH   rœ   rR   Úweb_app_is_on_itÚsecond_accountr´   r   r]   r^   r_   Ú(inject_or_discharge_web_app_start_thingsrZ   r"   rT   rU   rV   rW   rX   rY   r[   ri   r=   rž   r    r«   r¬   r   r¥   Úput_for_sale_timeÚtotal_secondsr­   Úneed_to_carer¯   r³   rµ   r˜   r·   r!   r`   ra   rf   rº   rb   rc   rd   re   r5   rg   )rh   rD   rw   r¾   r[   r~   rÂ   rÃ   rÄ   Údifferent_by_secondsrt   Zdiff_secrÅ   rÆ   rj   rk   rk   rl   Úweb_app_inject_staff  s4   

þ
þÿ
ÿþ

þÿ*ÿþ
ÿÿý


þ

ÿz$DischargeRunner.web_app_inject_staffc                 C   st   | j  d¡sp|  ¡  t| jd| jjƒ tjj| jd}|j| _	|j
| _|j| _dddt| j	ddd	d
tdœ
| j d< d S )NrE   zself.fifa_account.id = rG   zapplication/jsonzhttps://www.ea.comzhttps://www.ea.com/z*/*zgzip, deflate, brzen-US,en;q=0.5z
keep-alive)
zContent-TypeÚOriginÚRefererz
User-AgentzX-UT-SIDÚAcceptzAccept-EncodingzAccept-LanguageÚ
ConnectionÚHost)rU   rg   Ú#set_this_staff_to_pass_logout_loginr(   rH   rœ   r   r]   rL   rc   rM   rd   rN   re   r3   r?   )rh   Úmule_accountrk   rk   rl   rÑ   —  s$    öz8DischargeRunner.inject_or_discharge_web_app_start_thingsFé N  c           ,      C   sŽ  t | jdƒ t| jdƒ t| jdƒ t| jdƒ | j ¡  g }||krŠ| jjrŠ| j 	dd¡ || dk r‚t | jd|| ƒ d S t
jj| jd	d
 tƒ  dD ]˜}t | jd|ƒ d }|dkrútjjtddttddtdd@ ƒB dd dd¡ ¡ }n˜|dkr8tj tdddtddB ¡jddd d¡ ¡ }nZ|d	krbtjjdddd dd¡ ¡ }n0tj tddtddB ¡jddd d¡ ¡ }|s¨t | jdƒ qžqžd|_t ¡ |_| j|_|jg d¢d z.t | jdƒ |jd kr‚tt| | j|||d!  |d"œdd#}t| jd$ | ¡  t  d%¡ | !¡ rR| jj" #¡  t  d%¡ q.z| $¡ }W n   t | jd&t% &¡ ƒ Y n0 nH|jdkr"tt'| | j|||d!  |d"œdd#}t| jd$ | ¡  t  d%¡ | !¡ rô| jj" #¡  t  d%¡ qÐz| $¡ }W n   t | jd't% &¡ ƒ Y n0 n¨|jdkrÂtt(| | j|||d!  |d"œdd#}t| jd$ | ¡  t  d%¡ | !¡ r”| jj" #¡  t  d%¡ qpz| $¡ }W n   t | jd(t% &¡ ƒ Y n0 nt)d)ƒ‚|sÖd|_t ¡ |_|jd*dgd |rþW  q:W qž   t | jd+t% &¡ ƒ d|_|jd*gd Y  d S 0 qž|sPt | jdƒ dS t | jd,|d-|d.|jƒ |rZ| *d/¡s¬| *d0¡r¬|  +| *d0¡¡}	t, -d1|	j.¡ /d¡}
næ| *d/¡rd| *d/¡}
t0|
ƒ}|d s’| j1| *d2¡| *d3¡| *d4¡| *d2¡d5}| *d/¡}
t0|
ƒ}|d s’t | jd6|
d7|ƒ | 2| *d/¡¡ d|_|jd*gd t3| j||d8 q>n.t3| j||d8 | 4¡  d|_| ¡  t)d9ƒ‚t  d	¡ t0|
ƒ}zt5jj6|
|d: d;\}}W n$   t5jj|
|d: d; ¡ }Y n0 z d<t7| *d4¡ƒ› }| j8 *|¡}|r<| *d=¡t ¡ d> kr<t | jd?d@|ƒ |}nH| j1| *d2¡| *d3¡| *d4¡| *dA¡dB}| *dC¡r„| j8j9||t:dD W nH   t | jdEt% &¡ ƒ | j1| *d2¡| *d3¡| *d4¡| *dA¡dB}Y n0 | *dF¡rè| *dF¡}nt;| *dG¡ƒ}t;| *dG¡ƒ}|d }|d r|d }||_<t= =| >¡ ¡|_?|j@sL||_@t ¡ |_A| ¡  t | jdH| *dI¡ƒ | jjs¦t | jdJƒ t3| j||d8 d|_|jd*gd d S tBjj| j||| *d3¡|
| *dK¡| *dL¡tC|ƒ|| *dM¡dN
}tDtEdO}t F| GtH| *dP¡ƒ¡¡}t ¡ tjId:dQdR }| *dS¡}| *dT¡}tJdUƒD ]X}| jjK|| *dK¡| *dL¡dd|d|||dV
}| *dW¡du sŠ| *dW¡dXv r: q”q:tƒ  t7| *dW¡ƒdYv 	rt | jdZ|ƒ d[|_Lt7| *dW¡ƒ|_M|jd\d]gd d|_|jd*gd t3| j||d8 qŠqˆ| *dW¡du rè|jd k	rú|jN	rœt ¡ }tOd^t7|jPƒ t7|ƒ t7|jQƒ  R¡ ƒ S¡ }tTjUd_|jPd^||| *d`¡datO|jV R¡ ƒ S¡ dbœdc} nJ| *dd¡}!| *d`¡}"|!jWjX}#|# Yde| *df¡i¡ |!jUdg|"› dhdii|#dj} t | jdk| j.ƒ n:|jdk
rÖ|jN
r¨t ¡ }da}$| *dl¡}%tOt7|jPƒt7|%ƒ |$ tO| jjV R¡ ƒ S¡  t7|ƒ t7|jQƒ  R¡ ƒ S¡ }&tTjUtZ|jP|%|$||&tO| jjV R¡ ƒ S¡ d\dmœdn} t  do¡ n| *dd¡}!|! Udp¡} t | jdk| j.d dq… ƒ n^|jdkr4| *dr¡
pðds}'tTj[|'› dt| *d`¡› dud\dvidwdx|jQ› idy} t | jdk| j.ƒ z`|  \¡ }(|( *d\¡dzksv|( *d{¡d|ksv|jdkr~| j]d|kr~dz|_Lnd}|_L|jd\gd W n2   t | jd~t% &¡ ƒ d}|_L|jd\gd Y n0 tJdUƒD ]v})t | jdƒ | jj" #¡  t  d	¡ | j ^¡  | j _t`ja $tbd€| jjc› d¡d‚¡s>| jj" d¡  t  d	¡ n qHqÐt | jdƒƒ t| jd„ƒ tC}*|*|*|*|ƒƒƒ}+| jje|+tC|ƒdd…s˜t | jd†ƒ t | jd‡ƒ || *dL¡| 8 }t| jdˆƒ d|_|jd*gd t | jd‰ƒ qŠnpt | jdŠ|ƒ d[|_L|jd\gd d|_|jd*gd t  do¡ |  f¡  |  g¡  | j 4¡  | jjh}| j ¡  qŠq>t | jd‹||d!  ƒ d|_|jd*gd dŒS q>d S )Nzdischarge with mode 2zdischarge 2 startedúdischarge startedzdischarging 2 ...Úps4_mainÚtransfer_marketrÞ   zcan not find low item price , rp   ©rH   Údischarge_mode)r   ro   rp   r}   z(selecting mule for discharge. counter : r   FrI   T)Úis_apiÚbuyut)Ú	site_name)Ú	is_activeÚpriorityÚlast_run_timero   )rä   ræ   Úgame_currency)rJ   rç   )rä   ræ   rç   zno deactive mule found)rJ   ré   Úlast_fifa_account_usedr’   z'selecting discharge mode for discharge.Úmydgnéè  )Úparent_instancerH   Údeactive_muler[   Úbad_asset_ids©ÚtargetÚkwargsÚraise_on_exceptionrG   rš   ztraceback error 116 ztraceback error 117 ztraceback error 118 zunknown mule site namerJ   zexcption in get card : zcard data : z mule : z site : Úasset_idÚfutbin_linkzdata-baseid="(\d+)"ÚnameÚlevelÚresource_id)Úplayer_nameÚplayer_raterù   Úplayer_known_aszunknown asset id 2 : zbad asset ids : )rï   Ú	card_datazunknown asset idé   )rõ   ÚratingÚfutbin_player_with_name_Úlocal_time_stampi¼  zGdischarge2 , this item was selected from futbin less than 10 minute agoz , so use old data again : Úrare)rú   rû   rù   r  Úupdate_time_stamp)Útimeoutz!error on get data from redis , : Úfirst_priceÚ	avg_pricezdifferent_by_seconds = Úleft_time_ea_in_seczdischarge deactive . stop work.rž   Ú	end_priceÚincome_credit)
rH   Úmulerú   Úplayer_ratingr§   rž   r  r  Ú
site_pricer	  ©Ú	timezone_Úexpire_time_stamprÍ   )ÚminutesÚsecondsÚ	contractsÚownersr}   )
rt   Úsearch_start_priceÚsearch_buy_now_priceÚmax_change_gradeÚwait_for_listÚexpire_timeÚwait_for_fix_nameÚbuy_timeout_timeÚcontract_countÚowner_countÚresult)úplayer name not foundÚneed_check_credit©rc   Ú
not_boughtr  r  z)error in second side 2 , search result = r!  ÚstatusrS   Úconszhttps://api.mydgn.com/statusÚmydgn_idÚbought)ÚuserÚplatformÚ	timestampÚhashÚtransactionIDr"  Ú	emailHash)r¬   Úmydgn_sessionzX-Csrf-TokenÚ
csrf_tokenz&https://www.mydgn.com/auctions/bought/Úplatform_nameÚconsole)r¬   Úheadersz/after buy item. has start price 3. post resp : Útransaction_id)r&  ÚtransactionIdr"  r(  r)  r+  Úrequest)rÅ   rË   z/https://www.u7buyut.com/buy-players-bought.htmlé'  Úorigin_hostzhttps://fifa.gamecurrency.coz/v1/fifa/trades/ú/ZcheckingÚAuthorizationzBearer )Úparamsr0  ÚsuccessÚcodeéÈ   Úfailedzerror 111 : zsell item press square 3úutils/ú*_controls/list_on_transfer_market_sign.pngúscreen_shot_tmp.jpgz,discharge successful , list transferred itemzdischarge 2 successful)rž   ri   Úsecondúcould not list itemútransfer completed successfulrq   zdont buy multiple card for nowú!somthing wrong , search result : zcan not find any card with zno card found)ir(   rH   r4   rf   r$   r%   Úpublic_movesÚconsole_open_ultimateÚrun_dischargeÚgo_to_stater:   r]   Úcreater   r;   r^   r   Úorder_byÚfirstÚexcluderJ   r   r¥   ré   rë   r´   ræ   r,   r-   r.   rw   rW   rX   Úis_aliveÚps4_buttonsÚsquareÚjoinr`   ra   r2   r/   Ú	Exceptionrg   Úuse_cloud_scraperÚreÚsearchr³   Úgroupr*   Ú%get_player_data_from_futbin_with_nameÚappendr0   rZ   r   Úget_or_createrª   Úplayers_log_cacheÚsetr   r&   r÷   Ú	unidecodeÚlowerÚunicode_nameÚpriceÚupdate_timer<   r!   r@   r   Ú
make_awareÚfromtimestampÚintr±   r¦   Úconsole_search_player_and_bidr"  rS   rä   r   Úapi_user_nameÚapi_secret_keyÚencodeÚ	hexdigestÚrequestsÚpostÚ	user_namer0  Ú__dict__r_   r1   Úpatchr¬   Ústatus_codeÚget_screen_shotÚ	has_imageÚosÚpathr   r'  ÚcrossÚlist_on_transfer_marketÚconsole_close_ultimaterY   r[   ),rh   Úcurrent_coinsÚsell_allÚcoins_torð   Úiierý   rï   Úthread_1Úresp2rõ   Ztest_asset_idZplayer_data_resultZplayer_infoÚplayer_cardÚcreatedÚplayer_cache_nameÚfutbin_dataZfutbin_price_resultZcard_data_avg_priceZsite_card_avg_priceZplayer_final_nameÚopen_transferÚsystem_timeZcard_expire_timer  Zcontracts_countZowners_countÚnntÚsearch_and_bid_resultr(  Úapi_hashZboutght_respr,  r$  Úcustom_headerÚ
buy_statusr1  Ú
api_hash_2Úhost_addressZbought_jsonr¿   ÚgppgÚnew_start_pricerk   rk   rl   Údischarge_with_mode2¬  s   

"ÿþ


ÿÿüû

ÿþ
ÿÿüû

üù	


üù	


üù	



þ

ü


ÿ
þþýüü


ö




ó 
ÿÿù



ÿý
ÿþþÿù
	
ÿÿýÿ ÿÿ

þý
ý


z$DischargeRunner.discharge_with_mode2c           7      C   sü  t | jd|d|ƒ t| jdƒ t| jdƒ t| jdƒ tjjddj	}tjjddj	}tjjddj	}|}d	}||kr„d
}| j
 ¡  tjjddj	}	tjjddj	}
||krÊtƒ  tjj| jdd tjj| jd	d
t ¡ tj|	d d ¡ }|rt | jdƒ d
dddœS tjj| jd	d	d ¡ }|st | jdƒ tjjt ¡ tjdd t ¡ tjdd d	d
d	| jjd ¡ }|rt | jd|ƒ d
|_d|_|jddgd tjj|j|j|j|j|j|j|j|j |j!|j"|j#|j$| j|j%|j&|j'|j(|j)d }t | jd!|d"|ƒ |rFt*jj|j$d# +¡ }d$}|d%krxt | jd&ƒ d
|_|jdgd d	|_,t ¡ |_-|jd'd(gd q¤|d)7 }t. /d*¡ | 0¡  |j"rþt | jd+ƒ z t1jj2|j|j|jd,\}}W n(   t1jj|j|j|jd, ¡ }Y n0 |j|_3t4 4|j 5¡ ¡|_6| ¡  t7t8d-}t 9|¡|j'  :¡ }d.| }t | jd/|ƒ t;}d0D ]t}| j
j<||j|jd)d
||||jƒƒƒ|||jƒƒ|j'tjd.d1 d2}| d3¡d
u r° qÄnt | jd4d5|ƒ qNt=| d3¡ƒd6v r.t | jd7ƒ d
|_|jdgd d	|_,t ¡ |_-|jd'd(gd d	d8t=| d3¡ƒdœS | d3¡d
u ržt | jd9ƒ d
|_#|jd:gd ||j8 }t| jd d
d; |jj|j|jd<   |j_|jjd=gd d	|_,t ¡ |_-|jd'd(gd t| jd>ƒ t>dƒD ]v}t | jd?ƒ | j
j? @¡  t. /d@¡ | j
 A¡  | j
 BtCjD EtFdA| jjG› dB¡dC¡sF| j
j? H¡  t. /d@¡ n qPqØtI|jdD ƒ}| j
jJ||||jƒƒd
dEsˆt | jdFƒ t | jdGƒ d
ddHœS t | jdI|ƒ d
|_|jdgd d	|_,t ¡ |_-|jd'd(gd t. /d*¡ |  K¡  d	d8dJdœS |jr,t | jdKƒ d	|_,t ¡ |_-|jd'd(gd d	d8dJdœS q,q¤nt | jdLƒ ||k rvt | jdM|ƒ d	d8dNdœS |}tI|dO ƒ}|dPk r”dP}tjjt ¡ tjdQd d
dR}t*jjL| MdS¡dTjLt ¡ tjdUd dVjtNd dWtNdXdWB d	d	d	| jjOjPgd	tQ|dY ƒdZjRtStTtUjjtVd[ƒt ¡ tj|
d d\ Md]¡jRtWd^tXƒ d_d` Mda¡tXƒ d_tYd$ƒƒtZt[dbƒtQ|dc ƒ ƒddjtjjdedj	df dg \dh¡ ¡ }|r¦t | jdi|ƒ d
|_,t ¡ |_-|jd(d'gd ||jjkr
t | jdj|jjdk|jj]ƒ |jj}t^|| || t_||jjdP ƒdl}t | jdm|dn|do|ƒ t`jjtQ|dp ƒdq \dr¡}g }|	rpg }ta|ƒd dU… D ]ð} | jb| jc|dp ds}!|!r¾|! d¡s¾| j]|!dt< | d|!¡ nX|! d¡}"|"rê| j| _e|"| _f| jdugd t | jdvdw| jcƒ | jg| jcdUdx}!t. /d@¡ |!r~t=|! dy¡ƒ| _t=|! dz¡ƒ| _htQ|! d{¡	pLd$ƒ| _it ¡ | _j| jg d|¢d q~||  k|dp ¡ }t | jd}|ƒ d	}#|D ]¼}$d	}%|$d~ }&tjj|&d
t ¡ tjdd d€jLd$d ¡ }'|'	röt | jd‚|'dƒ|$d„ƒ 	q˜|  l|$ d…¡¡}(t. /d@¡ |( d†¡})|( d‡¡}*|( d~¡}&|( dˆ¡}+|( d{¡},|( d‰¡}-|)
rdt | jdŠ|$ƒ d
}%|  g|$ d…¡¡}.t. /d@¡ |. d‹d$¡
p–|. d{d$¡}/|. dŒ¡}0|/},|%
sÖ|,|dp k
rÖt | jd|,dm|dŽ|dƒ 	q˜d }1| jm|,|*|&|+|$ d…¡d\}}}2|2s.t | jd‘ƒ tn| jtod’| j› d“tptqd” 	q˜||kr@tI|ƒ}|%sd@}3| jr|d)|3d•}4t | jd–|1d—|4ƒ t=|4ƒd˜v r€d
}%nts|4tQƒr|4}1|%rÎt | jd™|$ƒ |,dšk 	r˜tjj|2|*|+|&d
| j|,d› 	q˜tt|1pØ|/ƒ}5|5 dœ¡tQ|0pîd$ƒkrt | jddž|5dŸtQ|0pd$ƒƒ 	q˜t | jd |5ƒ d
}#tjj|jd¡}6|2|6_|*|6_|+|6_|&|6_|1pZ|/|6_|5 dœ¡|6_|5 dœ¡| jj| kr°t | jd¢| jjd£|5 dœ¡ƒ tI| jj| ƒ|6_|5 dœ¡tQ|0pÂd$ƒkròt | jd¤|5 dœ¡dŸ|0ƒ tQ|0pìd$ƒ|6_|5 d¥¡|6_d
|6_!| j|6_u|6 ¡  d
|_,t ¡ |_-|jd(d'gd t | jd¦|$d§|6d¨|5d©|ƒ	  qX	q˜|#sÈd	|_,t ¡ |_-|jd(d'gd t |jdª| jƒ t | jd«ƒ t. /d%¡ q¤t | jd¬ƒ t. /d%¡ d	d8d­dœS q¤|rÚ|  K¡  nt | jd®ƒ t. /d%¡ d	d8d¯dœS )°Nzdischarging mode 3 ... coins = z coins to : zdischarge 3 startedzdischarging 3 ...Ú(discharge_with_mode3_lowest_target_price©r÷   Ú)discharge_with_mode3_highest_target_priceÚ)discharge_with_mode3_card_max_allowed_taxFTÚdischarge_mode3_interval_hoursÚ$mules_discharge_mode3_interval_hoursr}   râ   r‡   )rÐ   rR   r˜   Úweb_app_start_time__gtz)this account already has success transferr9  zalready has success transfer)rO   r"  rR   )rÐ   rR   r˜   zOno open transfer related to this account found, try to search in canceled cardsé2   ©r  rÎ   )r¡   Zcreate_time__ltr˜   Úfirst_side_donerR   Zbuy_now_price__ltz&found canceled transfer, try to done, zmoved new accountrR   rS   r’   )rú   r  r§   Úplayer_rarerž   ri   Úweb_list_start_priceÚweb_list_buy_now_priceÚfor_discharger“  r˜   r¼   rÐ   Úplayer_min_priceÚplayer_max_pricerÒ   Úweb_app_start_timerÏ   z.failed transfer move to new account, failed : z new : rG   r   éx   z%first side too long ... will break itrJ   Ú	last_usedro   rË   zfirst side done ...)rõ   r  rÿ   r  rÊ   zdifferent_by_seconds 3 = )ro   rp   r}   ©r  )rt   r  r  r  r  rž   ri   r  r  z8try to buy item for discharge but failed , try again ,  z faield result : )rc   r!  zerror in second sider<  z"after buy item. has start price 2.r˜   ©r^  gš™™™™™¹?r[   zdischarge 3 successfulzsell item press square 2rp   r=  r>  r?  gÍÌÌÌÌÌì?)r@  rA  rB  )rO   r"  rC  Úunknownzerror in first side ...z#no open transfer found, create new.zcoin is below z
low creditgÍÌÌÌÌÌü?rí   é   )r¡   r˜   r¼   )Úfifa_account__inrš   )Zlast_used__gt)Z#fifa_account__delete_console_reasonrq   gš™™™™™é?)rJ   rR   Úfifa_account__need_captchaÚinvestors__inÚdeletedÚfifa_account__credit__gteÚfifa_account__id©r¦  r‰   rH   rœ   ©Úoutput_field©Úsearch_counterr«  Zfifa_account__creditgffffffæ?)Úsearch_count_24_hourÚcredit_diffÚaccount_high_search_countrþ   ©Úsearch_count_24_hour__ltr­  z-selected mule for discharge with pod snipe : zmule credit = zmule fifa id = )Úinject_coinÚaccount_coinÚmax_player_priceztarget_price = z player_target_price : z buy_now_price : r¸   )Zfirst_price__ltz-first_price©Úfutbin_player_idr¸   Zspecial_target_idÚbad_for_discharge_reasonz1check result not found , try to get from futbin ,z futbin id : ©Úwait_on_errorÚdisplay_nameÚfutbin_price_listr  )rú   Ú
price_listr  r^  zfinal players for next step : rõ   rÍ   )r§   rR   Zput_for_sale_time__gt©ri   z error_for_this_player z
 player : z	 continuerµ  Ú
bad_playerr  Úrare_idÚfutbin_min_pricez player has other cards , player r]  Úfutbin_max_priceúplayer_price = z player target price : ztarget , continue)Úfutbin_resource_idzGplayer name cant be empty , seems need to update players.json, continuez$search item for discharge
 account: z7
player name cant be empty, need to update players.json)Úchat_idÚmessage_thread_id)Úforce_manualÚchange_gradeznew_price = z console search price : )rc   zsearch not resultztoo many change gradezitem bad for discharge , iÀ]  )rú   r  r”  r§   rR   rÐ   rž   Úlist_buy_now_pricez0player max price less than list_buy_now_price : zcalculated z max price : zcalculated data : )r¼   z&account credit less than calculated , ú -- z1list buy now price can not be more than max priceÚlist_start_pricez)target inserted to database ... , target ú transfer : z calculated_data z mule account : z+mule used but not player found w8 2 mins , zno player found w8 2 minsz)no mule account found , wait for 120 secszno mule foundzneed to sleep for 120 secszunknown result)vr(   rH   r4   rf   r$   r%   r   r]   rg   Ú	int_valuerD  rE  r   r:   rH  r   r^   r   r¥   r±   rJ  r[   rR   rS   r´   rú   r  r§   r”  rž   ri   r•  r–  r—  r“  r˜   r¼   r˜  r™  rÒ   rš  rÏ   r   ÚlastrJ   rœ  rW   rX   rZ   r   rW  r÷   rZ  r[  r\  r@   r   r_  rÓ   r!   rb  rª   r¦   rM  rN  rm  rn  ro  rp  rO  r   r'  rq  r&   rr  rs  rK  Úvaluesr   r/  Úinvestorra  Úannotater   r   r   r   r   r	   r
   r   r   rI  rœ   Ú%calculate_player_price_for_injection2Úminr9   ÚlistÚcheck_card_for_discharge3Ú	futbin_idrV  rë   r¶  Ú get_price_from_futbin_and_futwizr»  r  r^  Ú!get_futbin_player_card_with_priceÚ,get_data_from_furbin_with_target_informationÚ(get_data_for_putting_for_sale_in_consolerA   r   r   r   Úconsole_search_priceÚ
isinstanceÚcalculate_player_price_with_taxrÐ   )7rh   rt  ru  rv  rŠ  rŒ  r  Z	keep_coinZneed_to_closerŽ  r  Úsuccessful_transferr~  Zcanceled_transferZselected_mule_accountr²   rz  r{  r  rÕ   r‡  r€  r  r¿   rˆ  ri   Útarget_priceZlast_30_min_dischargerÝ   Zplayer_target_priceZspecial_targetsÚtargetsÚiiiZcheck_resultZbad_player_reasonÚfoundrò   Úbad_for_dischargeÚtarget_asset_idZerror_for_this_playerÚsearch_result2r½  Úrater  r¸   r¿  Úfutbin_resultÚfutbin_first_pricerÀ  Z	new_pricerú   rÆ  Zconsole_search_price_resultZcalculated_datarD   rk   rk   rl   Údischarge_with_mode3Y  sH   ÿÿÿ

ÿÿ
þ
ÿ
û
îÿ


ýý
ÿöþ
ÿ
ÿ


þý
ý





þÿý

óþýüûúùéÿÿçå
þ
ÿý
ÿþ

ÿ

	
þý

ÿ








þÿü
ÿ
ÿ
üÿÿÿ

þ

ÿ


z$DischargeRunner.discharge_with_mode3c                 C   s8  t | jdd|ƒ |  ¡  d| jd< d}|d7 }|dkrjt | jdƒ | ¡  d|_d	|_|jd
dgd dS zd|dkrêt| | j	| jƒ}t | jd|ƒ | 
d¡durêt | jd|ƒ d|_d	|_|jd
dgd tjj| jdjd	d W d S |  ¡  | j ¡  t | jd| jjƒ | jj|jk rpt | jd| jjd|jƒ d|_d	|_|jd
dgd tjj| jdjd	d W d S | j|j|jd|j|jdd}|st | jdƒ | j|jt|jƒd|j|jdd}|st | jdƒ d|_d	|_|jd
dgd tjj| jdjd	d W d S t d¡ t | jdƒ |d d }t› d|› }| jj
|| jd d }t| jt› d!d" t | jd#|d$|jƒ | ¡ }|d d% }	|d d& }
|j|
ks´|j|
krt | jd'd(|jd)|jd*|jd+|
d|ƒ d|_t |
ƒ|_t t |
ƒƒ|_|jg d,¢d t | jd-|	d.|
ƒ t d/¡ | j!|d d |d0 d|j|jd1 d|_"d	|_t# $¡ |_%|	|_&|
|_'|jg d2¢d t | jd3ƒ zt(| | j	| jƒ W n   Y n0 tjj| jdjd	d t | jd4ƒ W d S    t | jd5t) *¡ ƒ | j	 ¡  | j	j+r,d|_d	|_|jd
dgd t | jd6ƒ Y dS Y q&0 q&d S )7NzBweb_app_discharge_pod_snipe_staff started to buy item and sell it.rÊ  r   Úbid_controller_countro   rp   rÈ   TFrR   rÏ   r’   rq   zlogin result : rO   zerror in login result : rG   rI   zmule account credit =z$mule credit less than start price , z start price : rË   r}   )rÿ   r  Ú
trade_modezcouldnt buy this item 1zcouldnt buy this item 2zitem bought successfulr›   rœ   z(/marketdata/item/pricelimits?itemIdList=rE   )r0  z*/marketdata/item/pricelimits?itemIdList=%s)rH   r~   zlink :z	  resp = ÚminPriceÚmaxPricez3how start price or buy price is more than max pricez, something wrong ú - z buy price : z max_price )rR   ri   r•  zmin_price = zmax_price = rF   r…   r   )r“  rÏ   rÒ   r˜  r™  zitem put for sale successfulzin_use set false successfullyzerror 69 : r¤   ),r(   rH   rÑ   rU   rZ   rR   rÏ   r´   r5   rf   rg   r   r]   r^   r_   rY   r[   rž   Úsearch_player_and_bidr§   r  r”  r    rW   rX   r=   rT   r)   r³   r¬   r•  ri   r!   r·   r“  r   r¥   rÒ   r˜  r™  r#   r`   ra   rº   )rh   rD   r¾   Úlogin_statusÚbought_tradeZbought_trade_idr~   rÂ   Újs_respÚ	min_priceÚ	max_pricerk   rk   rl   Úweb_app_discharge_mode3_staffZ  sÖ    ÿ

ÿ

þ
þ
þ
ü

ý


z-DischargeRunner.web_app_discharge_mode3_staffr   c           
      C   sú   t |ƒ}t| jd|d|ƒ |d }|dk r4|d }n|dk rD|d }t|ƒ}zRtjj|||d\}}	t| jd	|d
|d
|d
|dd|	d
|ƒ |rœ||_t 	¡ |_
W n"   tjj|||d ¡ }Y n0 t | ¡ ¡|_||_|rè|jsè||_| ¡  |||fS )Nz1get data for put sale in console , player name = z player price : g      ø?iÜ  r}   éˆ  rp   )rõ   rÿ   r  zplayer card created : rÈ  z , z created : )r'   r(   rH   r&   r   r]   rW  r]  r   r¥   r^  r^   rJ  rZ  r[  r\  r÷   rÂ  r´   )
rh   r¸   rä  râ  r  rÂ  rú   ri   rz  r{  rk   rk   rl   rØ  Ö  s6    
ÿ

þ
z8DischargeRunner.get_data_for_putting_for_sale_in_consoleNc                 C   s  d}|   t› d|› d¡j}t|dƒ}t|jdddj d¡jƒ}|jd	d
}|d }|jdd
j}	|jdddidd }
|jddd
}|sš|jddd
}z4| d¡d }tt dt	t
j |¡ƒ¡ d¡ƒ}W n   d}Y n0 t dt
j |d ¡¡}|r| d¡}d dd„ |D ƒ¡}nd}tt dt	t
j | d¡d ¡ƒ¡ d¡ƒ}t| jd|	d|d|ƒ d }|jd d
D ]:}d |d! v rtd"|d! v rtd#|d! v rt|} q°qt|jd$d
sÎt| jd%ƒ d&}|sØz¸t d't	t
j | d¡d ¡ƒ¡ d¡}|jd(d
 d)d*„ ¡}|r~g }|D ]8}t d't	t
j | d¡d ¡ƒ¡ d¡}| |¡ q"||v rŠt| jd+|d,|ƒ d-}nt| jd.ƒ W n   t| jd/t ¡ ƒ Y n0 | j||d0}| d1¡sÜt| jd2ƒ d&}ni }| |||
|	t|ƒt|ƒt|ƒ|d3œ¡ |S )4NFz/player/z/aúhtml.parserÚthÚID)r³   Útdúplayer-card-wrapper©Úclass_zdata-idzplayercard-25-ratingÚdivÚtitleT)ÚattrsÚimgzplayercard-25-base-imgzplayercard-25-special-imgÚsrcz	hd/(\d+)_ro   rp   z/players/(.+)\.pngrq   c                 S   s   g | ]}|  ¡ r|‘qS rk   )Úisdigit)Ú.0Úiirk   rk   rl   Ú
<listcomp>  ó    zPDischargeRunner.get_data_from_furbin_with_target_information.<locals>.<listcomp>r   zplayer data : rate = z rare = z asset id = z	price-boxÚclasszplayer-price-not-pszprice-box-original-playerzlowest-price-1zbad player , has not pricezhas not pricezhd/([^.]+)\.pngzplayer-header-card-sectionc                 S   s    d|   dg ¡v od|   dg ¡v S )Nrù  r  Úhidden©rg   )Útagrk   rk   rl   Ú<lambda>;  r  zNDischargeRunner.get_data_from_furbin_with_target_information.<locals>.<lambda>z(same rarities found . bad for discharge rÈ  zsame rarityzplayer hasnt any other cardzplayer hasnt any other card 2 )Úpage_sourcer  z'player has no price , set as bad player)rõ   rù   rú   r  r½  r¾  rá  r¶  )rQ  r>   r³   r   ra  rµ   ÚparentrR  rS  rª   ÚurllibÚparseÚunquoterT  rO  r(   rH   Úfind_allrV  r`   ra   rÕ  rg   r_   Úbool)rh   rÔ  Ú	rare_typer½  ry  Úsoupr§   Úplayer_card_wrapperÚplayer_futbin_idr  r¹  Úplayer_wrapper_imageÚplayer_image_urlÚcurrent_player_rareÚplayer_resource_idr”  Ú	card_inforw  Úcurrent_versionÚ	pversionsZother_raritiesÚpversionZcard_versionÚoutput_datark   rk   rl   r×  õ  s¶    
ÿþ

ÿÿ
ÿþÿ
ÿ
þ
ÿþÿýÿþ
ÿûz<DischargeRunner.get_data_from_furbin_with_target_informationr4  c           ?      C   s  t | jd|ƒ t| jdƒ t| jdƒ | j ¡  |dg}||krê| jjrêtj	j
ddj}tj	j
ddj}tj	j
ddj}tj	j
d	dj}tj	j
d
dj}	zttd}
W n&   t | jdt ¡ ƒ t ¡ }
Y n0 tj	jd|
tjdd d ¡ }|dkrt | jd|ƒ dS tj	j| jdd || |k r`|du r`t | jd|d|d|ƒ | jjdd dS || |k r |du r t | jd|d|d|ƒ | jjdd dS t| jdƒ t | jdƒ tj	jdddd ¡ }|dkr t dd ¡}t | jd!| ƒ t |¡ q8tj	j|	ddd| jjj gdd"j!t"t#t$j	jt%d#ƒt ¡ tjd$d% d& &d'¡j!t'd(t(ƒ d)d* &d+¡t(ƒ d)t)dƒƒd,j| j*d- +d.¡}| ¡ dk rÀt dd ¡}t | jd/| ƒ t |¡ q8t| jd0ƒ t | jd1||ƒ || }d2}||krö|}d3|› d4|› d5}|d6 d7g d7dd8œ|d9 d:g d;dd8œ|d< d=g d>dd8œ|d? d@g dAdd8œ|dB dCg dDdd8œ|dE dFg dGdd8œ|dH dIg dIdd8œ|dJ dKg dLdd8œ|dM dNg dNdd8œdOœ	}| &¡ D ]ž}| 
dP¡sât | jdQ| 
dR¡dSƒ q¸| 
dT¡}|  ,|¡}t dU¡ t-|j.dVƒ}g }|j/dWdXD ](}| 0t1 2dY| 3dZ¡d[ ¡ 4d¡¡ q| 5d\|i¡ q¸|d] d^ 6d_d`„ | &¡ D ƒ¡ }|  ,|¡j.}t dU¡ t-|dVƒ}g }|j/dWdXD ](}| 0t1 2dY| 3dZ¡d[ ¡ 4d¡¡ q¨t7|ƒ}t8|ƒdkrøt | jdaƒ qêg }d}|D 	]„} d}!d }"| j 9¡  | jjdu r0 qŒdrút:| t;ƒrút | jdb| ƒ dc}#t<| j=j>dd}$| j?| j=j@| j=jA|$d | j=jB|$de |$d | j=j>df}%|% 
dg¡}&|% 
dh¡}'| j=jA}(| j=j>})| j=jB}*tC|&ƒ}&|&dkrät | jdiƒ q|'| jDk r| jD}'n| rþt | jdj| ƒ | | 
d7i ¡ 
d\¡v r6| jE| ddk}+n| jE| ddk}+|+ 
dl¡},|+ 
dm¡}(|+ 
dn¡})|+ 
do¡}*|+ 
dp¡}&|+ 
dh¡}'|,r–t | jdqƒ qtC|&ƒ}&|&dkrÂt | jdiƒ t de¡ qd}!| | 
d7i ¡ 
d\¡v rîtF|*dr|&ds}"ntF|*dL|&ds}"nt | jdtƒ t de¡ qtC|)ƒtGj	jddujHdnddvv rTt | jdwƒ t de¡ qtGj	jtC|)ƒdxsŒt<|)dd}-tGj	jtC|)ƒ|-d ddy tC|)ƒdzv r´t | jd{ƒ t de¡ q|&d|k sÈ|'d}k ràt | jd~|&d|'d€ƒ qtItC|&ƒtC|'ƒƒtJ|ƒkr*t | jd|)› d‚tItC|&ƒtC|'ƒƒdƒ|ƒ qn$t | jd„tItC|&ƒtC|'ƒƒd…|&d†|'ƒ |&tKtK|ƒƒkrzt | jd‡|&dˆtK|ƒƒ q|  L|&|(|)|*¡\}.}/}0tM}1|1|1|1|1|1|'ƒƒƒƒƒ}.| rô|.|	k rôt | jd‰dŠ|.d‹|	ƒ |	}.|	}'tK}2tNdUƒD ]}3|2|'ƒ}'qä|/	rŽtOj	j|/dŒjPtQdgƒd}4|4j|4jt ¡ tjdŽd d +d‘¡jHd(ddvd d’… d“}5|5jdd” ¡ }6|6dk	rŽ| 0|)¡ t | jd•|)› d–d—ƒ q|j|.d˜ ¡ dk 	rºt | jd™|.› ƒ qt| jdšƒ t | jd›|&ƒ | jjR|/tK|.ƒ|.dd|"|!dœ}7tS|7 
d¡ƒdžv 
rt | jdŸƒ qq|7 
d¡du rt | jd ƒ tNdƒD ]v}8t | jd¡ƒ | jjT U¡  t de¡ | j V¡  | j WtXjY 6tZd¢| jj[› d£¡d¤¡
s¬| jjT \¡  t de¡ n 
q¶
q>| jj]tK|.ƒ|.ddd¥
sât | jd¦ƒ  dS tj	j|0|(|)|&|'| j|*d§}9d}d|9_^|9j_d¨gd© | j 9¡  d| j_`| jj_dªgd© t | jd«ƒ ||&8 }t| jd¬ƒ t ¡ }:|  a|9¡};t dU¡ |9 9¡  | j 9¡  |9jbrªt | jd­ƒ | jjT c¡  q$|:t ¡ tjd®d k röt | jd¯|:ƒ d|9_bd°|9_d|9 _¡  | jjT c¡  q$| jjdu r4t | jd±ƒ d|9_bd°|9_d|9 _¡  | jjT c¡  q$tj	j|9jet ¡ tjd®d |)ddd² f¡ }<|<r‚t | jd³|<ƒ t d’¡ qj|;durjd|9_g|9j_d´gd© t ¡ }=| jjTj\dµd¶ z6th| ji|; 
d·¡|; 
d¸¡|; 
d¹¡dºœdd»}>|> j¡  W n   t | jd¼t ¡ ƒ Y n0 t | jd½|=d¾t ¡ ƒ t d¡ | j ktXjY 6tZd¢| jj[› d¿¡¡rŠ| jjT \¡  t d¡ ||.|.dU d   7 }t | jdÀ|ƒ t d®¡ | jjT c¡  t de¡ | j ldÁdÂ¡ | j m¡ dÂkrÞ| jjT n¡  t d¡ |9 9¡  tOj	j|9jo|/t ¡ |'|&tC|9jb ƒdÃ t| jd ddÄ q$qjt d¡ | j 9¡  d| j_`|dk rNdÅ}|| j_p| jj_dÆdªgd© t | jdÇ|ƒ t| jdÈƒ  qŒq|r¬|s¬t | jdÉ|› dÊƒ |d |krØ|d dekrØt | jdËƒ qê||d d g}q8| jjdd t| jdÌƒ d S )ÍNz#discharging with snipe ... coins = rß   zdischarging ...r   Z(discharge_with_snipe_lowest_target_pricer‹  Z)discharge_with_snipe_highest_target_priceÚ#force_discharge_lowest_target_priceÚ)discharge_with_snipe_card_max_allowed_taxÚ)discharge_with_snipe_lowest_buy_now_pricer  zcan`t read current time : ro   rÍ   r  )rã   r¡   r}   z&started bot for discharge in 30 sec : Trâ   Fz discharge done, current coins = z sell all = z lowest target = )Úneed_get_new_sidz"discharge done 2 , current coins =z
 coins_to zwaiting in queue)Úfirst_side_readyrR   r˜   é   rš   éd   z6maximum snipers capacity reached .sleep for %s seconds©Úfifa_account__credit__gtrJ   rR   r¢  r£  r¤  r¦  r†   r‡   r§  rH   rœ   r¨  rª  r«  ©r¬  r¯  rœ  z%need more mules .sleep for %s secondszgetting a targetzmust discharge coinz10,90z/https://www.futbin.com/players?page=1&ps_price=ú-z&sort=ps_price&order=descz&version=gold_rareÚ	gold_rare)Úurlr÷   rÞ  Úfutbin_versionÚactivez&version=if_goldÚteam_of_weekZif_goldz&version=fantasy_fcÚfantasy_futZfantasyz&version=totssfnÚteam_of_the_season_momentZtotssfnz&version=totsÚteam_of_the_seasonZtotsz&version=fut-bdÚfut_birthdayzfut-bdz&version=shapeshiftersÚshapeshiftersz&version=totyÚtotyrq   z&version=tots_liveÚ	tots_live)	r*  r.  r/  r0  r1  r2  r3  r4  r5  r-  zversion r,  z is not active , continuer+  rË   rõ  ú
player-rowrú  úplayer/(\d+)/ÚaÚhrefrÞ  z	&version=ú,c                 S   s    g | ]}|  d ¡r|  d¡‘qS )r-  r,  r  )r  Ziintrk   rk   rl   r    s   z8DischargeRunner.discharge_with_snipe.<locals>.<listcomp>zno target found w8 120 secsz)discharge target is sniper player card , Úspecial)r§   rp   )rú   rû   rü   r”  Úplayer_fÚplayer_lr§   r]  r¿  z%player price is 0. will change targetz"discharge with snipe and filter , )r  r½  r  rõ   r¾  r  zplayer has other cards 33.ru   )Ú
rarity_idsrø   ri   z(target is not in targets , will go next.)Úallowed_use_console_discharge)Úflatz(this player is not allowed for discharge)rõ   )rõ   rú   r?  rk   z this player is bad for discharger;  é–   zplayer price from futbin is : rì  z and can not buy itzthis player z has too many tax : z allowed tax : zplayer tax is : z - player_price z futbin_min_price rÁ  z*get_previous_price_grade(current_coins) = zNplayer buy now price is less than discharge_with_snipe_lowest_buy_now_price , zAso set discharge_with_snipe_lowest_buy_now_price as buy now pricerÈ  )rz  r¼  éð   r’  )Zaction_time__gtez-idrÎ   )Úid__in)r"  zcard z& has more than 3 missed in last 2 hourz automatic change card for snip)r'  z+can not find enough mules with this credit zbid and list the targetz%bid and list the target with price : )rt   rž   ri   r  r  Útarget_filterÚuse_target_and_filterr  r   zcould not buy the playerz after buy item. has start price.zsell item press square 1r=  r>  r?  )r@  r  rA  )rú   r  r§   r¸   r\   r¼   r¨   r#  r’   Úcan_kill_by_motherzfirst side is readyzwaiting for snipersz$error happened , will break transferé   z*waiting more than 15 minute so close it : zmore than 15 minzrun discharge stopped , break)Zid__ltZinsert_time__gtr§   rR   r˜   zalready stuck discharge , r“  g{®Gáz„?)Úsleep_afterrD   Údischarge_workersr¼   )rD   Úworkersr¼   rñ   z"exception in discharge part two : zsecond side is ready , z" sell item cross pressed , time : z"_controls/item_transfer_sucess.pngzcalculated coins = Úsearch_playersÚtransfer_list)rH   rz  Úaction_timeri   r]  r"  rž  rí   r[   z%transfer completed , current coins : ztransfer completed statez0want buy item but all found item is bad items : z ,z-it is looklike its stuck in loop, so break itzdischarge complete)qr(   rH   r$   rf   r%   rD  rE  rF  r   r]   rg   rË  Ú	str_valuer@   r   r`   ra   r   r¥   r:   r^   r±   r²   rH  rs  r   ÚrandomÚrandintrW   rX   r   r/  rÎ  rÏ  r   r   r   r   rÍ  r   r	   r
   r®  rI  rQ  r   r³   r  rV  rR  rS  rµ   rT  r_   rO  rÒ  r­   rZ   rÚ  r   r*   rz  rõ   Ú$get_player_price_from_futbin_web_appr÷   rÿ   r  ra  rñ  r×  r   r7   Úvalues_listr+   Úfloatr!   rØ  r    r¦   r8   rK  r   rb  rª   rM  rN  rm  rn  ro  rp  r   r'  rq  rr  r#  r´   rF  Ú&get_discharge_web_side_worker_part_onerR   Úcircler¶   rœ   rÌ  r“  r,   Ú&get_discharge_web_side_worker_part_tworw   Úwait_for_imagerG  Újust_find_stateÚr2r¼   r[   )?rh   rt  ru  rv  Zloop_keeperÚdischarge_lowest_target_priceZdischarge_highest_target_pricer  r   r!  Úcurrent_timeZstarted_botsZcount_working_on_websZrandom_sleepZready_mule_accountsrÝ  Úps_prpZ	base_linkZplayers_linksÚiirZpl_linkZresp_5Zsoup_5Zlink_targetsrß  Zlink_all_targetsZresp_3Zsoup_3Zall_targetsrÞ  Zbad_targets_asset_idZt_boughtrò   Zuse_targe_and_filterrD  Ztarget_typer  rå  r¸   r¿  rä  râ  r  Úsearch_resultr½  Zcard_info_2ri   rz  rú   Zg_n_p_gZg_p_p_gZmmmmZtarget_cardsZlast_10_target_cards_hourZmissed_count_hourr  r¿   Ztransfer_dataZstart_waitingZweb_app_workerZstuck_dischargeÚsecond_side_ready_timeZpart_two_threadrk   rk   rl   Údischarge_with_snipep  s¦   
ÿÿÿÿÿþ


ÿ
ÿ
ÿ



ûþýüûúùùññ

ûûûûûûûûûÏ9


&ÿ


&	

ú



ÿÿ







	
ÿþ


ÿ

ÿþþ
þÿ

ýÿüÿþþþ


þü	

þý

þü



ü


ýúÿ
þ
ÿ




ú




þz$DischargeRunner.discharge_with_snipec                    sv  ‡ fdd„}t ˆ jdƒ dD ]Ì}d }|ƒ }|sHt ˆ jdƒ t d¡ qt ¡ |_d|_|jdd	gd
 |j	}| 
¡  t ¡ |_d|_d|_|jg d¢d
 t|j|j|j|j|j|jdd}zLt|||ƒ}| d¡du rútjj|j	d|djdd W qt ˆ jd|ƒ W n\ tyf }	 zBt ˆ jdt ¡ ƒ tjj|j	djdd W Y d }	~	qW Y d }	~	n
d }	~	0 0 | 
¡  t ˆ jdƒ |jsžtjj|j	djdd q|jsÌt ˆ jdƒ tjj|j	djdd qˆ  
¡  t ˆ jdƒ |} qìq|södS ˆ  
¡  ˆ jdu r&tjj|j	djdd dS t|j	jƒd }
ˆ  
¡  |
ˆ _dˆ _ t ¡ ˆ _!ˆ jg d¢d
 dˆ |gˆ jdœS )Nc               	      s˜  t ˆ jdƒ t} | | | | | | ˆ jƒƒƒƒƒƒ}tjj|dddˆ jjjgddj	t
ttjjtdƒt ¡ tjdd d d¡j	td	tƒ d
d d¡tƒ d
tdƒƒdjtjjddjd d d¡}|D ]È}t ˆ jd|jƒ tjj|jdd ¡ }|stjj|jdd\}}d|_d|_d|_|  ¡  |j!rJd|_"|j#|_#|  ¡  qÊt ˆ jd|jj$dˆ j%ƒ t ¡ |_&d|_'|  ¡  t ˆ jd|j(ƒ |  S qÊd S )Nzget workers , need a worker 2Fr&  r¦  r†   r‡   r§  rH   rœ   r¨  rª  r«  r   r(  r®  r‹  rþ   r¯  rœ  zwant to create worker with : Úinject)rH   Úrunning_platformTz
account = zwill participate in zworker id = ))r(   r¼   r    r\   r   r]   r^   r/  rÎ  rÏ  r   r   r   r   r   r¥   r±   rÍ  r   r	   r
   r   rg   rË  rI  rH   r   rJ  rW  Úfirst_xiÚpuzzle_masterÚmanual_loyalr´   Ú	has_errorrR   rS   ri  r¸   rœ  rJ   rœ   )Zgnri   ÚaccountsÚaccountrf   r{  rC   rk   rl   Ú
get_worker®  sl    
üþýüûúùúñðÿ
ÿ

ÿ
zJDischargeRunner.get_discharge_web_side_worker_part_one.<locals>.get_workerz$get disccharge web app side part one)r   ro   rp   zno worker found 2r›  Fré   rº   r’   r   ro   )ré   Úneed_captchar-  )Úuse_public_movesrO   T)rH   rR   rS   rI   zrun discharge after login : zerror 33_1 : rG   zfifa account activezaccount first things failedzworker appendztransfer errorú )Úall_accounts_idsÚsecond_side_readyr_  )rO   rD   rI  r¼   )"r(   r¼   rW   rX   r   r¥   ré   rº   r´   rH   rZ   rj  r-  rB   rœ   ri  Úpasswordr'  re  r5   rg   r   r]   r^   r_   rP  r`   ra   rm   rR   rª   rm  rn  r_  )rh   rD   ri  rw  Zdischarge_workerÚworkerrH   Úsbc_solver_itemrj   ÚeZall_accountsrk   rC   rl   rT  ­  s€    .




þÿÿ"
ÿz6DischargeRunner.get_discharge_web_side_worker_part_onec                 C   sr  t  ¡ }d}d}d}g }d }	d}
|D ]N}|js4|jr<d} qtt  ¡ }	|j|||
||d t d¡ |
d7 }
|d7 }q$|rzqŽ|d7 }|dkrqŽqt d¡ t|jd|d	|	ƒ |D ]X}t	j
j|jd
jdd z|jd  ¡  W n   Y n0 |j ¡  d|j_|j ¡  q®~t|jdƒ | ¡  |jsNd|_d|_|jddgd t|jdƒ t d¡ |D ]}| ¡  ~q\d S )NFr   ro   T)rD   r²   r»   rn   r¼   g333333Ó?rG  z'set accounts in_use to false , dis 1 : z	 dis 2 : rG   rI   Údriverztransfer job is done  .... r£   rR   r¶   r’   ztransfer missedrš   )r   r¥   r˜   rR   rÇ   rW   rX   r(   r¼   r   r]   r^   rH   r_   rU   ÚcloserZ   r-  r´   r¶   rO  )rh   rD   rJ  r¼   Zdis_1Údoner²   rn   Zthread_listZdis_2r»   rq  Úthreadrk   rk   rl   rV  	  s^    þ




z6DischargeRunner.get_discharge_web_side_worker_part_tworË   c              	   C   sŽ  g }g }	|r|  d¡}	g }
tddƒD ] }|dkr6d}nd}d|› d|› d	|› d
}|dk rb|d7 }| j|d}t|jdƒ}t| jd|d||ƒ |jdd}|rº|jddD ]}|
 	|¡ qªt
 d¡ q$|
sÖt| jdƒ t|
ƒD ]ª\}}t d| d¡ d¡¡ d¡}|jdd}||	v r2t| jd|d|	d|ƒ qÞ|sLt| jd|d|ƒ qÞ| j||d}|rv| d¡sv| 	|¡ t|ƒ|krÞ qŠqÞ|S ) Nr:  ro   r}   rô  z10,70z5,70z$https://www.futbin.com/players?page=z&ps_prp=z&order=desc&ps_price=0-z,&sort=ps_price&pos_type=all&?version=if_goldr4  z&version=goldrÉ   rõ  zget card search link : z proxies : zplayers-tablerú  r6  rp   z$no players row , check page responser7  r8  r9  z
price-diffzthis item in exclude : rÈ  z current selected players : zSthis player has not changed price , so this maybe expired , continue . player id : r´  rR   )Úsplitr¦   rQ  r   Úcontentr(   rH   rµ   r  rV  rW   rX   Ú	enumeraterR  rS  rg   rT  rÓ  r­   )rh   r¸   Zlimit_playersZexclude_futbin_idsÚproxy_ipÚ
proxy_portÚ
proxy_userÚ
proxy_passÚplayersZexclude_idsZplayers_tree_rowsÚiiinr\  rÁ   r^  r  Úplayers_tableÚrow_itemÚ	row_indexÚrowrµ  Zplayer_changed_priceZcheck_card_resultrk   rk   rl   rÖ  X	  sV    

ÿÿdÿ
z1DischargeRunner.get_futbin_player_card_with_pricec              	   C   s:  | j |dd}| d|i¡ t d¡ | d¡}|rF|t ¡ d krFn&t| jdd|d	| d
¡d|ƒ ddiS | d¡}|st| jd|ƒ ddiS t|d  dd¡ƒ|d< t	t
t| d¡ƒƒƒ|d< | d¡|krât| jd|ƒ i S | d¡}| d¡}t	}|r<|r<t|d  dd¡ƒ}	|	dkrXt| jd|ƒ ddiS n|sXt| jd|ƒ ddiS |}
tdƒD ]}t
|
ƒ}
qd|
| d¡p„dkržt| jdƒ dd iS t| d¡ƒ}| |¡ | d!¡| d"¡kròt| jd#| d!¡d$| d"¡ƒ dd%iS | d"¡d&krt| jd'|ƒ i S | d(¡s6t| jd)|d*|ƒ i S |S )+Nrš   r·  rµ  ro   r  iX  z4update time is more than 10 minute ago , try anotherz player id : z update time : r^  z update time_stamp : rR   zhigh update timerº  z2price list not exists , try another , player id : zprice list emptyr   r:  rq   Úvendor_buy_pricer  Zvendor_force_sell_pricez9price is more than current coin , continue . player id : r•   z&player last price is 0 , price list : zlast price zeroz5player data list is empty , try another. futbin id : zprice data emptyrþ   r¿  z2card price equal to min price , try another card. zprice equal minrÀ  rÇ  z=card price equal to max price, try another card. max price : zlist buy now price : zprice equal maxrí   zBlist price can not lower than 1000, try another card. player id : r]  z8player item has not price , so try another. player id : z player data : )rÕ  r_   rW   rX   rg   r(   rH   ra  Úreplacer    r!   r¦   rÛ  )rh   rµ  r¸   Úplayer_dataZplayer_update_time_stampZplayer_data_price_listZplayer_data_first_priceZplayer_first_priceZgnpgZplayer_last_priceZcard_buy_pricer  Úresult_2rk   rk   rl   rÓ  ë	  s€    

þ
ÿÿÿ



ÿ

þÿÿz)DischargeRunner.check_card_for_discharge3)FrÞ   )FrÞ   )r   )N)Fr4  )rË   NNNNN)Ú__name__Ú
__module__Ú__qualname__r   rm   ra  rÇ   r   rÖ   rÑ   r‰  rç  ró  rØ  r×  r`  rT  rV  rÖ  rÓ  rk   rk   rk   rl   rB   )   s@   ÿ < 
   0
    |

{
    Am?  þ
 rB   c                 C   s\   t |ƒ}t | ƒ} t | ƒt | d ƒ }|d d }||kr@|d }|rP||krP|}dt |ƒiS )NgR¸…ëQÈ?r%  é-   rí   r¸   )ra  )r±  r²  r³  Zinject_coin_with_taxr¸   rk   rk   rl   Ú$calculate_player_price_for_injectionR
  s    rŒ  c                 C   s„   t |ƒ}t | ƒ} |d }| d d }|d |kr8|d }|rFt||ƒ}t|ƒ d¡|krftt|ƒƒ}qFt|dƒ}t |ƒ}dt |ƒiS )Nrí   r%  r‹  g
×£p=
ó?rÇ  r   r¸   )ra  rÑ  rÛ  rg   r&   r!   Úmax)r±  r²  r³  Zmax_price_with_taxZplayer_price_without_taxr¸   rk   rk   rl   rÐ  ^
  s    

rÐ  c                 C   sf   t | ƒ}t|t |d ƒ ƒ}t |d ƒ}|| | }|}tt dd¡ƒD ]}t|ƒ}qH|||||dœS )NgÍÌÌÌÌÌÜ?gš™™™™™©?r}   rš   )r¸   rÇ  rÉ  ÚtaxÚtransferred_coin)ra  r&   r¦   rO  rP  r    )r¸   Úfutbin_player_priceZ
list_pricerŽ  r  Zlist_price_lowerr  rk   rk   rl   rÛ  r
  s    
þrÛ  )r   )r   )`r¬   ro  rO  rR  Ú	threadingrW   r`   r  Úhashlibr   Úurllib.parser   rg  rZ  Úbs4r   Ú	django.dbr   Údjango.db.modelsr   r   r   r	   r
   r   r   Údjango.db.models.functionsr   r   Údjango.utilsr   Úaccounts.modelsr   r   r   r   r   r   r   r   Úfutplus.settingsr   r   Úsbcr   r   r   r   Ú
sbc.modelsr   r   Úsbc.public_methodsr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Úaccounts.web_login_utilsr5   Úsbc.sbc_solverr6   ÚsniperÚsniper.modelsr7   r8   r9   r:   r;   r<   Úutils.ea_settingsr=   r>   r?   Úutils.realy_public_methodsr@   rA   rB   rŒ  rÐ  rÛ  rk   rk   rk   rl   Ú<module>   sf   $(\                     =

