a
    }h[L                 B   @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dl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Zd dlZd dlmZ d dlmZ d dl m!Z! d d	l"m#Z#m$Z$m%Z% d d
l&m'Z' d dl(m)Z) d dl*m+Z+ d dlm,Z, d dl-m.Z/ d dl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z? d dl@mAZAmBZBmCZCmDZDmEZEmFZF d dlGmHZHmIZImJZJmKZKmLZLmMZM d dlNmOZOmPZP d dlQmRZR d dlSmTZT d dlUmVZV d dlWmXZX d dlYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z` d dlambZbmcZc edeAZedZfdZgejhdkrtd dliZieijejkle>dZmne!d Zmdej,dd d!ZndeHe1d$d%d&Zode1d'd(d)Zpdd*d+Zqd,d- Zre1ej,esd.d/d0Zte1ej,d1d2d3Zude1ej,esd4d5d6Zve1ej,esd7d8d9Zwe1ej,esesd:d;d<Zxe1ej,esesd:d=d>Zyez dd#fe1d'd?d@Z{ez dfe1d'dAdBZ|e+dCZ}e1d'dDdEZ~eHdFdGdHZeHdFdIdJZd eHdFdKdLZde<dMdNdOZdedPdQdRZde1edSdTdUZdVdW Zg dXg dYg dZg d[g d\g d]g d^g d_g d`g dag dbg dcg ddg deg dfg dgg dhg dig djg dkg dlg dmg dng dog dpg dqg drg dsg dtg dug dvg dwg dxg dyg dzg d{g d|g d}g d~g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg ddAZg dXg dYg dZg d[g dbg dcg ddg deg dlg dmg dng dog dvdZdddZdddZdd ZdddZdddZdd ZdddZd	ddZd
ddZdd Zdd ZdddZdddZdd Zdd Zdd Zdd ZddÄ ZG ddń deZdddȄZe1d'ddʄZdd̄ Zdd΄ ZdddЄZde,dddӄZde1d'ddՄZddׄ Zd d g fe1eOd؜ddڄZd d g fe1eOd؜dd܄Ze1eOd؜ddބZd d g fe1eOd؜ddZdeOdddZe1esdddZde1d'ddZe1d'ddZe,dddZdd Zdd Zdd ZdeLeMdddZdd Zdd ZdS (      N)decode_header)parsedate_to_datetime)md5)Thread)	ImageGrab)BeautifulSoup)caches)
connectionconnectionsclose_old_connections)Q)timezone)get_redis_connection)Session)User)FifaAccountFifaAccountLog
PlayerCardAccountSalablePlayerCard$ObjectiveSeasonProgressSpecialOptionTelegramMessageConsoleSpecialNamesAccountSoldItemFifaAccountCurrentItemsConsoleBotSettingConsoleLastStatusConsole)BASE_DIR	TIME_ZONE)FIFA_REPORT_TOKENARZBAZI_REPORT_GROUP_ID6ARZBAZI_REPORT_TOPIC_DISCHARGE_ERROR_THREAD_MESSAGE_IDU7BUY_REPORT_CHANNEL_IDONE_WEEK_SECONDSONE_HOUR_SECONDS)	SBCWorker
SBCProcessSBCProcessTargetSBCWorkerDetailsLogSBCTypeSBCSolvationModel)MuleDischargeMode2DischargeMode2)AccountSquadBattleData)console_trade_quality_dict)ConsoleTradeOneQuality)deep_get)	fifa_hostfifa_23_addresspin_event_urlfut_web_numberfutbin_addressfifa_23_address_2fifa_host_2)get_db_time"telegram_send_message_fifa_accountzoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36z!https://api.u7buyut.com/api/tradentz.data/console_worker_infodiskcache_alternative)sec                 C   sF   ddddt ddddtd	
}| jt d
|d | jt d
|d}|S )N*/*gzip, deflate, bren-US,en;q=0.5
keep-alivecontent-type,x-ut-sidDELETEhttps://www.ea.comhttps://www.ea.com/
AcceptAccept-EncodingAccept-Language
ConnectionHostzAccess-Control-Request-HeaderszAccess-Control-Request-MethodOriginReferer
User-Agent/trade/soldheaders)r1   
user_agentoptionsr2   delete)r<   header
server_keyoptions_headerresp rX   EC:\Users\Administrator\Downloads\futplus_django\sbc\public_methods.pydelete_sold_items@   s&    rZ   FT)
sbc_workerfifa_accountc           k      C   s#  t |d ddlm} | } |  t|d|d|d|d|	 |rz| jt d}t|t d	d
 |	 }	|	drt
|	d dd dd}
d|
d d gi}| jjt d|| jd d}t|t dd
 t|d|jd d  W n   t|dt  Y n0 |du r|t|| j| j| j}zt||	  W n   t|dt  Y n0 t| j| jd | j t|t dd
 ztjj|d\}}W n2   t|dt  tjj|d \}}Y n0 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}tjjd$dj}g }tjj|dd% }|rjtjj|d&}|D ]}||j qVg }d}d| jd'< t|| j| j j!| j j"d(| j#| $ d) g }|r|	 }|d* }|D ]}|d+ d,krؐq|d d- } |d d. }!|d dd}"|d d/pd}#|d d0p&d}$|d d1p:d}%t%|d d2pPd}&|d d3}'|d d4}(|%d5krd6})n|%d7krd8})nd9})|)t%|&d:k  }*| j&d;v r|d d<r| jj't d=|  | jd d>}+t|t d?d
 t(|| |#d@ t|dAdB|dC|+j q|d+ r2|d+ dDkr|d dE dFkr>|d+ dDkr|"| j)* vr| jj't d=|  | jd d>},t|t d?d
 t(|| |#d@ t|dG|dH|,j t+,d: nz| j&dIvr|'}-|(}.|-r|.s
| -| }|	 }/|/d dJ }-|/d dK }.t|dL|dM|-|. | j.| dNd|-|.dO t+,d: qdPrX|%dk rXt|dQ| |&dkrp|%dRk rp|#dSk r|j/|k rdT|  }0t0| j| jd |0}1t|t dUd
 |1	 di gd dVdPdu rt|dWdX|!dY|# | j/d:7  _/|1  q| jj't d=|  | jd d>},t|t d?d
 t(|| |#d@ t|dZ| d[|!d\|%d]|&d^dC|,j t+,d: qt2jjt34 t3j5d_d` |*da6 }2|'pd}3|(pd}4|db }5|dc }6|3|5kr|&d:ks|%d7krrdT|  }0t0| j| jd |0d}1t|t dUd
 |1	 di gd dVdPdu r,nD| jj't d=|  | jd d>},t(|| |#d@ t|dd|de|1df|,j n@| jj't d=|  | jd d>},t(|| |#d@ t|dg|df|,j n| j&dIv r||d  nv|2r|2j7dkrt8|2j9}-|2j9}.n>|'}-|(}.|-r|.s2| -| }|	 }/|/d dJ }-|/d dK }.| j.| dNd|-|.dO d:}t+,d: q| j&dIvr|d : }7dD|7d+< ||7 n2|d+ dDkrDt+,dh |j;	r
|j<	r
|*|j;k	r
d|$  krd:k	r
n n4t|di|$dj |d : }7dD|7d+< ||7 d:}q|'}-|(}.|-	r|.	sH| -| }|	 }/t|dk|/ |/d dJ }-|db |-k	rt|dldm|db dn|-do| d[|!d\|%dp ||  qt=|!dq}8t|d[|!dr|%ds|8dt|$du|# zrdvt>|" }9| j?|9}:|:
r|:dwt++ t@dx  k
rt|dydz|: |:};nX| jA|8d |%|8d: |d d{ |d d2 |8d| |8d_ |!d}};|;d~
rZ| j?jB|9|;tCd |;d}<t%|<}=tDd:D ]}>t8|=}=
qtt%|<dkr|=t%|-kr| jj't d=|  | jd d>},t|t d?d
 t(|| |#d@ t|d|<d|-d|,j t+,d: nt|d|<d|- ||d  W n   t|dt  Y n0 nttEjj|!|d d2 |%d}?tFjj||?6 dGd*d-dddd}@|@rt|d|@ t+,dh qt=|!dq}8|8d sdP}Adt>|! dt>|jH dt>|8d  d| }B| ItJd|B zdvt>|" }9| j?|9}:|:rL|:dwt++ t@dx  krLt|ddz|: |:};nP| jA|8d |%|8d: |d d{ |&|8d| |8d_ |!d};|;d~r| j?jB|9|;tCd |;d}<W n    t|dt  d}<Y n0 nd}<d}A|'pd}-t%|<}=tDd|D ]}>t8|=}=qt%|<dkr|=t%|-krzZ| jj't d=|  | jd d>},t|t d?d
 t(|| |#d@ t|d|<d|-d|,j W n@ tKy }C z&t|dt  |Ar|CW Y d }C~Cn
d }C~C0 0 t+,d: qntEjj|!|d d2 |%d6 }D|DstEjj|!|&|%d\}D}E|DjLs|"|D_L|DjMs(|d d|D_M|DjNsLdO|d dpFg |D_N|DjPsd|d d{|D_P|DjQs||d d|D_Q|8d |D_RtSS|8d T |D_U|<rt%|<|D_Vt34 |D_W|D1  |<rt8|<}F|FdkrtX|<d }G|G|-kr|G}F|<}Hnd}Fd}HtFjjY||D|F|Hd t|d| zxt%|<dkrd|jZ d|DjR d|< d|Dj[ d|Dj\ d|Dj] d^ddN}I|I|jHr~d|jH ndN7 }I| ItJd|I W n"   t_  t|dt  Y n0 d:}q|rDtDd_D ]t}J|s qD|d d }K| jjdt` dd|Ki| jd d}Lt| j d|L|Lj t| j t dd
 |dd  }q| a }M|M	 }|d }N|r|jbrt|d | jcdPd| jdd}Ont|d | jcdPdd}Og }P|j;r|jes|jfrt|d tg|j; }Q|OD ]}R|Rd- } |Rd1 }%|Rd2 }&|Rd0d}S|Qd |%  kr|Qd: krHn n(|&|Qd| krHd:|S  k rFdk sn |jfrjd:|S  k rhdk sn |P|R qt|dth|P nN| j&dIv r|OD ]&}R|Rd/pddkr|P|R qt|dth|P n|O}P|N|Pd d  }Ng }g }T|ND ]6}U|Ud. }!|Ud- } |Udd}"|Ud1d}V|Ud2d}W|Ud0d}S|UdE}X|Ud/}Y|Ud3}'|Ud4}(|Ud<dPu rz4ti|| |Spd|V|Wpd|!pd|X|Ypdd W n   t|dt  Y n0 | |vr|Xdkrxd}0| jjt d=|  |0| jd d}t|t dd
 zDz|	 }W nT   t|dt  | jjt d|0| jd d}|	 }t|t d	d
 Y n0 |d d d }Zd}[g }\|d D ]2}]|\|]d1  |]d1 |[kr|]d }Z|]d1 }[q| jjt d|Z dÝ| jd d>}t|t dĝd
 |	 }|d- } dT|  }0t|dd|[d|\d|0 t0| j| jd |0d t|t dUd
 W n   t|dt  Y n0 q*|Ud< rXdT|  }0t|d|0d| d|!d|Vd|Wd|UdE  t0| j| jd |0d}|	 }t|t dUd
 z^|d d d }^t|d| d|!dd|^ |UdE dFkr0t|d|U |T|  W q||  W n   Y n0 t+,d: q*|XdFkr|Xdv r| j&dIv s|jjrdT|  }0t|d|0d|  t0| j| jd |0d t+,d: t|t dUd
 nt|d| dp ||  q| j&dIv rz|"| j)* v r\d| ddڜgi}0t|dd|0 t0| j| jd t	k|0d t+,d: t|t dܝd
 nt|d|"d|YdӃ ||  n\|'}-|(}.|-r|.s| -| }|	 }/|/d dJ }-|/d dK }.| j.| dNd|-|.dO t+,d: q*|Ud1 }%dPr<|%dk r<t%|Ud2 dkrdT|  }0t|d|0d| d|Vd|W	 t0| j| jd |0}|	 }t|t dUd
 zV|d d d }^|^dkrzt|d n,t|d| d|!dd|^|%d]|Ud2 dӃ ||  W n   Y n0 t+,d: nx| j&dIv r||U d:}nR|'}-|(}.|-r|.s| -| }|	 }/|/d dJ }-|/d dK }.| j.| dNd|-|.dO t+,d: nd:}_|_rV||U d:}ndT|  }0t|d|0d t0| j| jd |0d}|	 }t|t dUd
 z.|d d d }^t|d|^ ||U d:}W n   Y n0 t+,d: nFdT|  }0t|d|0 t0| j| jd |0d}t|t dUd
 t+,d| q|Trddd |TD i}`t0| j| jd t	k|`d}at|d|a|aj t|t dd
 t+,d: |a	 d D ]$}b|bdСdkr||bd-  q|r&| jjdt` dddd |D d d i| jd d}Lt| j d|L|Lj t| j t dd
 g }t+,d: |!rg }ct|| j| j| j	 }d|dd* }e|r|th|edkr|tl| ||ed |D ]}| j&dv  r|d/pd}f|d}"|d3}'|d4}(|d1d5krd6})n|d1d7krd8})nd9})ztEjj|d.|d2|d1d}?tFjj||? dGd*d-dd}@|@r\t|d|@ t+,d| nH|)t%|d2d:k  }*t+,dh t=|d.dq}8t|d|d.dr|d1d|d2d|d{ds|8d|* d }2|*dv rt2jjt34 t3j5d_d` |*da6 }2|2r|2j9}<tEjj|d.|d2|d1d\}D}E|8d |D_RtSS|8d T |D_U|<rdt%|<|D_Vt34 |D_W|D1  |<rt8|<}F|<}Hnd}Fd}Ht|d| tFjjY||D|F|Hd n|'}-|(}.|-r|.s| -|d-}|	 }/|/d dJ }-dvt>|" }9| j?|9}:|:r4|:dwt++ t@dx  kr4t|ddz|: |:};n`| jA|8d |d1|8d: |d{|d2|8d| |8d_ |d.d};|;d~r| j?jB|9|;tCd |;d}<z,tEjj|d.|d2|d1d\}D}EW n4   tEjj|d.|d2|d1d6 }DY n0 |8d |D_RtSS|8d T |D_U|DjLs,|"|D_L|<rFt%|<|D_Vt34 |D_W|D1  t%|<}=tDd:D ]}>t8|=}=q^t%|<dkr~|=t%|-kr~tm|d|* d}g|fdSk rR|gtnd|* dk rRdT|d- }0t0| j| jd |0}1t|t dUd
 |1	 di gd dVdPdu rRt|ddX|d.dY|f to|d|* d|gd:  |1  W qt|d|<d|-dӃ ||d- W qn&|<rt8|<}F|FdkrtX|<d }G|G|-kr|G}F|<}Hnd}Fd}HtFjjY||D|F|Hd t|d |<d|-d|H zt%|<dk r|d|jZ d|DjR d|< d|Dj[ d|Dj\ d|Dj] d|d0 d	^ddN}I|I|jH rhd|jH ndN7 }I| ItJd|I W n$   t|d
t  t_  Y n0 W n   t|dt  Y n0 t|d| |c|d- t+,d| nV| j&d;v  rnH| p|d.|d-dN|d2|d1|d{|d+dDk t+,d_ qtDd_D ]}J|c!sb !qddd |cd d D i}ht0| j| jd t	k|hd}it| j d|i|ij t| j t dd
 |cdd  }c!qR|"rZtDd_D ]v}J|!s "qZ|d d }K| jjdt` dd|Ki| jd d}Lt| j d|L|Lj t| j t dd
 |dd  }!qz| q  W n$   t|dt  t_  Y n0 |"rt|| j| j| j	 }j| r|jd"pd n0|"r|	 }j| r|jd"pd nd*g i}jt|d ddV|jd*dS (  Nz#sell items, managing items from webr   	SBCSolverz!sell items , sell club players : z check transfer list : z update_trade_pile : z check_players_pick : z/playerpicks/pendingz/item/select_misc_2r\   linkZavailablePicksitemDatac                 S   s   | d S )NratingrX   )xrX   rX   rY   <lambda>k       zsell_items.<locals>.<lambda>TkeyreverseZitemIds
resourceIdz/playerpicks/item/select/v2rT   jsonrP   z/item/select_misc_v2zmisc select response :   z exception in get_players_pick : zcant save sold items : rN   r\   z>how many current_items exists for one account?? , exception : Z3max_saved_quick_sell_in_club_bronze0_tradable_itemsnameZ3max_saved_quick_sell_in_club_bronze1_tradable_itemsZ3max_saved_quick_sell_in_club_silver0_tradable_itemsZ3max_saved_quick_sell_in_club_silver1_tradable_itemsZ1max_saved_quick_sell_in_club_gold0_tradable_itemsZ1max_saved_quick_sell_in_club_gold1_tradable_items)workeris_done)sbc_process
sleep_timez
Hub - Home)r\   r<   
persona_id
nucleus_idsourcesidcounterauctionInfo
tradeStateclosedidassetIddiscardValuelastSalePricerb   rareflagmarketDataMinPriceZmarketDataMaxPriceJ   gold@   silverbronze   )console_webconsole_web_pcuntradeablez/item/rO   z/item/%s)item_iddiscard_valuez5how untradable item goes to transfer list? remove it.z item : z quick sell result : expiredZitemTypeplayerzexpired , quick sell this itemz quick sell result 6 : )consoler   r   ZminPriceZmaxPricez"sell this item with min and max : z , min and max :  )start_pricebuy_now_priceFz.bronze and silver expired item , check data : A   X  &{"itemData":[{"id":%s,"pile":"club"}]}/item/pile_clubsuccessz?low level item need to quick sell but for now send it to club 1z , asset id : z discard value : z0transfer list low level player card : club id = zasset id = z	rating = z rare = z will quick sell    hours)create_time__gtro   ZstartingBidbuyNowPricezAitem expired with min and max and can`t send club , quick sell : z , move result : z , sell resp : z:item expired with min and max and not sold , quick sell :       ?z,console trade active and item is bought for z so dont quick sellzitem price limits = z"player card start bid == min pricezstart price : zmin price :z
club id = zwill quick sell)player_asset_idzrate = zcard info = z last sale price = z discard value = Zfutbin_player_local_time_stamp   zAlog 2, this item was selected from futbin less than one hour ago  , so use old data again : teamid   )player_clubplayer_rareplayer_fplayer_lr   update_time_stamptimeoutpricezquick sell this item 1 price = z and min price = z , quick sell result 3 : z,will not quick sell this item player price =z and min price =zerror 1 in sell items : )asset_idrarerb   )r\   player_cardr   r   Zplayer_card__ratingZplayer_card__rarez"this player already in database : z/card not found. update player json. asset id = z , console = z , player name = z ,  account = {   zAlog 3, this item was selected from futbin less than one hour ago )player_nameplayer_rateplayer_known_asr   r   r   r   r   z
error 125 zquick sell this item 3 price = z , quick sell resp 4 : zerror player not found : preferredPosition,possiblePositionsnationi N  ?)r\   r   buy_start_pricer   z=player card found in transfer list and will not quick sell : i  zF
                                            Congratulations. Account zP Earned a good player
                                            player_name = z<
                                            player_price = z<
                                            player_asset = zD
                                            player_rare_and_rate = z, z-
                                            z  z
console name = zerror 131 :    zhttps://z/ut/delete/game/fc25/itemZitemIdz#remove multiple duplicate items 4 :z/item/multiple_quick_sellzsell club players without squad)filter_bronze	tradeableplayers_listzsell club players with squad)r   r   z4want sell club players but some of them is for tradezsellable_club_items :   zsellable_club_items 2: d   )r   	buy_pricerb   r   r   	item_typer   zsave selling items error : miscz{"apply":[]}datarP   z/item/select_misczerror 109 : z/playerpicks/item/z/selectz/item/select_misc_3zmisc item found .send to clubzpick player z in zdata = z,misc item.no need to send to club , error 36zdata =z+ untradable item. send to club , club id : z asset_id : z
 rating : z rare : z type reasonzduplicate item , club id = z asset id = z will quick sellz - reason : z(item will moved to storage or quick sell)contractZhealthzA contract or heal found and need keep it.item send to club. id : z#contract or heal found , club id = trader|   Zpilez.useful item found , item send to transfer listz/item/pile_tradez8none player item , quick sell this item , resource_id : z , quick sell price zA unassign bronze and silver common item. send to club 2 club id: zInvalid deckzitem already is in clubz5unassign low level duplicate player card : club id = z
 rating = z
 reason = zneed this one for sbc , data = zitem send to clubzduplicate item 2, reason : z6item in current_sbc_club_items , send to club , data =c                 S   s   g | ]}|d dqS )storager   rX   ).0ZieerX   rX   rY   
<listcomp>  s   zsell_items.<locals>.<listcomp>z move multiple to storage result z/item/multiple_pile_storagezDestination Fullc                 S   s   g | ]}|qS rX   rX   )r   ZieeerX   rX   rY   r   
  re   z$remove multiple duplicate items 2 : c   )auction_info)r   r   z$this player already in database 2 : z!item price limits 2 = asset id = zrare = z
team_id = z card_type_name = )bronze1silver0silver1gold0z/good price not found , list with min and max : zBlog 1 , this item was selected from futbin less than one hour ago Zclub_Z_tradable_itemsZm_s_q_s_club_z?low level item need to quick sell but for now send it to club 2zquick sell this item 4 price =z+will not quick sell this item player price=z and min price= z buy now price = zCongratulations. Account zX Earned a good player
                                                    player_name = zD
                                                    player_price = zD
                                                    player_asset = zL
                                                    player_rare_and_rate = zC
                                                    sell_items_2, z5
                                                    zerror 59 : zerror 35z"item will move to transfer list , c                 S   s   g | ]}|d dqS )r   r   rX   r   ZiierX   rX   rY   r     re   zput sale multiple items:z/item/multiple_pile_tradez$remove multiple duplicate items 3 : zexception error 133 : creditszend of sell items)status_boolstatusZtrade_pile_auction)sset_sub_logsbc.sbc_solverr^   refresh_from_db	new_printr<   getr2   save_account_requestrk   sortedpostmain_dictext	traceback
format_excget_trade_pilerU   save_sold_itemsrZ   r   objectsget_or_createfilterfirstr   	int_valuer&   r'   appendclub_idpin_events_creatorr\   rt   ru   rw   Zget_pin_events_counterintrunning_platformrS   save_quick_sold_itemZuseful_itemsvaluestimesleepZget_price_limitZitem_put_for_saleclub_bronze0_tradable_itemsput_item_for_salesaver/   r   	localtime	timedeltalast	bid_priceget_previous_price_grade
sell_pricecopyconsole_trade_one_qualityrun_console_trade_oneget_player_data_by_asset_idstrplayers_log_cacher$   Z$get_player_price_from_futbin_web_appsetr#   ranger   r   select_relatedr   send_messagebot	Exceptionresource_idpositionalternate_positionsjointeamr   ro   	unidecodelowerunicode_namer   update_timeget_round_pricecreate	user_namer   r   rb   replacer   r1   Z	get_itemsuse_special_squadZget_bronze_club_playersZspecial_squad_players_buildis_running_console_trade_onerun_console_invest_trade_oner.   lensave_selling_itemsorder_active_squaddumps%manage_transfer_list_full_destinationgetattrevalsetattrZsell_processZsave_account_itemsZupdate_credit)kparent_instancer[   r\   Zsell_club_playersZcheck_transfer_listZupdate_trade_pileZcheck_players_pickr^   Zget_players_pickZget_players_pick_jsonZsorted_playersZdata_item_idsrW   Ztrade_pile_respZfifa_account_current_itemsccZ#m_s_q_s_club_bronze0_tradable_itemsZ#m_s_q_s_club_bronze1_tradable_itemsZ#m_s_q_s_club_silver0_tradable_itemsZ#m_s_q_s_club_silver1_tradable_itemsZ!m_s_q_s_club_gold0_tradable_itemsZ!m_s_q_s_club_gold1_tradable_itemsZcurrent_sbc_club_itemsZcurrent_sbc_processZ
club_itemsitemZ
items_listZ
need_sleepZquick_sell_ids_list	json_resptradesr   r   r   r  r   Zlast_sale_price_1rb   Z	rare_flagZmarket_data_min_priceZmarket_data_max_priceZcard_type_first_nameZcard_type_nameZresp3resp2	min_price	max_priceZjs_respr   move_resultZlast_trade_qualityZitem_min_priceZitem_max_priceZitem_bid_priceZitem_buy_priceZ
trade_copyZ	card_infoplayer_cache_namefutbin_datafutbin_resultr   Z
back_stepsiZsaved_player_cardsZsaved_cardsZplayer_data_foundZtext2Zplayer_found_errorr   createdr   Znew_start_pricer   r   _batchZremove_multiple_itemsitemsZ
unass_dataZtradeable_club_itemsZsellable_club_itemsZquality_data_2Znnttulast_sale_priceZstorage_quick_sell_ids_listZunassZitem_ratingZitem_rare_flagr   Zdiscard_value2Zres_idZ
res_ratingZplayers_ratingZplayer_pick_itemr   ZsellZsales_data_2Zmove_to_storage_resultZdd_itemZtransfer_list_ids_listget_trade_pile_jsonZauction_info_tradesZdiscard_value_3Zfifa_account_field_itemsZ
items_dataZmultiple_put_sale_resultZget_trade_pile_json_1rX   rX   rY   
sell_itemsU   sR   











$	



$







"

	



















$











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









r1  rm   c                 C   s   ddl m} | } t|d |d u rBt|| j| j| j }|d }d}t|dd d}|D ]v}|d d	 }d
| }	t	| j| jd |	d}
t
|t dd |
 di gd dddu r|d7 }|dkrZ qqZd S )Nr   r]   r  ry   c                 S   s   | d d S )Nra   rb   rX   drX   rX   rY   rd   0  re   z7manage_transfer_list_full_destination.<locals>.<lambda>rg   ra   r|   r   rT   r   r_   r   FTr   
   )r   r^   r   r   r<   r   rU   rk   r   r   r   r2   r   )r  r\   r   r^   r0  Zsuccess_counterZsorted_auction_infoZ
trade_itemr   r   r&  rX   rX   rY   r  '  s0    
"r  c                 C   sH   ddddt ddddtd	
}| jt d
|d | jt d
||d}|S )Nr=   r>   r?   r@   rA   PUTrC   rD   rE   z/itemrO   r   r1   rQ   rR   r2   put)r<   rT   r   rU   rV   rW   rX   rX   rY   r   @  s&    r   c                 C   sH   ddddt ddddtd	
}| jt d
|d | jt d
||d}|S )Nr=   r>   r?   r@   rA   r6  rC   rD   rE   z/item/resourcerO   r   r7  )r<   rT   r   rV   rW   rX   rX   rY   put_consumable_for_saleU  s&    r9  r\   r<   rP   c                 C   s*   |j t d|d}t| t dd |S )Nz/sqbt/user/hubrO   r_   )r   r2   r   )r\   r<   rP   rW   rX   rX   rY   get_squad_battle_dataj  s    r;  )r\   r<   c                 C   sx   t | ||d}| }|dd}|dd}|dd}|dd}tjj| |d\}	}
||	_||	_||	_|		  d S )Nr:  ZsqbtEventIdr   scoreZuserTierLevelZgamesPlayed)r\   event_id)
r;  rk   r   r-   r   r   r<  user_tier_levelgames_playedr   )r\   r<   rP   rW   r!  r=  r<  r>  Zgame_playedZ	sqbt_datar+  rX   rX   rY    update_account_squad_battle_datas  s    
r@  )r\   r<   r   c                 C   sH   |j t d|d d tt d| ||d d}t| t dd |S )N
/tradepilerV   rO   rT   r:  r_   rR   r2   	force_getr   )r\   r<   r   rU   rW   rX   rX   rY   r     s    r   )r\   r<   rT   c                 C   s,   t t d| ||d}t| t dd |S )Nz/storagepile?skuMode=FUTr:  z/storagepiler_   )rC  r2   r   )r\   r<   rT   rW   rX   rX   rY   get_storage_pile  s    rD  )r\   r<   rV   rT   c                 C   sD   |r|j t d|d tt d| ||d}t| t dd |S )NrA  rO   r:  r_   rB  r\   r<   rV   rT   rW   rX   rX   rY   get_trade_pile_2  s     rF  c                 C   s.   |j t d|d tt d| ||d}|S )N
/watchlistrO   r:  )rR   r2   rC  rE  rX   rX   rY   get_watchlist  s    rH  c                 C   sT   |d u ri }|du r t |d|  z|j| |dW S    t |dt  Y q 0 q d S )NTzforce get link : rO   zforce get error : )r   r   r   r   )r`   r\   r<   rP   Zsave_logrX   rX   rY   rC    s    rC  c                 C   sN   |d u ri }t || | z|j| ||dW S    t |dt  Y q0 qd S )NrO   zforce post error : )r   r   r   r   )r`   r   r\   r<   rP   rX   rX   rY   
force_post  s    rI  	print_logc                 O   sf  | dg }|rt|ts$t|trg }|D ]\}d}t|tsHt|trd|D ]}|t|d 7 }qLn|t|d 7 }|t| j|d q,tj	dj
|d nd}|D ]}|t|d 7 }q| D ]$\}}	|t|d t|	 d 7 }qz(tdt| j|t  d	 W nL ty` }
 z2td
t| j|t  d	d|
 W Y d }
~
n
d }
~
0 0 d S )N	bulk_listr    )fifa_account_iddescriptionlogs_pgbouncer)objsz : 
print_log2)rM  rN  log_timezcant save logs : z	 error : )r   
isinstancetuplelistr   r   r   r|   r   usingbulk_creater.  print_cache2rpushrk   r  r   r   	isoformatr  print)r\   argskwargsrK  rP  r   r   r*  rg   value
save_errorrX   rX   rY   r     s4    

r   )r[   c                 C   sL   t   tjj| ddd }|r6t |_|	  tjj
| |dd d S )NFrp   main_jobr|   rp   titlera  r   r(   r   r   order_byr   r   r   end_timer   r  )r[   rc  last_subrX   rX   rY   r      s    
r   c                 C   s|   t   tjj| ddd }|r6t |_|	  tjj| ddd }|rft |_|	  tjj
| |dd d S )NFr`  r|   Trb  rd  )r[   rc  rg  Z	last_mainrX   rX   rY   set_main_log	  s    

rh  c                 C   sb  t   |   g }|r&|| _|d |r>t | _|d | j|d zb|rtt	j
tdd"}|tt  W d    n1 s0    Y  tdtt  W n   t| jdt  Y n0 z|| jjr:tjj| jjd\}}| j|_| |_|d	 |d
 |r||_|r,t |_|j|d nt| jd W n   td Y n0 d S )Nr   status_change_timeupdate_fieldszstatus_update_time.txtwZstatus_update_timez#cant write in status update time , r   r\   r[   z!no console found to set status , zcant set status)r   r   r   r   r   r   ri  r   openospathr	  r   writer   r   console_worker_cacher   r   r\   r   r   r   r   r   r   r[   r[  )r[   r   r  rk  Zstatus_time_fileconsole_last_statusr+  rX   rX   rY   set_sbc_status  s@    


0



rt  rm  c                 C   sl   zRg }t jj| d\}}|r,||_|d |rDt |_|d |j|d W n   t	d Y n0 d S )Nrm  r   ri  rj  zcant set status 2)
r   r   r   r   r   r   r   ri  r   r[  )r   r   r  rk  rs  r+  rX   rX   rY   set_console_status;  s    


ru  )console_name_listc                 C   s`   zFi }t jj| d}|r ||d< |r0t |d< |rD|jf i | W n   td Y n0 d S )N)console__name__inr   ri  zcant set status 3)r   r   r   r   r   updater[  )rv  r   r  rk  rs  rX   rX   rY   set_console_list_statusJ  s    ry  r_   c                 C   sf   |st   }n| }z tdt| j||d W n&   tdt| j||d Y n0 d S )Nrequest_log2)rM  r`   create_timezcant save requests : )	r   r   rZ  rX  rY  rk   r  r|   r[  )r\   r`   r{  	save_timerX   rX   rY   r   X  s    

r   c                 C   sH   ddd|  ddf}t j|dd }| dd }| |  S )	NZTASKLISTz/FIzimagename eq %szUSERNAME eq %username%T)shellz
)
subprocesscheck_outputdecodestripsplitr  
startswith)Zprocess_namecalloutput	last_linerX   rX   rY   process_exists|  s    
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   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   )A1234567890qrl  ertyur*  opasr3  fghjkl'zrc   cvbnmr   .?!@#$%&()-r,  =+\;:"*/<>[]|~^)r  r  r  r  r  r  r  r  r  r  r  r  r  screen_shot_tmp.jpgc                 C   s   t  }| }|| d S N)r   Zgrabr   )Z
image_namesnapshotZ	save_pathrX   rX   rY   get_screen_shot  s    r  r   c           	      C   s   t | }t |}t |t j}t |t j}|jd d d \}}t ||t j}t||k}zR|d d dksxJ |d d dksJ |d d dkr|d d dkrW dS W n   Y dS 0 d S )Nr~  r   r   TF)	cv2imreadcvtColorCOLOR_BGR2GRAYshapematchTemplateTM_CCOEFF_NORMEDnpwhere)	small_image_namelarge_image_name	thresholdZsmall_imageZlarge_imagerl  r  reslocrX   rX   rY   	has_image  s    

 
r  c                 C   sT   t jtd|  d}t |}t  |D ]$}tt j||dr*|d   S q*d S )Nzutils/z_keyboards/r  r   )ro  rp  r	  r   listdirr  r  )platformZkeyboards_pathZkeyboard_charactersZactive_characterrX   rX   rY   get_current_active_character  s    
r  r  c                    s  |du r j   ttdp |}d}|D ]R}|d7 }|dkrN j   q,t| }|d |d  }	|d |d k r fddt|d |d  D  n" fddt|d |d  D  |	dkrt|	D ]}
 j   qn&|	dk r
