ó
    ¹ïõiòp  ã                   óš   • S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKrS SKrS SK	r	S SK
J
r
  S SKrS SKJr  S SKrS SKr " S S\5      rg)é    N)Úbluegems)ÚRequestManager)ÚFinalListing)Úloggerc            
       óŽ   • \ rS rSrS\S\S\S\S\R                  4
S jrS r	S	 r
S
 rS rSS jrS\4S jrS rSS\4S jjrSrg)ÚNewMarketBoté   Úhigh_lowÚweapon_nameÚwebshare_ipsÚall_sessionsÚlistings_queuec                 ó¸   • Xl         X l        [        5       U l        / U l        / U l        0 U l        / U l        X0l        [        XC5      U l	        XPl
        SU l        g )Nzhttp://23.88.122.57:1337/)r
   r   ÚsetÚlistings_url_setÚinspect_links_listÚlistings_info_listÚlistings_info_dictÚbest_or_worst_skinsr   r   r   Úinspect_server_url)Úselfr
   r   r   r   r   s         ÚN/var/www/highfloat_scraper_backup_02_05_2026/highfloat_scraper/newMarketBot.pyÚ__init__ÚNewMarketBot.__init__   sZ   € ð !ŒØ&ÔÜ #£ˆÔØ"$ˆÔØ"$ˆÔØ"$ˆÔØ#%ˆÔ Ø(ÔÜ,¨\ÓHˆÔØ,ÔØ"=ˆÕó    c                 ó   • U R                  5         [        R                  " S[        U R                  5      -   S-   5        U R                  5         [        R                  " S[        U R                  5      -   S-   5        g )Nz!1/2 Build Listing URLs finished (Ú)z'2/2 Build Inspect Links List finished ()ÚgetHashedNameListHighOrLowr   ÚinfoÚstrr   ÚbuildInspectLinksList)r   s    r   ÚstartBotÚNewMarketBot.startBot&   sb   € Ø×'Ñ'Ô)Ü�ŠÐ7¼#¸d×>NÑ>NÓ:OÑOÐRUÑUÔVà×"Ñ"Ô$Ü�ŠØ5¼¸D×<LÑ<LÓ8MÑMÐPSÑSõ	
