
    Qf:                         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	 ej                         Zd Zd Zd Zd Zd Zd Zd Zd	 Zy)
    Nc           
         d}t        |       }t        |t              s9|d   du r2t        j                  |dd|d          t        j
                  |d       y g }t        j                  j                  d	
      5 }g }|D ]4  }	|j                  |j                  t        j                  | |	|             6 t        j                  j                  |      D ]$  }
t        5  ||
j                         z  }d d d        & 	 d d d        t!        |      dk(  r>t#        d      dz   }t        j                  |dd|       t%        dt#        |       z          y t'        j(                  | |||||      }|dk(  rd}n+t+        |      dk(  rt#        |      dz   }nt#        |      dz   }t        j                  |dd|       t%        dt#        |       z          y # 1 sw Y   xY w# 1 sw Y   xY w)Nzhttp://23.88.122.57:1337/result_jsonr   FTzNot possible   plus   )max_workers)r   listing
ReqManagerz matching skins found.Donez
Done with zNo matching skins found.z matching skin found.)buildSkinURLs
isinstancelistDBStuffupdateQueryupdateFreeSnipes
concurrentfuturesThreadPoolExecutorappendsubmitHelperFunctionssingleBuildInspectListas_completedlockresultlenstrprintFilterSkinsfilterSkinsint)r   steamidqueryidr   inspect_server_urlweapon_listings_url_listinspect_link_listexecutorr   urlfuturequery_messagecount_found_skinss                1/var/www/cs2snipeproduction/MarketBot/FindSkin.pyfindSkinr.      s   4,E.5#A&%/~/G/J $$Wf5				.	.2	.	> 5(+ 	CNN#:: +)	   	 !((55g> 	5F 5!V]]_4!5 5	55  "A!99GUFMBlS--.#//&(:JQX A2 !Q& 125LLM 125MMM>	,[)
)*)5 55 5s%   :A$GG2
GGGG$c           
         t        j                  ddddd      }|j                         }g }d| v rqd| d   v rt        | |      }nd	| d   v r|j	                  d