tt	|	D ]}
 j 
  q| r j   |d	 dkr6 j    j   |d	 dkrr j   |rrtd
  j   t| }q,d S )NTxboxsr   r   rL  c                    s   g | ]} j  qS rX   ps4_buttonsdownr   r*  r  rX   rY   r     re   z%enter_world_xboxs.<locals>.<listcomp>c                    s   g | ]} j  qS rX   r  upr  r  rX   rY   r     re   r   r   )r  l3xboxs_keyboardr   r  triangler  r  rightabsleftisupperl2crossr   r   )r  english_textinitial_characterinitial_upperZ	has_emojicurrent_charactercount	characterselect_character
result_numr*  rX   r  rY   enter_world_xboxs  s>    


$"







r  r  c           
         sR  t |}d}|D ]8}|d7 }|dkr4 j  q|dkrl fddtdD   j  d|d dg}qt | }|d |d  }|d |d k r fddt|d |d  D  n" fd	dt|d |d  D  |dkrt|D ]}	 jjd
d qn,|dk r4tt|D ]}	 jj	d
d q j  t | }qd S )Nr   r   rL  r  c                    s   g | ]} j jd dqS )r   Zsleep_afterr  r  r  rX   rY   r     re   z0enter_double_check_code_xbox.<locals>.<listcomp>r   c                    s   g | ]} j jd dqS r   r  r  r  r  rX   rY   r     re   c                    s   g | ]} j jd dqS r  r  r  r  rX   rY   r     re   r   r  )
double_check_keyboardr   r  r  r  r  r  r  r  r  )
r  r  r  r  r  r  r  r  r  r*  rX   r  rY   enter_double_check_code_xbox  s6    