r   c           	      óÔ  • SnSnSnU R                   S:X  a  SnO+U R                   S:X  a  SnOSn[        R                  " S5        U R                  S:X  a  SR	                  X$S	9nOS
R	                  X R                  US9nU(       GdQ  U R                  S:X  a  SR	                  X$S	9nOS
R	                  X R                  US9n U R
                  R                  USS9nUc  [        R                  " S5        Mx  [        U[        5      (       a!  [        R                  " UR                  5      nOUR                  5       n US-  nUS:¼  a/  [        R                   " SS5      n	[        R                  " X9-  5        US:”  a  Sn[        R                  " S5        GM  US :X  a  GM#  US   S-   US   :X  aE  Sn[        R                  " S[        [#        US   5      S-   5      -   S-   [        US   5      -   5        US   S-   US   :¼  aF  Sn[        R                  " S[        [#        US   5      S-   5      -   S-   [        US   5      -   5        O4[        R$                  " [        US   5      S-   [        US   5      -   5        ['        US   5      S:X  a  GM  US    GH+  n
SU
S   ;   Gdi  S U
S   ;   Gd_  S!U
S   ;   GdU  S"U
S   ;   GdK  S#U
S   ;   GdA  S$U
S   ;   Gd7  S%U
S   ;   Gd-  S&U
S   ;   Gd#  S'U
S   ;   Gd  S(U
S   ;   Gd  S)U
S   ;   Gd  S*U
S   ;   dü  S+U
S   ;   dó  S,U
S   ;   dê  S-U
S   ;   dá  S.U
S   ;   dØ  S/U
S   ;   dÏ  S0U
S   ;   dÆ  S1U
S   ;   d½  S2U
S   ;   d´  S3U
S   ;   d«  S4U
S   ;   d¢  S5U
S   ;   d™  S6U
S   ;   d�  S7U
S   ;   d‡  S8U
S   ;   d~  S9U
S   ;   du  S:U
S   ;   dl  S;U
S   ;   dc  S<U
S   ;   dZ  S=U
S   ;   dQ  S>U
S   ;   dH  S?U
S   ;   d?  S@U
S   ;   d6  SAU
S   ;   d-  SBU
S   ;   d$  SCU
S   ;   d  SDU
S   ;   d  SEU
S   ;   d	  SFU
S   ;   a(  [        R(                  " SG[        U
S   5      -   5        GMŸ  U
SH   S:X  a(  [        R                  " SI[        U
S   5      -   5        GMÐ  SJ[*        R,                  R/                  [        U
S   5      R1                  SK5      5      -   SL-   nU R2                  R5                  U5        GM.     US-  nU(       d  GMQ  U R                   S:X  aÊ  [7        SM5       n[        R8                  " U5      nU R                  U;   a�  XÐR                      H~  n[        US   5      SN-   [        US   5      -   SO-   nSJ[*        R,                  R/                  [        U5      R1                  SK5      5      -   SL-   nU R2                  R5                  U5        M€     S S S 5        U R                   S:X  aÌ  [7        SP5       n[        R8                  " U5      nU R                  U;   a‘  UU R                      H~  n[        US   5      SN-   [        US   5      -   SO-   nSJ[*        R,                  R/                  [        U5      R1                  SK5      5      -   SL-   nU R2                  R5                  U5        M€     S S S 5        g g ! [         a+  n[        R                  " [        U5      5         S nAGM@  S nAff = f! , (       d  f       GN$= f! , (       d  f       g = f)QNFr   Úhighé   Úlowz*wear is not high or low, defaulting to lowÚglovesa¬  https://steamcommunity.com/market/search/render?currency=3&norender=1&query=&start={count}&count=10&search_descriptions=0&sort_column=price&sort_dir=asc&appid=730&category_730_ItemSet%5B%5D=any&category_730_ProPlayer%5B%5D=any&category_730_StickerCapsule%5B%5D=any&category_730_TournamentTeam%5B%5D=any&category_730_Weapon%5B%5D=any&category_730_Exterior%5B%5D=tag_WearCategory{wear}&category_730_Rarity%5B%5D=tag_Rarity_Ancient)ÚcountÚweara‰  https://steamcommunity.com/market/search/render?currency=3&norender=1&query=&start={count}&count=10&search_descriptions=0&sort_column=price&sort_dir=asc&appid=730&category_730_ItemSet%5B%5D=any&category_730_ProPlayer%5B%5D=any&category_730_StickerCapsule%5B%5D=any&category_730_TournamentTeam%5B%5D=any&category_730_Weapon%5B%5D={weapon_name}&category_730_Exterior%5B%5D=tag_WearCategory{wear})r)   r   r*   Úskins)Úskins_or_inspect_linksé   é   é   ç      à?g      ø?é   Tz#json_page failed 20 times, skippingÚstarté
   Útotal_countzWe end because of: z == z > z - ÚresultszAK-47 | AphroditeÚnamezM4A1-S | Party AnimalzAWP | ExothermiczUSP-S | Sleeping PotionzZeus x27 | Earth MandalazUMP-45 | Warm BloodedzGalil AR | Sky MandalazFive-SeveN | Fraise CranezXM1014 | XoooMzTec-9 | Banana LeafzSSG 08 | CalligrafauxzMP7 | Coral PaisleyzMP5-SD | PicniczSawed-Off | Crimson BatikzSG 553 | Safari PrintzR8 Revolver | Mauve AsidezPP-Bizon | Thermal CurrentszMP9 | Bee-TronzFAMAS | ByproductzCZ75-Auto | Honey PaisleyzAWP | The EndzAK-47 | BreakthroughzGlock-18 | Trace LockzAUG | CreepzDesert Eagle | The Daily DeaglezP2000 | Grip TapezP90 | Aeolian LightzFAMAS | VendettazM4A4 | Aeolian DarkzMAC-10 | Snow SplashzMP5-SD | Snow SplashzR8 Revolver | Dark ChamberzPP-Bizon | BizoomzDual Berettas | Silver PourzM249 | SleetzMP9 | DizzyzNova | CurrentszP250 | SleetzSCAR-20 | ZinczSSG 08 | Sans ComiczSKIPPING NEW SKIN: Úsell_listingszNO LISTINGS FOR ú/https://steamcommunity.com/market/listings/730/zutf-8z/render/?query=z capped_skins/skins_high_new.jsonz (r   zcapped_skins/skins_low_new.json)r
   r   Úcriticalr   Úformatr   ÚgetRequestAllAvailableProxiesÚtimeÚsleepÚ
isinstancer    ÚjsonÚloadsÚtextÚ	ExceptionÚrandomÚuniformÚintÚwarningÚlenr   ÚurllibÚparseÚquoteÚencoder   ÚaddÚopenÚload)r   Úendr)   Úrepeat_counterr*   Úall_skins_urlÚresponseÚ	json_pageÚeÚrandom_timeÚiÚlistings_urlÚjson_file_highÚ
skins_highÚskinÚfull_skin_nameÚjson_file_lowÚ	skins_lows                     r   r   Ú'NewMarketBot.getHashedNameListHighOrLow/   s  € ØˆØˆØˆà�=‰=˜FÓ"Ø‰DØ�]‰]˜eÓ#Ø‰DàˆDÜ�OŠOÐHÔIà×Ñ˜xÓ'ð?÷ ‰f˜5ˆfÐ,ñ ðF÷
 ‰f˜5×.>Ñ.>ÀTˆfÐJð ÷ Ø×Ñ 8Ó+ðC÷ ‘&˜u�&Ð0ñ ðJ÷
 ‘&˜u×2BÑ2BÈ�&ÐNð ðØ×.Ñ.×LÑLØ!¸'ð Mð �ð Ñ#Ü—J’J˜q”MÙÜ˜h¬×,Ñ,Ü $§
¢
¨8¯=©=Ó 9‘Ià (§¡£‘Ið
 ˜aÑˆNà Ó"Ü$Ÿnšn¨S°#Ó6�Ü—
’
˜>Ñ7Ô8à Ó"Ø�Ü—’Ð EÔFÚà˜DÓ Úà˜Ñ! BÑ&¨)°MÑ*BÓBØ�Ü—’Ð 5¼¼CÀ	È'Ñ@RÓ<SÐVXÑ<XÓ8YÑ YÐ\bÑ bÔehÐirð  tAñ  jBó  fCñ  !Cô  Dà˜Ñ! BÑ&¨)°MÑ*BÓBØ�Ü—’Ð 5¼¼CÀ	È'Ñ@RÓ<SÐVXÑ<XÓ8YÑ YÐ\aÑ aÔdgÐhqÐrñ  iAó  eBñ  !Bõ  Cä—’œs 9¨WÑ#5Ó6¸Ñ>ÄÀYÈ}ÑE]ÓA^Ñ^Ô_ä�9˜YÑ'Ó(¨AÓ-Úà˜yÕ)�à'¨1¨V©9Ô4Ø+¨q°©yÔ8Ø&¨!¨F©)Ô3Ø-°°6±Ô:Ø.°!°F±)Ô;Ø+¨q°©yÔ8Ø,°°&±	Ô9Ø/°1°V±9Ô<Ø$¨¨&©	Ô1Ø)¨Q¨v©YÔ6Ø+¨q°©yÔ8Ø)¨Q¨v©YÓ6Ø%¨¨6©Ó2Ø/°1°V±9Ó<Ø+¨q°©yÓ8Ø/°1°V±9Ó<Ø1°Q°v±YÓ>Ø$¨¨&©	Ó1Ø'¨1¨V©9Ó4Ø/°1°V±9Ó<Ø# q¨¡yÓ0Ø*¨a°©iÓ7Ø+¨q°©yÓ8Ø! Q v¡YÓ.Ø5¸¸6¹ÓBØ'¨1¨V©9Ó4Ø)¨Q¨v©YÓ6Ø&¨!¨F©)Ó3Ø)¨Q¨v©YÓ6Ø*¨a°©iÓ7Ø*¨a°©iÓ7Ø0°A°f±IÓ=Ø'¨1¨V©9Ó4Ø1°Q°v±YÓ>Ø" a¨¡iÓ/Ø! Q v¡YÓ.Ø%¨¨6©Ó2Ø" a¨¡iÓ/Ø$¨¨&©	Ó1Ø)¨Q¨v©YÓ6Ü—K’KÐ 5¼¸A¸f¹I»Ñ FÔGÚØ�_Ñ%¨Ó*Ü—O’OÐ$6¼¸Q¸v¹Y»Ñ$GÔHÚàEÜ—l‘l×(Ñ(¬¨Q¨v©Y«×)>Ñ)>¸wÓ)GÓHñIà'ñ(ð ð
 ×%Ñ%×)Ñ)¨,×7ñi *ðj �R‰KˆE÷e ‘#ðh �=‰=˜FÓ"ÜÐ8Ô9¸^Ü!ŸYšY ~Ó6�
Ø×#Ñ# zÓ1Ø *×+;Ñ+;Ô <˜Ü),¨T°!©W«¸Ñ)<¼sÀ4ÈÁ7»|Ñ)KÈcÑ)Q˜àMÜ$Ÿl™l×0Ñ0´°^Ó1D×1KÑ1KÈGÓ1TÓUñVà/ñ0ð %ð
 ×-Ñ-×1Ñ1°,Ö?ñ !=÷ :ð �=‰=˜EÓ!ÜÐ7Ô8¸MÜ ŸIšI mÓ4�	Ø×#Ñ# yÓ0Ø )¨$×*:Ñ*:Ô ;˜Ü),¨T°!©W«¸Ñ)<¼sÀ4ÈÁ7»|Ñ)KÈcÑ)Q˜àMÜ$Ÿl™l×0Ñ0´°^Ó1D×1KÑ1KÈGÓ1TÓUñVà/ñ0ð %ð
 ×-Ñ-×1Ñ1°,Ö?ñ !<÷ 9Ð8ð "øôG ó Ü—’¤ A£Ô'Þûðú÷n :Ö9ú÷ 9Õ8ús>   Ã3Z Ã75Z Ä-Z Ó3B7[×B8[Ú
[ÚZ?Ú?[Û
[Û
['c                 ót
  • [         R                  " [        R                  " SS5      5        U R                   GHR  nUS:X  d  US :X  d  US:X  a  [
        R                  " S5        M.  SnSnSnSnU(       a  M?  [        U5      S	-   [        U5      -   S
-   nUS-  nUS:”  a/  [        R                  " SS5      n[         R                  " X7-   5        US:”  Gaå  USL Gaß  [
        R                  " S5        [        U5      R                  S5      S   nSU S3n	[
        R                  " S[        U5      -   S-   [        U	5      -   5         U R                  R                  U	5      R                  5       n
SU
;   Ga  U
S   S:X  d  U
S   cÍ  [
        R                  " S[        U5      -   5        SnU
S   S:X  a�  [
        R                  " S[        U5      -   5        [        SS5       nUR                  5       nS S S 5        [        R                   " W5      nUR#                  U5        [        SS5       nUR%                  [        U5      5        S S S 5        GMä  Sn[
        R                  " S[        U5      -   S-   5        [         R                  " S5        O*SU
;   a$  Sn[
        R                  " S [        U
5      -   5        US":”  a$  Sn[
        R                  " S#[        U5      -   5        [(        R*                  R-                  U5      R.                  R                  S5      S   n[0        R2                  " U5      SL a  SnGMÏ  U R5                  U5      nUb  UR                  5       OS nUb  UR6                  OS nUS :X  a  [         R                  " S!5        GM%  S$U;  a  [         R                  " S!5        GMD  S%U;  a  [         R                  " S!5        GMc  US$   c  [         R                  " S!5        GM‚  US%   c  [         R                  " S!5        GM¡  Sn [0        R8                  " UU R:                  S&9n[=        U5      S:X  a%  [
        R                  " S'[        U5      -   5        GM÷  U R>                  RA                  U5        U(       d  GM  GMU     g ! , (       d  f       GN¦= f! , (       d  f       GNb= f! [&         aA  n[
        R                  " [        U5      5        [         R                  " S!5         S nAGMŒ  S nAff = f! [&         a+  n[
        R                  " [        U5      5         S nAGMÄ  S nAff = f)(Ngš™™™™™É?r0   Ú Ú
zlistings_url IS EMPTY????Fr   Tz&start=z&count=100&currency=3r.   r&   é   zrepeat_counter_overall > 3Ú/é   zQhttps://www.steamwebapi.com/steam/api/item?key=CJN62T0XGKR7TH5A&market_hash_name=z&currency=EUR&with_groups=falsez(TRYING TO CHECK IF THERE ARE OFFERS FOR z WITH ÚoffervolumezNO OFFERS FOR Úsold7dz7ALSO NO SELLS FOR 7 DAYS, ADDING TO EXCLUDED SKINS FOR zexcluded_skins.txtÚrÚwzTHERE ARE OFFERS FOR z - SLEEPING, GOOD NIGHT!!!r-   Ústatusz#STEAMWEBAPI FREE REQUESTS USED UP??r/   é   z(listings_page_json failed 15 times with ÚlistinginfoÚresults_html)r
   zNO INSPECT LINKS FOR )!r<   r=   rC   rD   r   r   r9   r    ÚerrorÚsplitr   ÚgetRequestNakedr?   rM   ÚreadÚastÚliteral_evalÚappendÚwriterB   rH   rI   ÚurlparseÚpathÚHelperFunctionsÚcheckIfSkinExcludedÚgetInspectLinksrA   ÚgetNewInspectLinksr
   rG   r   Úput)r   rW   rO   Úrepeat_counter_overallr2   Úcheck_steamwebapiÚsingle_listings_urlrU   Úmarket_hash_nameÚsteamwebapi_urlrR   ÚfileÚcontentÚexcluded_skinsrT   Úencoded_market_nameÚlistings_page_responseÚlistings_page_jsonÚlistings_page_textÚnew_inspect_linkss                       r   r!   Ú"NewMarketBot.buildInspectLinksListÜ   s¢  € Ü�
Š
”6—>’> # sÓ+Ô,Ø ×1Õ1ˆLØ˜rÓ! \°TÓ%9¸\ÈTÓ=QÜ—’Ð ;Ô<ÙØˆCØ%&Ð"ØˆEØ $Ðß�cä˜Ó%¨	Ñ1´C¸³JÑ>ÐAXÑXð $ð '¨!Ñ+Ð&à)¨AÓ-Ü"(§.¢.°°AÓ"6�KÜ—J’JÐ5ÑCÔDà)¨AÔ-Ð2CÀtÓ2KÜ—L’LÐ!=Ô>Ü'*¨<Ó'8×'>Ñ'>¸sÓ'CÀAÑ'FÐ$Ø(yð  {Kð  zLð  Lkð  'l�OÜ—L’LØBÜÐ.Ó/ñ0à"ñ#ô ˜oÓ.ñ/ôð$!Ø#'×#6Ñ#6×#FÑ#FØ+ó$ç™$›&ð !ð )¨HÔ4à (¨Ñ 7¸1Ó <Ø#+¨MÑ#:Ñ#Bä &§¢Ø$4´sÐ;KÓ7LÑ$Lô!"ð '+ Ø#+¨HÑ#5¸Ó#:Ü$*§L¢LØ(aÔdgÐhxÓdyÑ(yô%&ô *.Ð.BÀCÔ)HÈDØ26·)±)³+¨÷ *Iä58×5EÒ5EÀgÓ5N NØ$2×$9Ñ$9Ð:JÔ$KÜ)-Ð.BÀCÔ)HÈDØ(,¯
©
´3°~Ó3FÔ(G÷ *Iâ (à49Ð 1Ü &§¢Ð-DÄsÐK[ÓG\Ñ-\Ð_{Ñ-{Ô |Ü $§
¢
¨1¥à'¨8Ó3Ø49Ð 1Ü &§¢Ð-RÔUXÐYaÓUbÑ-bÔ cð *¨BÓ.Ø�CÜ—O’OØBÜÐ1Ó2ñ3ôô
 '-§l¡l×&;Ñ&;Ø'ó'ç‘$—u‘u˜S“z !ñ'%Ð#ô #×6Ò6Ð7JÓKÈtÒSØ�CÚà)-×)=Ñ)=Ð>QÓ)RÐ&ØF\ÑFhÐ%;×%@Ñ%@Ô%BÐnrÐ"ØDZÑDfÐ%;×%@Ò%@ÐlpÐ"à%¨Ó-Ü—J’J˜q”MÚà Ð(:Ó:Ü—J’J˜q”MÚà!Ð);Ó;Ü—J’J˜q”MÚà% mÑ4Ñ<Ü—J’J˜q”MÚà% nÑ5Ñ=Ü—J’J˜q”MÚà�ð	Ü(7×(JÒ(JÐK]Ðhl×huÑhuÑ(vÐ%ÜÐ,Ó-°Ó2ÜŸšÐ(?Ä#ÐFYÓBZÑ(ZÔ[Ú Ø×'Ñ'×+Ñ+Ð,=Ô>÷Q ”cñ 2ðj ÷O *IÖ)Hú÷ *IÖ)Hûô %ó !ÜŸš¬¨A«Ô/ÜŸ
š
 1œÞ ûð!ûôh !ó Ü—O’O¤C¨£FÔ+Þûðúst   ÅBR4Ç RÇ1;R4È,R"ÉR4É=R4Ê*R4ÐATÑ%TÒ
R	ÒR4Ò"
R1	Ò,R4Ò4
S?Ò>5S:Ó:S?Ô
T7ÔT2Ô2T7c                 óD  ^• SU Vs/ sH
  nSUS   0PM     sn0nS nSnUcÑ  US-  nUS:”  a  [         R                  " S5        g  U R                  R                  U R                  S-   US	9nUc  [
        R                  " S
5        Mh  UR                  5       n[        U[        5      (       a  SU;   a:  [         R                  " S[        U5      -   5        [
        R                  " S
5        MÍ  UnUc  MÑ  U R                  S:H  m[        UR                  5       U4S jTS9n	U	S S n	/ n
U	 H  nU
R                  US   S   5        M     U H€  nUS   U
;  a  M  [         R"                  " US   5      nUbA  US   S:  a6  [         R$                  " SUS    SUS    35        U R'                  US   USS9  Mk  U R'                  US   U5        M‚     g s  snf ! [         aC  n[         R                  " S[        U5      -   5        [
        R                  " S
5         S nAGN,S nAff = f)NÚlinksÚlinkrb   r   r.   r-   z:Bulk inspect server request failed 5 times, skipping batchz/bulk)Ú_jsonr/   rm   zBulk inspect server error: zBulk inspect server exception: r%   c                 óH   >• U S   R                  ST(       a  S5      $ S5      $ )Nr.   Ú
floatvalueg        g      ð?)Úget)ÚxÚreverses    €r   Ú<lambda>Ú.NewMarketBot.checkForRankNew.<locals>.<lambda>r  s   ø€ ˜!˜A™$Ÿ(™( <¾°ÔIÀSÔIr   )Úkeyr’   Úard   zChecking assetid z, already in DB with rank T)Úalready_in_db)r   r9   r   ÚpostRequestNakedr   r<   r=   r?   r>   Údictr    rB   r
   ÚsortedÚitemsrs   rw   ÚcheckIfItemInDBr   ÚcsfloatRequest)r   Únew_inspect_links_listÚ	link_infoÚlinks_payloadÚbulk_responseÚbulk_counterÚrawÚparsedrT   Úsorted_itemsÚreal_sortedÚ	sort_itemÚpossibly_item_in_dbr’   s                @r   ÚcheckForRankNewÚNewMarketBot.checkForRankNewV  s#  ø€ Ø ÑKaÓ"bÑKa¸i F¨I°a©LÓ#9ÑKaÑ"bÐcˆàˆØˆØÑ#Ø˜AÑˆLØ˜aÓÜ—’Ð \Ô]ØðØ×)Ñ)×:Ñ:¸4×;RÑ;RÐU\Ñ;\ÐdqÐ:Ðr�Ø‘;Ü—J’J˜q”MÙØŸ™›�Ü! &¬$×/Ñ/°7¸fÓ3DÜ—O’OÐ$AÄCÈÃKÑ$OÔPÜ—J’J˜q”MÙØ &�ð Ó#ð( —-‘- 6Ñ)ˆÜØ×ÑÓ!ÜIØñ
ˆð
 $ B QÐ'ˆØˆÛ%ˆIØ×Ñ˜y¨™|¨CÑ0Ö1ñ &ó
 0ˆIØ˜‰| ;Ó.ÙÜ"1×"AÒ"AÀ)ÈAÁ,Ó"OÐØ"Ñ.Ø& qÑ)¨AÓ-Ü—K’KÐ"3°I¸a±L°>ÐA[Ð\oÐpqÑ\rÐ[sÐ tÔuØ×'Ñ'¨	°!©Ð6LÐ\`Ð'ÑaÙà×Ñ 	¨!¡Ð.DÖEò 0ùòK #cøô( ó Ü—’Ð AÄCÈÃFÑ JÔKÜ—
’
˜1—’ûðús+   ‡GÁA G ÂA#G Ã,G Ç
HÇ8HÈHc                 óø  • SnSnU(       Gd¶   U R                   R                  SSU/0S9nUc  US-  n[        R                  " S5        MF  US:”  a&  S	n[        R
                  " S
[        U5      -   5        Mr  UR                  5       nSU;   a  US-  n[        R                  " S5        M¥  S	nSU;   Ga  US   n	U	 GHù  n
Xš   n[        UR                  5       5      S   u  pÍU GHÌ  nUS   nUS   nUS   n[        U5      [        U
5      :X  d  M-  US   nSnSnU(       dy  US-  nUS:”  a&  S	n[        R
                  " S[        U5      -   5        M8   U R                   R                  U R                  S-   U-   5      R                  5       nUb  S	nU(       d  My  [        U5      S::  a:  [        R                  " SU S3[        U5      -   5        U R                  XqUUU5        USL d  GM   [         R"                  " 5        nUR%                  S[        US   S   5      [        U5      [        US   5      [        U5      [        U
5      US   S   45        [        R
                  " S[        UR&                  5      -   5        [        R
                  " SU SU SUS   S    35        S S S 5          GM÷     GMü     U(       d  GMµ  g g ! [         aF  n[        R
                  " [        U5      5        US-  n[        R                  " S5         S nAGM
  S nAff = f! [         aA  n[        R
                  " [        U5      5        [        R                  " S5         S nAGME  S nAff = f! , (       d  f       NÆ= f! [(        R*                  R,                   a2  n[        R.                  " SU S3[        U5      -   5         S nAGMß  S nAf[         a+  n[        R
                  " [        U5      5         S nAGM  S nAff = f)NFr   z*https://gateway.floatdb.com/v1/ranks/checkr‹   )Údatar.   r/   r-   Tz1FloatDB request failed 5 times for inspect link: rm   Úranksrb   zKFailed to get iteminfo from inspect server after 5 tries for inspect link: z?url=z%RANK CHECK RESPONSE FOR INSPECT LINK z: zpINSERT INTO ownskinsdb (full_item_name, inspect_link, iteminfo, rank, a, floaty) VALUES (%s, %s, %s, %s, %s, %s)ÚiteminfoÚfull_item_namer�   zRows affected: z Inserted item with inspect link z into DB with rank z and float zItem with inspect link z( already exists in DB, skipping. Error: )r   ÚpostRequestEvomir<   r=   r   r9   r    r?   rB   Úlistr›   ro   r   rE   rm   ÚgenerateFinalListingÚ
topfloatdbÚ	db_cursorÚexecuteÚrowcountÚpsycopg2ÚerrorsÚUniqueViolationrF   )r   Úinspect_linkrž   r—   rO   Úfloatdb_counterÚresponse_rawrR   rT   r­   ÚassetidÚ	rank_dictr•   ÚrankrŸ   Úcheck_assetidÚ
listing_idÚpriceÚcounterÚcurs                       r   r�   ÚNewMarketBot.csfloatRequestˆ  sR  € ØˆØˆßðØ#×2Ñ2×CÑCØ@ÈÐR^ÐQ_ÐG`ð  Dð  �ð  Ñ'Ø# qÑ(�OÜ—J’J˜q”MÙØ" QÓ&Ø�CÜ—O’OÐ$WÔZ]Ð^jÓZkÑ$kÔlÙØ'×,Ñ,Ó.�ð ˜hÓ&Ø# qÑ(�OÜ—J’J˜q”MÙà�ð ˜(Ô"Ø  Ñ)�Ü$�GØ %¡�IÜ $ Y§_¡_Ó%6Ó 7¸Ñ :‘I�Cä%;˜	Ø(1°!©˜Ø%.¨q¡\˜
Ø )¨!¡˜ä˜}Ó-´°W³Õ=Ø+4°Q©<˜Là"'˜CØ&'˜GÞ&)Ø '¨1¡ Ø#*¨Q£;Ø*. CÜ$*§O¢Oð  5Bô  EHð  IUó  EVñ  5Vô  %WÙ$,ð
!-Ø/3×/BÑ/B×/RÑ/RØ(,×(?Ñ(?À'Ñ(IÈLÑ(Xó0&ç&*¡d£fð %-ð (0Ñ';Ø.2¨÷ '* cô$  # 4›y¨A›~Ü$*§L¢LÐ3XÐYeÐXfÐfhÐ1iÔloÐpxÓlyÑ1yÔ$zØ$(×$=Ñ$=¸hÐV[Ð]gÐimÔ$nà,°Õ5ð!-Ü)3×)=Ò)=Ô)?À3Ø(+¯©ð -_Ü-0°¸*Ñ1EÐFVÑ1WÓ-XÔZ]Ð^jÓZkÔmpÐqyð  {Eñ  rFó  nGô  ILð  MQó  IRô  TWð  X_ó  T`ð  bjð  kuñ  bvð  wCñ  bDð  -Eô)*ô )/¯ªÐ8IÌCÐPS×P\ÑP\ÓL]Ñ8]Ô(^Ü(.¯ªÐ:ZÐ[gÐZhÐh{ð  }Að  |Bð  BMð  NVð  Wañ  Nbð  coñ  Npð  Mqð  9rô  )s÷ *@ó !&ôc &<ñ	  %÷? “#øô. ó Ü—’¤ A£Ô'Ø 1Ñ$�Ü—
’
˜1”Þûð	ûôF (1ó !-Ü$*§O¢O´C¸³FÔ$;Ü$(§J¢J¨q¤MÞ$,ûð!-ú÷ *@Õ)?ûô (0§¡×'FÑ'Fó !-Ü$*§N¢NÐ5LÈ\ÈNð  [Cð  4Dô  GJð  KLó  GMñ  4Mô  %NÞ$,ûä'0ó !-Ü$*§O¢O´C¸³FÔ$;Þ$,ûð!-ús„   Ž;K Á*K Á71K Â*K Å>LÇ*M6Ç?B&M%Ê%M6Ë
LË:LÌLÌ
M"Ì!5MÍM"Í%
M3Í/M6Í3M6Í6O9Î&OÏO9ÏO4Ï4O9r~   c                 ó´   •  U R                   R                  US5      nUc  g U$ ! [         a)  n[        R                  " [        U5      5         S nAg S nAff = f)NF)r   r;   rB   r   r9   r    )r   r~   rR   rT   s       r   ry   ÚNewMarketBot.getInspectLinksá  sU   € ð		Ø×*Ñ*×HÑHØ# UóˆHð ÑØØˆOøÜó 	Ü�OŠOœC ›FÔ#Üûð	ús   ‚$ ¢$ ¤
A®AÁAc           	      ó2  • S[        US   S   5      R                  SS5      -   S-   [        U5      -   S-   [        US   S   5      -   n[        [        US   S   5      R                  SS5      U[        U5      U[        U5      S	9nU R                  Xu5        g )
Nr8   r®   r¯   Ú z%20z#buylisting|z|730|2|r–   )r¯   Ú
market_urlrº   r¿   rÂ   )r    Úreplacer   ÚsingleCheckForPotentialBuy)r   r®   rº   rÂ   rÁ   r¿   Úmarket_linkÚfinal_listings           r   r²   Ú!NewMarketBot.generateFinalListingí  sÝ   € à=Ü�(˜:Ñ&Ð'7Ñ8Ó9×AÑAÀ#ÀuÓMñNàñô �*‹oñð ñ	ô
 �(˜:Ñ& sÑ+Ó,ñ-ð 	ô %´C¸ÀÑ8LÐM]Ñ8^Ó4_×4gÑ4gÐhkÐmrÓ4sð  ALô  [^ð  _kó  [lð  swô  Bð  CHó  Iñ  JˆØ×'Ñ'¨Õ<r   rÎ   c                 óê  • 0 nSnSnU(       Gd  SnUS-  n U R                   R                  S[        R                  " UR                  5      -   S-   S5      nUc9  US:”  a1  Sn[
        R                  " S	[        UR                  5      -   S
-   5        MŒ  [        R                  " UR                  5      nUS :X  a  M´  SU;   a&  US   nUS S n[        U5      R                  SS5      nOÌU R                   R                  S[        UR                  5      -   S5      n
Uc  GM  U
R                  n[        R                  " US9nUc  GM>  U R                   R                  US5      nUc  GM`  [        R                  " UR                  5      n[        [        US   5      5      S:”  a  [        US   5      S S n[        U5      R                  SS5      n[        U5      R                  SS5      n [!        UR"                  5      [!        U5      S-  ::  a  [        UR$                  5      [        UR"                  5      [        UR&                  5      /U[(        R*                  R-                  UR                  5      '   [        R.                  " U5        O�UR0                  S:w  a€  US:X  az   [2        R4                  " SSSSSS9nUR7                  5       nUR9                  SUR0                  U45        UR;                  5         UR=                  5         Wb  UR=                  5         SnU(       d  GM  g g ! [         a+  n	[
        R                  " [        U	5      5         S n	A	GMU  S n	A	ff = f! [        [2        R>                  4 a)  n[
        R                  " [        U5      5         S nAN—S nAff = f! Wb  UR=                  5         f f = f! [@         a%    [
        R                  " S [        W	5      -   5         NÓf = f)!NFr   r.   zBhttps://steamcommunity.com/market/priceoverview/?market_hash_name=z&appid=730&currency=3rÂ   r3   TzCouldn't get price for z! after 10 times, skipping for nowÚlowest_priceéÿÿÿÿÚ,Ú.r8   )Úlisting_source_pageÚlowest_sell_orderr/   éþÿÿÿrÉ   r`   z--Ú0r-   i9  ÚpostgreszBerufsorientierung1!z23.88.122.57Ú6432)ÚdatabaseÚuserÚpasswordÚhostÚportz5INSERT INTO floats(inspect_link, rank) VALUES(%s, %s)z*ValueError in singleCheckForPotentialBuy: )!r   r;   rw   ÚencodeAidsItemNamer¯   r   rm   r    r?   r@   rA   rB   r9   rË   ÚmanuallyGetNameIDURLrG   ÚfloatrÂ   r¿   rÊ   rH   rI   ÚunquoteÚwriteSingleCheapSkinToFilerº   r·   ÚconnectÚcursorrµ   ÚcommitÚcloseÚDatabaseErrorÚ
ValueError)r   rÎ   r¿   Úsingle_cheap_top_skinrO   rP   rÑ   Úprice_overview_pageÚprice_overview_jsonrT   rR   rÕ   Ú
nameid_urlÚalt_responseÚalt_price_overview_jsonÚpostgresql_connÚpostgresql_currm   s                     r   rÌ   Ú'NewMarketBot.singleCheckForPotentialBuyú  sË  € Ø "ÐØˆØˆßØˆLØ˜aÑˆNðØ&*×&9Ñ&9×&WÑ&WØXÜ%×8Ò8¸×9UÑ9UÓVñWà-ñ.ð ó	'Ð#ð 'Ñ.Ø%¨Ó*Ø"˜ÜŸšØ5Ü! -×">Ñ">Ó?ñ@àAñBôñ
 ä&*§j¢jÐ1D×1IÑ1IÓ&JÐ#ð
 # dÓ*ÙàÐ!4Ó4Ø2°>ÑB�Ø+¨C¨RÐ0�Ü" <Ó0×8Ñ8¸¸cÓB‘à×.Ñ.×LÑLØEÜ˜-×6Ñ6Ó7ñ8àó�ð
 'Ñ.ÚØ&.§m¡mÐ#Ü,×AÒAØ(;ñ�
ð Ñ%Úà#'×#6Ñ#6×#TÑ#TØ" Gó$�Lð $Ñ+Ú Ü.2¯jªj¸×9JÑ9JÓ.KÐ+Üœ3Ð6Ð7JÑKÓLÓMÐPQÓQÜ'*Ø3Ð4GÑHó(à˜2ð(˜ô ˜|Ó,×4Ñ4°S¸"Ó=ˆLÜ˜|Ó,×4Ñ4°T¸3Ó?ˆLð"WÜ˜×,Ñ,Ó-´°|Ó1DÀqÑ1HÓHä˜M×.Ñ.Ó/Ü˜M×/Ñ/Ó0Ü˜M×4Ñ4Ó5ðaÐ)¬&¯,©,×*>Ñ*>¸}×?[Ñ?[Ó*\Ñ]ô
 $×>Ò>Ð?TÕUà$×1Ñ1°RÓ7¸DÀD»Lð8Ü.6×.>Ò.>Ø)3Ø%/Ø)?Ø%3Ø%+ñ/˜Oð .=×-CÑ-CÓ-E˜NØ*×2Ñ2Ø Wà$1×$>Ñ$>Ø$(ð!"ôð ,×2Ñ2Ô4Ø*×0Ñ0Ô2ð  /Ñ:Ø /× 5Ñ 5Ô 7ð ˆC÷A “#øô* ó Ü—’¤ A£Ô'ÞûðûôH !*¬8×+AÑ+AÐBó 5Ü"ŸLšL¬¨U«×4Ñ4ûð5ûð  /Ñ:Ø /× 5Ñ 5Õ 7ð  ;ûäó WÜ—’Ð LÌsÐSTËvÑ UÖVðWúsn   —A:L, Â L, Ç*B#O ÊO Ê%A&M$ ÌO Ì,
M!Ì6MÍM!Í$N'Í>N"ÎN* Î"N'Î'N* Î*O Ï O Ï,O2Ï1O2)r   r   r
   r   r   r   r   r   r   r   r   N)F)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r    r±   ÚqueueÚQueuer   r"   r   r!   r©   r�   ry   r²   r   rÌ   Ú__static_attributes__© r   r   r   r      s‚   † ð>àð>ð ð>ð ð	>ð
 ð>ð Ÿ™ô>ò(
òk@òZwòt0FôdW&ðr
°3ô 
ò=ñd¸÷ dð dr   r   )r?   Úurllib.parserH   r<   rC   r   r   rw   r·   rø   r   r³   ÚLoggingFormatterr   ÚSeleniumExecutorrq   Úobjectr   rû   r   r   Ú<module>r      s=   ðÛ Û Û Û Ý Ý )Û Û Û Ý %Û Ý #Û Û 
ôM	�6õ M	r   