ddj                  t        | d               i       |j                         d   }|j	                  dddj                  t        | d               i       |j                         d   }|j                  dt        t        j                  t        |                  z          |j                  dt        t        j                  t        |                  z          n| d   D ]T  }t        | ||      }t        |t              s$ddt        |      z   dz   t        | d         z   fc S |j                  |       V n/t        | |      }t        |t              sdt        |d         fS |g}g }|D ]  }	t        | d         j                  d      rd}
nd}
| d   dk(  rt!        | |
|      }|du r5|j#                          |j#                          ddt        | d         z   fc S |j                  d|
z   dz   t%        |       z   t&        j(                  j+                  t        |	            z   dz          | d   dk(  rx|j                  dt&        j(                  j+                  t        | d         j-                  d            z   t&        j(                  j+                  t        |	            z   dz          | d   d k(  r|j                  dt&        j(                  j+                  t        | d         j-                  d            z   t&        j(                  j+                  t        |	            z   dz          t!        | |
|      }|d!u rpt/        d"       t/        t        |
             |j                  d|
z   d#z   t%        |       z   t&        j(                  j+                  t        |	            z   dz          nt/        d$       | d   d%k(  rt1        | |      }|d!u r|j                  dt&        j(                  j+                  d&      z   d#z   t&        j(                  j+                  t        | d         j-                  d            z   t&        j(                  j+                  t        |	            z   dz          n5|j#                          |j#                          dd't        | d         z   fc S | d   dk(  sD|j                  dt&        j(                  j+                  t        | d         j-                  d            z   t&        j(                  j+                  t        |	            z   dz          t1        | |      }|d!u r|j                  dt&        j(                  j+                  d&      z   d#z   t&        j(                  j+                  t        | d         j-                  d            z   t&        j(                  j+                  t        |	            z   dz          t!        | |
|      }|d!u sz|j                  d|
z   d#z   t%        |       z   t&        j(                  j+                  t        |	            z   dz           |j#                          |j#                          |S )(NpostgreszBerufsorientierung1!z23.88.122.575432)databaseuserpasswordhostport	conditionall)r   cursorminmaxFSELECT float FROM full_floats_low WHERE market_hash_name LIKE %(name)sname%{}%	skin_namer   GSELECT float FROM full_floats_high WHERE market_hash_name LIKE %(name)s FThere are no  skins for r      ★u   ★ StatTrak™u   StatTrak™type	stat_onlyz"No StatTrak version available for z/https://steamcommunity.com/market/listings/730/r   z/render/?query=non_stat_onlyutf-8stat_and_non_statTzIS EH DOz%20zWO IS AS??????????souvenirSouvenirz"No Souvenir version available for )psycopg2connectr9   getPossibleConditionsexecuteformatr   fetchoner   ConversionsfloatToConditionConversionfloatcheckIfConditionIsPossibler   getConditionForSkin
startswithcheckIfStatAvailableclosegetNameWithoutStarIfNeededurllibparsequoteencoder   checkIfSouvAvailable)r   connr9   checked_conditions	min_float	max_floatcondchecked_condr&   checked_conditionstattrakstat_availablesouv_availables                r-   r   r   ?   s   'D [[]Fk!K,,!6'" [11NNXs;{+C'DEF )!,INNYs;{+C'DEF )!,I %%c+@@yAQRSS %%c+@@yAQRSS
 $K0 89+tVT!,4 /CI"="MPS#K0Q #   #)),78 1fE,c2#03444"4!5!/ h{;'(33E:(H %Hv+-1+xPN&

BS,F    %++A -EF ,,$$S):%;<	=
 $$ v/1$++A,,$$S[)A%B%I%I'%RST,,$$S):%;<= $$ v"55$++A,,$$S[)A%B%I%I'%RST,,$$S):%;<= $$ 2+xPN%j!c(m$(//E 1[IJ ll((->)?@	A
 (( *+v*,1+vFN%(//Ell((45 ll(([-E)F)M)Mg)VWX ll((->)?@	A
 (( 

BS,F    v%'$++A,,$$S[)A%B%I%I'%RST,,$$S):%;<= $$ 2+vFN%(//Ell((45 ll(([-E)F)M)Mg)VWX ll((->)?@	A
 (( 2+xPN%(//E 1[IJ ll((->)?@	A
 ((ChR LLNJJL##    c                 D   t        | d         j                  d      rJt        j                  j	                  t        | d         j                  dd      j                  d            S t        j                  j	                  t        | d         j                  d            S )Nr>   rC   u   ★  rG   )r   rV   rZ   r[   r\   replacer]   r   s    r-   rY   rY      s    
;{#$//6||!!K()11&"=DDWM
 	
 ||!!#k+&>"?"F"Fw"OPPri   c                 "   |j                  dddj                  |dz   t        | d         z         i       |j                         }|H|j                  dddj                  |dz   t        | d         z         i       |j                         }|yy)	Nr;   r<   r=   r@   r>   r?   FTrN   rO   r   rP   )r   rf   r9   ra   rb   s        r-   rW   rW      s    
NNP	x#~K4L0MMNO !IUV]]8c>CK8P4Q#QRS	
 OO%	ri   c                    |j                  dddj                  dt        | d         z         i       |j                         }|E|j                  dddj                  dt        | d         z         i       |j                         }|yy)	Nr;   r<   r=   z	Souvenir r>   r?   FTrn   )r   r9   ra   rb   s       r-   r^   r^     s    
NNP	{S[1I-JJKL !IUV]];[5M1N#NOP	
 OO%	ri   c           
         |j                  dddj                  t        | d               i       |j                         d   }|j                  dddj                  t        | d               i       |j                         d   }t	        j
                  t        |      t        |            }t        |      }t        t        |            D ]  }d||   z   d	z   ||<    |S )
Nr;   r<   r=   r>   r   r?   ra   rb    ())
rN   rO   r   rP   rQ   floatToConditionListrS   r   ranger   )r   r9   ra   rb   possible_conditionsis         r-   rM   rM     s    
NNP	s;{#;<=> !!$I
NNQ	s;{#;<=> !!$I%::	"eI.> 233*+, E!%(;A(>!>!DAE ri   c           
         |j                  dddj                  t        | d               i       |j                         d   }|j                  dddj                  t        | d               i       |j                         d   }| d   dk(  rpd	| v rkt	        j
                  t        |      t        |      
      }t        |      |v rdt        |      z   dz   }|S ddt        |      z   dz   t        | d         z   fS yy )Nr;   r<   r=   r>   r   r?   filter_optionsother_filterr7   rq   rr   rs   FrA   rB   Fzidk what happened)rN   rO   r   rP   rQ   rt   rS   )r   rc   r9   ra   rb   rv   r7   s          r-   rT   rT   )  s   
NNP	s;{#;<=> !!$I
NNQ	s;{#;<=> !!$I#$6+%"-"B"B	*eI6F# 4y// 3t9,s2	  oD	9MIC,M    . 7ri   c           
         |j                  dddj                  t        | d               i       |j                         d   }|j                  dddj                  t        | d               i       |j                         d   }| d   dk(  rxd	| v rst	        j
                  t        |      t        |      
      }t        | d	         |v rdt        | d	         z   dz   }n&ddt        | d	         z   dz   t        | d         z   fS y| d   dk(  rut        | d         t        |      k\  r6t        | d         t        |      k  rdt	        j                  | d         z   }n%ddt        | d         z   dz   t        | d         z   fS | d   dk(  rvt        | d         t        |      k\  r7t        | d         t        |      k  rdt	        j                  | d         z   }|S ddt        | d         z   dz   t        | d         z   fS S )Nr;   r<   r=   r>   r   r?   ry   rz   r7   rq   rr   rs   FrA   rB   r{   exact_floatr@   zThe exact float z; is not in the range for possible floatvalues for the skin float_restrictionsfloat_for_restrictionzThe restriction float )rN   rO   r   rP   rQ   rt   rS   rR   )r   r9   ra   rb   rv   r7   s         r-   rU   rU   F  s   
NNP	s;{#;<=> !!$I
NNQ	s;{#;<=> !!$I#$6+%"-"B"B	*eI6F# ;{+,0CC 3{;'?#@@3F	o,1 !"$'K(@$AB B B .#$5]+,i0@@U&F
9F kDDM* I ,sM*0 MNPSK(Q  
 #$(<<456%	:JJu/0P
9P kDD34 I  2S346 MNPSK(Q  
 ri   )urllib.parserZ   r   rQ   r    concurrent.futuresr   	threadingrK   r   Lockr   r.   r   rY   rW   r^   rM   rT   rU    ri   r-   <module>r      sZ            y~~-`e$PQ""..:5ri   