"


r  c           	      C   s   | d }d } } } } }}t |t |krp| d d | d  }| dd}| d }| d }| d }| d }||||||fS )Nr|   r   r  rL  r  r  r  )r   r   )	r   r   temp_id_nameZplayer_full_nameplayer_cr   r   player_r	player_idrX   rX   rY   json_file_check_2  s    r  c                 C   s   | d   }| d   }z| d   }W n   d}Y n0 | d }d}t|t|kr~|rr|rl|d | }q~|}n|d | }|S )Nr  r  r  r   r|   rL  )r  r   )r   r   need_first_nameZtemp_f_nameZtemp_l_nameZtemp_c_namer  r   rX   rX   rY   json_file_check&  s    
r  r   c           
      C   s   t tjtddd}| }|  t|}d}d}d}d}d}d}|d D ]2}	t	|	| \}}}}}}|rP||||||f  S qP|s|d D ]2}	t	|	| \}}}}}}|r||||||f  S q||||||fS )Nutils/players.jsonutf-8encodingr   LegendsPlayersPlayers)
rn  ro  rp  r	  r   readcloserk   loadsr  )
r   players_fileplayers_datar   r  r   r   r   r  r   rX   rX   rY   r   @  s(    
r   c                 C   s   t tjtddd}| }|  t|}d}|d D ]}t	|| |d}|r<|  S q<|s|d D ]}t	|| |d}|rh|  S qh|S )Nr  r  r  r   r	  )r  r
  )
rn  ro  rp  r	  r   r  r  rk   r  r  )r   r  r  r  r   r   rX   rX   rY   get_player_fifa_name_by_idY  s    


r  c                  C   sH   t tjtddd} t|  W  d    S 1 s:0    Y  d S )Nzutils/teamlinks.jsonr  r  )rn  ro  rp  r	  r   rk   r  r  )Z
teams_filerX   rX   rY   get_team_links_from_filem  s    r  c                 C   sd   ddddt ddddtd	
}|jt d
| |d |jt d
| |d}t| dt d
|  |S )Nr=   r>   r?   r@   rA   rB   rC   rD   rE   z/watchlist?tradeId=rO   zclear outbid = )r1   rQ   rR   r2   rS   r   )r\   r<   rP   Z	trade_idsrV   rW   rX   rX   rY   clear_outbidr  s.    r  c                 C   s   |d u ri }t jj| d}t|d| |jt d|d}| }|d }	|	}
t||||d}| }|dg }|rd}|D ]}|d	 d
kr~||d 7 }q~||d d  }|
| }
|rd}|D ]}|d	 dkr||d 7 }q||d d  }|
| }
|	|
dS )N)r|   zget credit : rG  rO   r   )rV   rT   ry   r   rz   activer   r  r   r   )r   Zplus_credit)r   r   r   r   r2   rk   rF  )Z
account_idr<   rT   rV   Zactive_tradesZexpire_tradesr\   rW   r!  current_creditcreditr"  Zsum_buy_nowr   Zsum_buy_now_2rX   rX   rY   get_credit_web  s4    r  c           '   
   C   sT  t | d|d|d|d|	 |r|rt | d t|}|t|d |jt d|d}t| t d	d
 |	 }|d }	|d }
|d d d }|d }|D ]}d}|d }t
jjt|d |	d }|r|j}nt
jjt|d |	d |d |
k r|dddkrt d| }|r6d|d|dgi}nd|ddgi}|j|t	||d}t| t d| d| d
 t | d|d|j td q|t d| |rPt | d  |jt d!|d}|jt d"|d}|jt d#|d}t| t d#d
 |	 }|D ]:}|d$ }|d }|d% }|d& D ]}|d' }|d( }|d) }|d*g }|d+d}|d,d} t|d-kr8d.}!|D ] }"|"d/d0krd1}! qq|!s|dkr8t d2| d3| }#t| |#d
 |j|#|d}$t | d4|d5|d6|$j t d7| d8| }%|j|%|d}&t | d9|d5|d:|&j td q8qd S );Nz(clim_lvlup_objectives_milestones header z
 fcas_sid z clim_lvlup z clim_objectives_milestones zclim level up rewards)rJ   zX-Fc-Sidz/user/seasonrO   z/scmp/campaign?type=activer_   ro   Z	currentXPZpassesr   levelsZseasonIdlevelZ
completeXP)xp_thresholdrc  r   r   z#/user/season/reward/claim?seasonId=ZclaimRewardRequestDtosZSEASON)sourceIdrv   r^  )r  rv   r   r   zget season object : z -- resp : z/season/auto/grant?type=ALLzclim objectives and milestonez/scmp/campaign/rewards/allz#/scmp/learning/campaign/rewards/allz/scmp/objective/categories/allZ
categoryIdtypeZ
groupsListZgroupIdZ
groupStaterc  Z
objectivesZtimesCompletedrepeatsr   FstateZ	COMPLETEDTz/scmp/learning/category/z/group/zneed to clime objective : z from z status code : z/scmp/campaign/group/z/rewards/all?groupType=zclaiming objective : z clime status : )r   r   deepcopyrx  r7   r   r6   r   r2   rk   r   r   r   r   r   	option_idr   r   r  r   r   r   r8  status_code)'r\   r<   rT   Zfcas_sidZ
clim_lvlupZclim_objectives_milestonesZcopy_headerrW   Zlevelup_rewardsZseason_titleZ
current_xpZrewardsZ	season_idZrewardZselect_option_idZcliam_levelZseason_progress_special_optionZclaim_reward_linkZ
claim_dataZresp4r#  Zobjectives_milestonscategoryZcategory_idZcategory_nameZcategory_typeZ
group_itemgroup_idZgroup_stateZgroup_titleZgroup_objectivesZgroup_times_completedZgroup_repeatsZneed_to_clime_allZobject_itemZurl_2Zresp6Zurl_3Zresp7rX   rX   rY    clim_lvlup_objectives_milestones  s    





(


r#  c                 C   sT   t | } | dkr| d S | dkr(| d S | dkr8| d S | dkrH| d S | d S d S 	Nrl   2   '  r   P     順 r   r   r   rX   rX   rY   r   p  s    r   c                 C   sT   t | } | dk r| d S | dk r(| d S | dk r8| d S | dk rH| d S | d S d S r$  r*  r+  rX   rX   rY   get_next_price_grade~  s    r,  c                 C   s   t | } | dk r$| d }t | | S | dk r@| d }t | | S | dk r\| d }t | | S | dk rx| d }t | | S | d }t | | S d S r$  r*  r   diffrX   rX   rY   r    s    r  c                 C   s   t | } | dkr4| d }|dkr$d}t | d|  S | dkr`| d }|dkrPd}t | d|  S | dkr| d }|dkr|d}t | d|  S | dkr| d }|dkrd}t | d|  S | d	 }|dkrd	}t | d	|  S d S )
Nr)  rl   r   r'  r   r&  r(  r   r%  r*  r-  rX   rX   rY   get_round_top_price  s2    r/  c                 C   s   t t| | jdS )Nr4  )maxr   r  )lstrX   rX   rY   most_common  s    r2  c                   @   s.   e Zd ZddddddZdd Zd	d
 ZdS )ThreadWithReturnValueNrX   F)daemonraise_on_exceptionc             	   C   s.   t j| ||||||d d | _d | _|| _d S )N)r4  )r   __init___returnexcr5  )selfgrouptargetro   r\  r]  r4  r5  rX   rX   rY   r6    s    zThreadWithReturnValue.__init__c              
   C   sT   | j d urPz| j | ji | j| _W n* tyN } z|| _W Y d }~n
d }~0 0 d S r  )_target_args_kwargsr7  BaseExceptionr8  )r9  r  rX   rX   rY   run  s
    
zThreadWithReturnValue.runc                 C   s"   t |  | jr| jr| j| jS r  )r   r	  r8  r5  r7  )r9  rX   rX   rY   r	    s    
zThreadWithReturnValue.join)NNNrX   N)__name__
__module____qualname__r6  r@  r	  rX   rX   rX   rY   r3    s
   r3  r   c                 C   s  d}d}d}d}g }t dD ]J}	ztj|dd}
W  qhW q   |	dkrVtj|dd}
td|	 Y q0 qz|
| | W nd ty } zLdt|v rd d t d t|tt	
 |dW  Y d }~S |W Y d }~n
d }~0 0 |
d	\}}tt d
t|d d
 }|D ]}|}z|
t|d\}}W n ty } zdt|v sdt|v sdt|v sdt|v sdt|v rd d t d t|tt	
 |dW  Y d }~  S |W Y d }~n
d }~0 0 |D ]}t|trt|d
 }t|d d \}}t|tr||}t|dd \}}t|trJ||}td}|t||}t|d
 }|d }|d }| rd}| D ] }| dkr|| 7 }qn| }q|||||d |t|kr
 qq
|
   |
!  |||||dS )Nr   r  r   r   r  z#cant connect to imap , try again : zLOGIN failed)subjectfromr   bodyerrorr   emails_listZInboxr   r   z(RFC822)zInvalid messagesetz$The specified message set is invalidz'User is authenticated but not connectedzgetaddrinfo failedSubjectDatezAsia/TehranrE  rD  z
text/plain)rD  rE  r   rF  )rD  rE  r   rF  rH  )"r  imaplibZ	IMAP4_SSLr[  loginr  r   r   r   r   r   selectreversedr   fetchrS  rT  emailmessage_from_bytesr   bytesr  r   pytz	normalizer   
astimezoneis_multipartget_payloadget_content_typer   r  r  logout)Z	imap_userZ	imap_passZ	imap_hostZemail_countZmail_subjectZ	mail_fromZmessage_timeZmail_contentrH  iiiimapZerror2r   Zmessages_listZmessage_numbersZ
email_itemmessagesresultmsgrG  responserD  r  Z
email_timeZlocaltzmessagepartrX   rX   rY   get_last_email  s    














rb  c                 C   sb   | j dkr"d}t| t| n<| j dv r^tjd}ttj|d ttj|d d S )Npsz;"C:\Program Files (x86)\Sony\PS Remote Play\RemotePlay.exe")r  xbox360z	~/DesktopzXbox.lnk)r  r[  ro  systemrp  
expanduserr	  )r\   Zsystem_orderZdesktoprX   rX   rY   focus_on_psG	  s    

rg  c                 C   s   t |}t |t j}t | d}t ||t j}t |\}}}}	|jd d \}
}|	}|d | |d f}|d |d |
 f}|d | |d |
 f}||||||
dS )Nr   r   r   )top_left	top_rightbottom_leftbottom_rightwidthheight)r  r  r  r  r  r  Z	minMaxLocr  )r  r  imageZgraytemplater]  min_valmax_valZmin_locZmax_locrm  rl  rh  ri  rj  rk  rX   rX   rY   get_image_positionU	  s    
rr  c                  C   s   zt d } W n   tdt  Y d S 0 ztdd}W n2   tdd}|d |  tdd}Y n0 |	 }t
| dt
|krtd d	S d S )
Nz6http://142.132.177.244:8000/accounts/get-last-version/zcan`t get version : zversion.txtr  rl  r  numberzneed to update programzneed update bot)requestsr   rk   r[  r   r   rn  rq  r  r  r   )Zprogram_versionZcurrent_versiondefault_versionrX   rX   rY   check_bot_versionl	  s     

rv  c                 C   s`   | rt |  }nt}| 2}|d | d p4d}|  W d    n1 sR0    Y  |S )Nz&select count(*) from pg_stat_activity;r   )r
   r	   cursorexecutefetchoner  )database_nameZconnection_objrw  Zcurrent_connections_countrX   rX   rY   #get_current_connections_to_database	  s    


&r{  xbsxc                 C   s   t tj  d d d }dddtdddd	td
dd}	d|ddd|d|dt ||ddt|iddgddddd|dtd
|dd}
|jtt	
|
|	d}t| d|
d |d!|j |
S )"NZapplication/jsonrC   rD   r=   r>   r?   r@   Zeaskuz1.1)zContent-TyperK   rL   rM   rF   rG   rH   rI   zx-ea-game-idzx-ea-game-id-typez	x-ea-taxvG)ZnetworkAccessZservice_platclientr   menuZpersonaZ	page_viewZnucleus)r  ZpidtpidZts_eventenZpidm)r   Zpgidr  corer   Tzen-USwebprodz25.0.0)custometeventsgidZis_sessr  platrelrw   ZtaxvtidZtidtZts_postr  r   zpin event , data : z
 result : z text : )r   datetimeutcnowrZ  rQ   r4   r   r   r3   rk   r  r   r   )r\   r<   rv   rt   ru   rw   r  rx   Znow_timerT   Zexample_dataZ
pin_resultrX   rX   rY   r   	  sZ    %r   c                 C   s8  t   tjj| ||d tt}t|d`}t|d}|rJ|	d|i dt d}t
j||d|id}	t| d	|	jd
|	j W d    n1 s0    Y  | jtjjdgdvr4tjj| t tjdd |d dkr4|dkr4d}
td t|d }|j|
||d W d    n1 s*0    Y  |	S )N)r\   message_typer   rb)chat_idcaptionmessage_thread_idzhttps://api.telegram.org/botz
/sendPhotophoto)r   fileszsend photo result :  --    )id__in   r   )r\   Zcreate_time__gter   r   rG  z-1001802370673r   )r  r  r  )r   r   r   r  telepotBotr   rn  r    rx  rt  r   r   r   r   creatordjango_userr   r   r   r   r  r   r   Z	sendPhoto)r\   Z
photo_pathr  r  r  ZtelbotZ
photo_filer   Zsend_photo_urlZsend_photo_resultr  rX   rX   rY   telegram_send_photo	  sH    

"


0r  c                 C   s   | | d | |  d S )N皙?r   rX   )Zcurrent_pricer$  rX   rX   rY   calculate_player_tax	  s    r  )r\   deactive_mulec           <      C   sr  t |d|d|jd| |dkr"i S tjjddj}tjjddj}|jdu rd	d l}|dkrbi S tj	d
dddd}	|	dj
}
td|
d}td |	jd|d|j|jddd}td |	d}td|j
d}td|j
}|r|d}nt |d td i S zD|	d}td|j
d}|  t|d d |_|  W n   t |dt  Y n0 td |jdd d!d"d"d#d$d%d&d'd(d)d*d+}|  |  |d,t| d-  |d. |d/t| d-  i }g }tdD ]}|d d	krH|d0 t |d1 |  |jdu rH|  S z| }W n8 |jy   t |d2 t||||d d3 Y   S 0 t|d4rt !|dd  }|d d5 }|d6r|d7 }|d8 }|d9 }|d: }|d; }|d< }|d= }|d> } |d? }!|d@ }"|dA }#t"|d; t"|dA  }$|dB }%|dC }&|dD }'|dE }(|dF })|dG }*|dH }+|d6 },|dI }-|dJ }.|,||dK|v rt |dL| qt#jj$t%t%dMdNt%d dNB t%t%dMdOt%d dOB @ |&dP}/|/rt |dQ|&|/ qt"||k r t |dR|dS| qz| j&|,dTdU}0|0dV}1W n4   t |dWt d dX  tdT Y qY n0 t"|1dY t"|dY  }2t"|2| |1 |2t"| t"|  dZ }3|3|krt |d[|3dS| |'|,||dK qt |d\|3 ||k r|.d]kr|)d^krt ||.d_|d_|&d`|)dadb|" 
 |	j(j)}4|4*dc|i |	jdb|" dFd^i|4dd}t |de|j+|j
 z|  }5W n   i }5Y n0 |j+dfkr|5dJdgkr||	|"|,| |!|1|&|%|#|$|||+|-|dh} qnt |di|j+|j
 td q|,  |S zt |dj tj	d
dddd}	|	dj
}
td|
d}td |	jd|d|j|jddd}|	d}td|j
d}|  t|d d |_|  W n   t |dkt  Y n0 i }t-t.dl/ }6t0dmt|j1 t|6 t|j2 3 4 }7tdD ]X}t5jdnt|j1dm|6|7||dodp}8|8  }9|8  dqdfkr|9dr }"|9ds },|9dt }:|9du }&|9dv };|9dw }-|9dx }|9dy }|:|v rt |dz|:d{| q|9d |"|,|:|&|;t6j67t"|9d| t6j68  9 t"|9d| |-||d}} qjn`|9dqd~kr$t |d|9 td n8|9dqdkrBt |d|9 n|dT d	kr\t |d|9 td q|S d S )Nz#getting card from api with price :  mule : z login_again_counter : r  Z6discharge_with_mode2_mydgn_lowest_target_buy_now_pricern    discharge_with_mode2_highest_taxFr   firefoxlinuxbrowserr  Zmobiler  zhttps://www.mydgn.com/zname="_token" value="(.+)">r   r   zhttps://www.mydgn.com/loginal  eyJjbGllbnQiOnsidHlwZSI6ImJyb3dzZXIiLCJuYW1lIjoiQ2hyb21lIiwidmVyc2lvbiI6IjExOS4wIiwiZW5naW5lIjoiQmxpbmsiLCJlbmdpbmVWZXJzaW9uIjoiIn0sIm9zIjp7Im5hbWUiOiJXaW5kb3dzIiwidmVyc2lvbiI6IjEwLjAiLCJwbGF0Zm9ybSI6Ing2NCJ9LCJkZXZpY2UiOnsidHlwZSI6ImRlc2t0b3AiLCJicmFuZCI6IiIsIm1vZGVsIjoiIiwid2lkdGgiOjE5MjAsImhlaWdodCI6MTA0MCwiY3B1Ijo0LCJyYW0iOjgsImNvb2tpZV9lbmFibGVkIjp0cnVlLCJ1c2VyX2FnZW50IjoiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExOS4wLjAuMCBTYWZhcmkvNTM3LjM2IiwibGFuZ3VhZ2UiOiJlbi1HQiIsImxhbmd1YWdlcyI6WyJlbi1HQiIsImVuLVVTIiwiZW4iXX0sImJvdCI6bnVsbH0=on)_tokenZses_idrP  passwordrememberrk   zhttps://www.mydgn.com/accountzwindow.csrf_token = "(.+)"zlet sup_id = '(.+)'z can not get sup_id , sleep 5 min,  zclass="balance">(.+)</span>r%  z$except in mydgn available payment : z=wss://www.mydgn.com:2053/socket.io/?EIO=3&transport=websocketzwww.mydgn.com:2053Upgradezno-cachezoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36	websocketzhttps://www.mydgn.com13r>   zen-GB,en-US;q=0.9,en;q=0.8z*permessage-deflate; client_max_window_bits)rJ   rI   ZPragmazCache-ControlrM   r  rK   zSec-WebSocket-VersionrG   rH   zSec-WebSocket-Extensions)rT   z342["subscribe",{"channel":"mydgn_database_supplier.z","auth":{"headers":{}}}]zJ42["subscribe",{"channel":"mydgn_database_auction","auth":{"headers":{}}}]z@42["subscribe",{"channel":"mydgn_database_supplier_notification.r  zsend 2zconnection closed)r\   r  r  login_again_counter42r   r  allowed_in_sec	avg_pricechemistry_style	contractscreated_at_timestampea_trade_id	end_price	futbin_idfutbin_linkr|   left_time_ea_in_secr  ro   ownerspick_block_msplatform_namer  r   r   r   r  r  r  this card in upp tax cards : r   edited_namecompare_namer   z4this player has bad name and has not fixed name 2 , 'buy now price less than lowest valid ,  , r5  )Zwait_on_errorfirst_pricecant get data from futbin : r&  r  r   z'current tax higher than allowed tax 1, current card tax : rn  r   rL   platform :z page : z$https://www.mydgn.com/auctions/pick/zX-Csrf-Tokenrj   set buy sign :    rG  )basic_card_datamydgn_sessionmydgn_idr  r  r  futbin_first_pricero   r  r  expire_time_stampr  r  r   r   
csrf_tokencan not set buy item , zupdate available creditzexception in mydgn credit : 	timezone_conszhttps://api.mydgn.com/transfers)userr  	timestamphashmaximumBuyOutPriceminimumBuyOutPriceparamscodetransactionIDZ
resourceIDZbaseIDsearch_namerb   
startPriceZ
coinAmountZ	cardValuethis player has bad asset id :  bad asset ids : Zea_expires_at)r  r  r  r  r   ro   r  r  r  r   r  r    zmydgn players list :    i  zmydgn error : zmydgn bad error : ):r   r  r   r   r   r   is_apir  cloudscrapercreate_scraperr   researchr:  r   r   r   r  r   r   available_paymentr   r   r   create_connectionrecvsendr  run_dischargeZ"WebSocketConnectionClosedExceptionget_card_from_mydgnr  rk   r  r   r   r   r   Z get_price_from_futbin_and_futwizr   rP   __dict__rx  r   r  r8   r   r  r   api_user_nameapi_secret_keyencode	hexdigestrt  r  fromtimestampnowtotal_seconds)<r  r\   r  r  r  bad_asset_idsdischarge_lowest_target_pricer  r  r  firs_page_texttoken
login_resprW   r  Zsup_idZ
first_pageZcurrent_balancewstarget_dataupp_tax_cardsr*  r]  Zjson_result	card_datar  r  r  r  r  r  r  r  r  r  r  r  r  ro   r  r  r  r  r   r  r   r   blocked_playersr)  r  	numeratorcurrent_taxZcustom_headerr!  r  api_hashr   Zplayers_json_datar   rb   rX   rX   rY   r  g
  s   












.
(







"
	
 
r  c           F      C   s  t |d|d|jd|jd|j	 i }tjjddj}tjjddj}|jdu 	rt||}	|	d	du rt |d
| |dkr~|S t	| ||||d dS n|	dpt
 }
|
d z|
d}t|jd}|jdddj d d }|jddd}|r|j d d }nd}|jdddd}|d j d d }|d j d d }|  ||_||_||_||_|  W n   t |dt  Y n0 g }g }d}tdD ]Z}|dkrt |d  q|r|d dkr|  |jdu r|  S ddd }d!|k r`|d"k r`|dk r6|d#d$i n(|d%k rP|d#d&i n|d#d'i nd(|  k rxd!k rn nN|d"k r|dk r|d#d&i n(|d%k r|d#d'i n|d#d)i nd*|  k rd(k rn n4|d"k r|d+k r
|d#d'i n|d#d)i n4d,|  k r2d*k rNn n|d"k rN|d#d)i t |d-|d.|d/| d0|d# d d%  }| j|d }|d u rt |d1| |
jd2|d3}|jd4krt |d5|jd6 | jj|g dd7 t !t"#d8d9 qt$|% d:g d;d< d=d>}| jj||dd7 |D ]}t&|d? }t&|d@ }t&|dA }|dB }|dC }|dD } |dE }!|dF }"|dG }#t'j'(t&|dH t'j')  * }$|dH }%|dH }&|dI }'|dJ }(|dK })t&|t&|krt |dL|dM|dN| q"||v r
t |dO| q"||v r(t |dP|dQ| q"|||dR|v rJt |dS| q"t+jj,t-t-ddTt-d dTB t-t-ddUt-d dUB @ |!dV}*|*rt |dW|!|* q"t&||k rt |dX|dY| q"zdZt.| }+| j|+},|,r|,d[t   d\ krt |d]d^|, |,}-nJ| j/|!|"|!|#d_}-|-s:| j/|!|"|!|#|d`}-|-darX| jj|+|-t0d7 |-db}.|-dc}|-ddp|de}"W n4   t |dft d d,  t !d Y q"Y n0 |.st |dg|. q"t&|.dh t&|dh  }/t&|/| |. |/t&| t&|  d }0|0|kr@t |di|0dY| |1|||dR q"t |dj|0 ||k r"|'dkr"t ||(d|!dk|'dldmdn|  ddo| dpD ]j}1|
jdmdD|  id3}2t |dq|2j|2jd d,  |2jd4krt |dr t !t"#dsd  qn qqz|2% }3W n   i }3Y n0 |2jdtkr|3dJdtkr|
du}4t23dv|4j4d}5t23dw|4j4d}6t23dx|4j4d}7|
| |||!|"|%|$|&|||.||)|5|6|7|#dy}|    S t |dz|2j|2j |2jd4kr|d7 }t !d  q|3dJd{kr"|1| q"t !d qntd+D ]}t5t6d|7 }8t8t.|j9d} t.|d~  t.| t.|8 t.|j: ; < }9|j9|jd}|d~ t=t&|d,||8|9dd	}:t
jt>|:d% }|ddtk
r<t |d|d|: t !d% |dkrd};|:? D ] \}<}=|;d|< d|= d7 };	q|;d|d d7 };| j@d tAd|; dd 	qt5t6d|}>|d|>7 t&|dH  i |d}!t+jj,t-t-ddTt-d dTB t-t-ddUt-d dUB @ |!tBC tBjDd+d d}*|*r(t |d|!|* tE|tFd| d|j d|dI
p|d dtGtHd tI|||dd t !d 	qt
d% }?tJ|?d}}@t&|dH }$t&|d?}t&|d@}t&|dA}||dh  | |@ d~ })|dB}zdZt.|dB }A| j|A},|,r|,d[t   d krt |dd^|, |,}BnB| j/|d|de||dd}B|Bdar2| jj|A|Bt0d7 W n@   t |dt  | j/|d|de||dd}BY n0 |Bdc}|Bdb}.|Bddp|de}CtKjj,tBC tBjDd8d |ddL }D|Dd+krt |d tI|||dd t !d 	qtKjj,tBC tBjDd8d |d dL }E|EdkrTt |dd| tI|||dd t !d 	q|.r|rt&|.dh t&|dh  }/t&|/| |. |/t&| t&|  d }0nt |d|.d| d}0|d}6|d|6i |0|krt |d|0dY| tI|||dd t !d 	q||v r>t |d|dQ| tI|||dd t !d 	qt |d| d |d|dB||Bd|d|C|$|d||||)d |dd |d|dd}|  S 	q|S )Ngetting card with price : r   site : rL  Z6discharge_with_mode2_u7buy_lowest_target_buy_now_pricern   r  Fr   zlogin failed try again r  r   )r  try_countersessionz/https://www.u7buyut.com/sell-coins-player-tradez,https://www.u7buyut.com/member/player-recordhtml.parserdivZbalanceReviewclass_r   Z
payAccountr   ulZunderReviewspanr   z%problem in read u7buy account data : r5  z(fail counter more than 10 , break searchZps4)r  r  i@ r  r  z200.001-1000r   z100.001-200z
50.001-100r)  z	10.001-50r'  r   r&  zsearching for cards , payload z -- counter z
 -- fails Zbuyut_range_zcached data not found . name : z*https://www.u7buyut.com/ajax/playerRefreshr  r  z too many request, status code : z sleep 20 secondr      r  ZinsertPlayersc                 S   s   t | d S )Nr   r*  r2  rX   rX   rY   rd     re   z%get_card_from_buyut.<locals>.<lambda>Trf   Zinitial_pricer   r  ri   r  r|   r  rb   versionexpress_timero   r   Zincomez(credit lower than card price , credit :  card price :  card data : z)this card already selected and is locked r  r  r  r  r  r  r  z2this player has bad name and has not fixed name , r  r  Zfutbin_player_with_name_r   r  z=this item was selected from futbin less than 300 seconds ago r   )r   r   )r   r   r  r   r  r   player_ratingZplayerRatingr  )not found futbin price , futbin result : r  z(current tax higher than allowed tax 2 , r  r  
 , page : z,https://www.u7buyut.com/buy-players-now.html , id : , full data : )r   r   r   r   r  r  r  z'too many request , try again in 100 secr%  r  z&https://www.u7buyut.com/auction-detailz$"ut_id" type="hidden" value="(\S+)">z-"transaction_id" type="hidden" value="(\S+)">zname="_token" value="(\S+)">)r  r  r  r   ro   r  r  r  r  r  r  r  r   income_creditut_idtransaction_idtoken_idr   r  r   r  r  rl   transaction)	r  rv   r  r  r  Zstockr  r  requestr   r  zcant find card data , resp : z search data : z<b>z: z</b>
zerror_code:uE   ❌<b>We were unable to get a card from u7buy for this account</b>:

ZHTML)Z
parse_moder  
playerName)days)r   Zlast_time__gtez4this player has bad name and has not fixed name 4 , z+bad name error : 
cancel buy card, account 
site : 
player name : z/
cancel reason : notfound , player has bad namer  r  notfoundr  r  cancel_reasonz%https://api.u7buyut.com/api/get_pricer   zEu7buy-api, this item was selected from futbin less than 10 minute ago)r   r   r  r   z#error on get data from redis 2 , : minutesZ
not_bought)r   r   r   zFnot found in 15 minutes more than 2 time , cancel and buy another cardz9more than unStatus account in 15 minutes for this player,z* cancel and buy another card, card data : z0cant calculate current tax , cancel this card , r  transactionIdr!  z(current tax higher than allowed tax 4 , Zmincardvaluez!this player has bad asset id 2 : zu7buy api players data : r  r  r  )r  r  r  r   r  ro   r  r  r  r   r  r  r  r   r!  r"  r  r  )Mr   r  	site_namer  r   r   r   r   u7buy_login_and_save_sessionget_card_from_buyutrt  r  r   r   findr  find_allr   r  progress_paymentpending_paymentaddress_paymentr   r   r   r  r  rx  r   r   r   r   r   r   randomrandintr   rk   r   r  r  r  r  r   r   r   r   Z%get_player_data_from_futbin_with_namer#   r   r  r  r:  r8   r   r  r   r  r  r  r  r0  u7buy_trade_apir.  r  r"   r   r   r   r9   r   r    r!   cancel_buy_cardfloatr,   r  )Fr  r\   r  r  r  r  r  r  r  Zlogin_resultr  Zaccount_infosoupr  r8  r  r6  r7  r  Zalready_locked_cardsfail_counterZrange_counterZsearch_payloadZcached_data_namesorted_players_listr   r  r  r  r   r  r   r  ro   r  r  r  r  r  r  r   r  r  Zplayer_card_cached_namer(  r)  r  r  r	  Z_iinrW   r!  Z
buy_detailr   r!  r"  r  r
  Zsearch_dataZformatted_stringZiie_keyZ	iie_valuesystem_timeZpricing_dataZfeer'  Zfutbin_player_datar  Znot_found_playersZnot_found_players2rX   rX   rY   r3  u  s6   &







&

&
&


"

.


(






 




.	











*




r3  c                 C   s:  t jddddd}|jrPt|j}|d }tj|d }|j	| ||_
|d}|jdkr.t| d	| d
}td |jdddddd|j|jd|dddd}t| d|d|jd d  d|jvrt| d| ddddS t|j}	tj|j
}
|	|
d}t||_|jdgd t| d| d d!|d"S )#Nr  r  Fr  r  rP   cookieszhttps://www.u7buyut.com/signinzneed login again , i  r   z#https://www.u7buyut.com/ajax/signInzUnited Statesusz+1r   r   )ZisPhoneLoginZcountryNameZcountryCodeZprefixAreaCodeZmemberPhoneZmemberInputZmemberPassWordZnew_user_code
login_coder  captchar  zlogin resp : z - r   z"tips":"Success"zlogin failed try again , failedZlogin_failed)r   r   rG  )rP   rB  session_dictrj  znew login success Tr   )r   r   r  )r  r  rG  rk   r  rt  utilscookiejar_from_dictrP   rx  rB  r   urlr   r   r   r   r  r  r   dictdict_from_cookiejarr  r   )r\   r  r  session_dataZlast_headersZlast_cookiesr   rD  r  Zheaders_dictZcookies_dictrX   rX   rY   r2  W  sX    




r2  c           %      C   s*  t |d|d|jd|j i }tjjddj}tjjddj}g }	d}
t }|j	
dd	|j i d
}tjdddid|id}|jdkrt |d|j t| dd dd}t |d|j |D ]b}t|dp|d d}t|d d }t|d }t|d }|d d }|d d }|dp4|d  }|d!}|d"}|d d# }t|d d$ }t|d d% }tjtt|d d& tj   }tt|d d& }tt|d d& }|d d' }|d  } |p|}t|t|krt |d(|d)|d*| q||v r*t |d+|d,| q|||d-|	v rJt |d.| qtjjttd/d0td d0B ttd/d1td d1B @ |d2}!|!rt |d3|d4|!d*| |j| d5| d6d7d8id9 td: |
d;|i t|||d<d= td: qt||k rt |d>|d?| q|s&t |d@| qt|dA t|dA  }"t|"| | |"t| t|  dB }#t |dC|# ||k rt ||dD|dE| dFdG| |j| d5| d6d7d8id9}$t |dH|$j|$j |$jdkr|||||||||||||||||||dI}|  S t |dJ|$j|$j td: q|S )KNr  r  r  Z0discharge_with_mode2_lowest_target_buy_now_pricern   r  r   AuthorizationBearer https://fifa.gamecurrency.coz/https://gcapi.top/injection/api/gc-active-cardsacceptr  Zaccount_credits)rP   r  r  zerror on game currency : c                 S   s   t | d S )Nlist_buy_now_pricer*  r2  rX   rX   rY   rd     re   z-get_card_from_game_currency.<locals>.<lambda>Trf   zgame currency players : Zvendor_buy_pricer   r   r  rR  Zlist_start_pricer  r   r|   trade_idorigin_hostrelative_pathro   raterare_idr  Zpayment_amountz)credit lower than card price 2, credit : r  r  r  r  r  r  r   r  r  r  z3this player has bad name and has not fixed name 3, r  /v1/fifa/trades/r  r   reservedr  r   r  Zdaily_ban_requestr,  r  r  r  r  r   r  r  r  rL  r  r  )r  r  rT  rU  r  r   ro   r  rb   r  r  r  r   r  r  r  r  r   r  r  )r   r  r1  r   r   r   r   rt  r  rP   rx  r  r   r   r   rk   r   r  r  r=  r  r  r   r   r   patchr   r   r<  )%r  r\   r  r  r  r  r  r  r  r  r?  r<   host_addressr   r@  r  r  r  r  r   r  r   r  rT  rU  ro   r  r  r  r  r  r  rS  r  r  r	  rW   rX   rX   rY   get_card_from_game_currency  s    





.


(
r\  r+  )r  c                 C   s  t | d|d|d| |jdkr|jrttd }tdt|j t| t|j	 
  }tjd|jd|||dd	t|j
  d
d}n,|d}|d}|jd| ddid}t | d|j nr|jdkr|jrttd }d	}	|d}
tt|jt|
 |	 t| j
   t| t|j	 
  }tjt|j|
|	|||t| j
  ddd}td n4|d}|jd|dd|d|ddd}t | d|j n||jdkrD|dpd}|dp|d }|d!krd"}tj| d#| d$d%|d&d'd(|j	 id)}t | d|j t| td*|  d+|j d,|d-pn|d. d/| ttd0 d S )1Nzcancel buy card , mule : r  z
 cancel : mydgnr  r  zhttps://api.mydgn.com/statusr  cancel)r  r  r  r  r  r   	emailHashr  r  z&https://www.mydgn.com/auctions/cancel/r  r   zcancel response 3 : buyutr!  r   )r  r0  r   r  r  ZcancelReasonr_  r$  r%  r  z/https://www.u7buyut.com/buy-players-cancel.htmlr"  72r   )r  Z
version_72r   r!  zcancel response 2 : game_currencyrT  rP  rS  r+  Zmarket_emptyrX  r  Zcanceled)r   Zcancellation_reasonrN  rO  )r  rP   zcancel buy card, account r(  r)  ro   r&  z
cancel reason : r*  )r   r1  r  r8   r   r  r   r   r  r  r  r  rt  r   r   r  r   r;  r   r   rZ  r9   r   r    r!   )r\   r  r  r-  r  r
  Zcancel_respr  Zsite_sessionZ
buy_statusr!  Z
api_hash_2r[  rS  rX   rX   rY   r<    s    









r<  )r\   trade_pile_jsonc                 C   s   ddddS ]}|ddkrzPtjj| t|d	d
dd}|dpFd
|_d|_t |_	|
  td W q   t | dt  Y q0 qd S )NTr   Fr   r   r+  zsave sold itemsry   rz   r{   zitemData.idr   r\   r   is_soldZ
currentBidr   zexception in save sold items : )r   r   r   r   r0   r   rf  r   r   	sale_timer   r   r   r   r   )r\   rc  r   	sold_itemrX   rX   rY   r   V  s"     

r   c                 C   sz   ddddS zLt jj| |dd}d|_t |_d|_|rDt||_	|
  td W n   t| dt  Y n0 d S )NTr   Frd  re  r   z%exception in save quick sold items : )r   r   r   rf  r   r   rg  is_quick_sellr   r   r   r   r   r   r   r   )r\   r   r   rh  rX   rX   rY   r   k  s     

r   c           
      C   s   ddddS ddddS )NTr   Frd  re  )
r   r   r   r   r   rb   r   r   r   r   )
r\   r   r   r   rb   r   r   r   Zselling_itemr+  rX   rX   rY   r    s                   r  c                 C   sv   |j t d|d}z@|  d}|r6dd|dW S t| d|j dd	d
dW S W n   dd	t d Y S 0 d S )Nz/chemistry/profilesrO   r  Tr   )r   r   r  z% get chemistryProfilesVersion resp : FrF  zchemistry value none)r   r   r   )r   r2   rk   r   r   r   r   )r\   r<   rT   rW   Zprofile_versionrX   rX   rY   get_chemistryProfilesVersion  s    rj  c                 C   s$  g }| g d | D ]}| |dt|dt|d|dddd |d	p^g D t|d
t|dt|d|dpd|dpd|dpd|dpd|dddd|d|dp|dp|dpdd|d|d|dt|dg q|S )NNameRatingRarityPreferredPositionRarityGroupNationLeagueTeamLastSalePriceDiscardValueUntradeableLoansDefinitionIdIsDuplicateIsInActive11AlternatePositionsExternalPriceIsExistsZAssetIdZ
ResourceIdZFutbinIdZ	RawTeamIdr}   rb   r   r   r   c                 s   s   | ]}t |V  qd S r  )r   )r   xxrX   rX   rY   	<genexpr>  re   z;convert_club_players_to_solvation_format.<locals>.<genexpr>groupsr   leagueIdr   r   r   r~   r   FZloansr|   r   r   r   r   ri   futbinId)r   r   r   r   r	  )Zclub_players
final_listitem_1rX   rX   rY   (convert_club_players_to_solvation_format  s8    
 r  c                 C   s   g }| g d | D ]v}| |jt|jt|j|j|jt|jt|j	t|j
|jpZddddddd|jr||jd |j n|j|jdg q|S )N)rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r   Fr   )r   r   r   rb   r   r   r  r  r   leaguer
  r   r  )Zplayer_cardsr  r  rX   rX   rY   (convert_player_cards_to_solvation_format  s0    r  c                 C   s   g }| g d | D ]}| |dt|dt|d|d|dt|dt|dt|d	|d
p~d|d
pdddddd|d|d
pdd|d|d|dt|d	g q|S )Nrk  r   rb   r   r  r  r   r  r
  r   r   Falter_positionr   r  r  )r   r   r   r   )r  r  r  rX   rX   rY   #convert_players_to_solvation_format  s8    r  )sbc_type_objsolvation_modelc           :         sD  | j }g }d}d}|r|jrt|d|j dd tjddddD }t tjdd	   fd
d|D }t|j}	g }
g }|	D ]}| 	|}t
d t|jd}|jdd}|r|jddD ]}|| qqt|d|jd|jd d  t
tdd q|D ]}|dd }|dd }td|p:d}|r
|d}nq
|jddj}|jdd}tdtj|jdddd d}tdtj|jd ddd d}td!tj|jd"ddd d}|jd#d}|jd$d}td%tj|dd d}|jd&d'gd}|jd(dj}d}t|dkrj|d j}|} t|d)kr| d* |d) jd+d } td,|}!|!r|!d}!nd }!d}"|r|d-j}#|#d.dd/d}"d/|#v rt|"d0 }"n d.|#v rt|"d1 }"nt|"}"t||v r>|
|||"d2 q
|t |t |t |t ||t |d||!|!|| ||t |t |t |t |t |"d3 q
t|d4|
 |S | 	t! d5|j" d6}$t#d7|$j}%t|d8t|% d9 |d)k r@|dk r@t
d: t! d;|%|  d<}&|d7 }t|d=|& | 	|&j}'td>|'d}(t$%t|(d?d@}(d})g }*d}+|(&dA&dB},g }-|(&dC&dD&dE}.| j'|. D ]}/d }0t(|,D ]>\}1}2|1dks|1d: dkr|2dF |/kr|1d }0 qq|+d7 }+|0sq|,|0 }2t tdGttj|2&dH&dI&dJ&dKd}3|2&dL}4|2&dM&dF}5|2&dN&dO&dP}6|2&dQ&dR}7|2&dS&dF}dTd |2&dUD } |2&dV}8|2&dW&dF}|2&dX&dF}t)|2dYdZ}9|3|3|7|8t! d[|4 d6|4|d**| |||5|5|9d\}2|-|2 t
d q||- }|d7 }q|S )]Nr   zfinding solvation from links : c                 S   s   g | ]}t |d qS )r  )rk   r  r  )r   ZeeirX   rX   rY   r     re   z1get_newest_solvations_players.<locals>.<listcomp>cant_buy_playersr~  )startendr   r   c                    s,   g | ]$}t j|d   krt|d qS )r{  r   )r   r  fromisoformatr   r   Zlast_hour_agorX   rY   r     re   r  r  zplayers-tabler  z
player-rowzcan not find players table , z , content r&  r5  r  r  hrefimgsrczplayers/(\d+).pngr   ztable-player-nameztable-player-sub-infoznation/(\d+).pngztable-player-nationzleague/dark/(\d+).pngztable-player-leaguezclubs/dark/(\d+).pngztable-player-clubztable-rating
ztiny/(\d+)_zplatform-ps-onlyztable-pricez	table-posr   r   rL  zplayer/(\d+)/r  KMi@B rl   )r   r  r   )r   r}   r  ri   rb   r   r  r  r  r  r  r  futbin_imager   r   r  clubr
  r   zcant buy this players : z/squad-building-challenges/ALL/z/azhref="/25/squad/([^"]+)/sbc" zfinding z
 solvationr   z/squad/z/sbczgetting data of z data-react-data="">(.+)</script>z&quot;r  Z	squadDataZsquadZsbcChallengeRequirementData	formationZdisplayNamer^  zimg/players/(.\d+)\.pngZplayerImagefixedrJ  Zimage1xr|   ZclubIdZchemistryCardZchemDataZclubNameZ	statsCardrb   r  c                 S   s   g | ]}|d  qS )r^  rX   )r   rZ  rX   rX   rY   r     re   r   ZrareTyper  ZnationIdzprice.ps.pricer  z/player/)r   r  rb   r   r  r  r  r  r   r  r  r
  r   )+r\   buy_player_linksr   rX  lranger   r   r   r  Zuse_cloud_scraperr   r   r   contentr4  r5  r   r   r   r9  r:  r  r  r:  urllibparseunquoter  contentsr  r=  r   r   r5   
sbc_numberfindallrk   r  r   Zsquad_positions_in_futbin	enumerater0   r	  ):r  r  r  r\   Zall_players_dataZbest_solvationsrx   r  Zcant_buy_assetslinksZcant_buy_players_2Zplayers_elemenstZlink_with_pageZlink_resultr>  Zplayers_tableZrow_itemrowr  r  r   r   Zsub_dataZ	nation_idZ	league_idr   Z
rating_boxrb   r   Zprice_elementZ
player_posZplayer_positionZalter_positionsr  Zprice_numberZ
price_textZsbc_link_respZsolvations_idZsbc_solve_linkrW   Z
react_dataZbad_playersZtargets_listZfifa_player_positionZ
squad_datar   Zselected_formation_namerZ  Zdata_position_idxZdata_positionZplayer_datar   Zplayer_futbin_idr   Zplayer_club_namer  Zplayer_rare_typeplayer_pricerX   r  rY   get_newest_solvations_players  sB   




$




&


r  c                 C   s   | dkrdS |  ddkrd}|  ddks:|  ddkrh|  }t tjt|d d }| }nH|  ddks|  d	dkr|  }t tjt|d d
 }| }|S ttd S d S )NNeverr   secsr~  Zminsminr.  r   hourr   r  )	r4  r  r   r   r   r   r  r8   r   )Zfutbin_timeZfutbin_updated_timeZupdated_time_minZupdated_time_hourrX   rX   rY   convert_futbin_time  s    
r  c                 C   s(   |  t d}| }t|dd }|S )Nz/usermassinfozuserInfo.feature.trade)r   r2   rk   r0   )r<   Z	mass_infoZmass_info_jsontrade_accessrX   rX   rY   "get_trade_access_from_usermassinfo  s    r  )N)FTFT)N)N)N)T)T)T)N)r  )r   )r  FF)r  F)F)r   )r   F)NFF)TT)r   )N)r|  r   )r   NN)r+  )r   )N)r   r  rP  rK  rk   ro  r9  r  r  r   r   r  Zemail.headerr   email.utilsr   hashlibr   	threadingr   r  r  numpyr  rS  rt  r  r  PILr   bs4r   django.core.cacher   	django.dbr	   r
   r   django.db.modelsr   django.utilsr   django_redisr   r   django.contrib.auth.modelsr   r  accounts.modelsr   r   r   r   r   r   r   r   r   r   r   r   futplus.settingsr   r   sbcr   r    r!   r"   r#   r$   
sbc.modelsr%   r&   r'   r(   r)   r*   Zsniper.modelsr+   r,   squad_battle.modelsr-   r   r.   trade.modelsr/   rH  r0   Zutils.ea_settingsr1   r2   r3   r4   r5   r6   r7   utils.realy_public_methodsr8   r9   r  r  rQ   r;  ro   	diskcacheCacherp  r	  rr  rZ   r1  r  r   r9  rK  r;  r@  r   rD  rF  rH  r  rC  rI  rX  r   r   rh  rt  ru  rU  ry  r   r   r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r#  r   r,  r  r/  r2  r3  rb  rg  rr  rv  r{  r   r  r  r  r3  r2  r\  r<  r   r   r  rj  r  r  r  r  r  r  rX   rX   rX   rY   <module>   s>  8  $
           [
	%	%$$$$$$$	#&
 Jp8"      e3}O$#  