
    !Qfw6                     <   d dl Z d dlmZ d dlZd dlZd dl 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	m	Z	 d Z
d Zdej                  fdZdej                  fdZd	efd
Zdej                  fdZdej                  fdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)    N)datetime)RequestManagerc                 2   g }| d   }d}d}t        |      D ]|  }|du r |S d}d}	|r|dz  }
|	dz  }	|	dkD  rd}t        |      dz   t        |
      z   d	z   t        |      z   d
z   }d}d}	 |dz   dz  }|dz  }|dkD  rt        dt        |      z          g c S |j                  ||      }t	        |      }|!t        d       t        j                  d       o	 t        |      }|!t        d       t        j                  d       |du r)d}t        d       t        |d          t        |d          t        |d         dkD  rG|d   j                         D ]1  }|d   t        |         }t        ||      }|j                  |       3 d}|sk |S )Npagesd   FTr      
   z&start=z&count=z&currency=3      z Couldn't get page for 20 times: )responsez)Response Validation failed, trying again.response_jsonz%This was the last page, will end now.starttotal_countlistinginfo)listing_infopage)rangestrprint
getRequestvalidateResponseInspectListtimesleepnoMorePageslenkeysbuildListingInfoListappend)result_jsonlisting
ReqManagerlisting_info_listr   count	last_pager   endrepeat_counterr   single_listings_urlget_alternatorget_counterr   r   no_more_pages
listing_idr   
all_paramss                       8/var/www/cs2snipeproduction/MarketBot/HelperFunctions.pysingleBuildInspectListr/   $   s    EE Ie ;r q 3JEaN"Ge*  e*	
      NK"01"4!9q #<sCV?WWXI%001DnU ;X N (EFJJqM'mDM$AB

1$ 	=>mG,-mM23=/014"/">"C"C"E 9J#0#?J#PL!5<VZ![J%,,Z89 Ci ;x     c                 @   dg ig}d}d}| D ]Z  }|dkD  r|dz  }|j                  dg i       d}	 ||   d   j                  dt        |j                               d   i       |dz  }\ |S # t        $ r)}t	        |        t	        t        |             Y d }~d }~ww xY w)Nlinksr   c   r   link)r   listvalues	Exceptionr   r   )inspect_link_listbulk_inspect_link_listsplitted_list_indexinspect_link_counterinspect_linkes         r.   
bulkActionr>   i   s    &m_) "$1$"))7B-8#$ 	"#67@GGl1134Q78 !A%  "!	  	#$#a&M	s   8A++	B4BBr   c                     | y	 | j                         }d|vryt	        |d         dk(  ry|S # t        $ r}t        t        |             Y d }~yd }~ww xY w)NFdatar   jsonr7   r   r   r   r   r   r=   s      r.   validateSkinportSearchrD   ~   sc      ]"
= !Q&  c!fs   . 	AAAc                     | y 	 | j                         }|y d|v r	|d   dk(  ry d|v rt	        |d         dk(  ry |S # t        $ r}t        t        |             Y d }~y d }~ww xY w)Nr   r   resultsrA   rC   s      r.   validateResponseHashedNameListrG      s      %'1,M!}Y'(A-  c!fs   = 	A$AA$r   c                 F    d| v rd| v rt        | d         dz   | d   k\  ryyy )Nr   r   r   TF)intr   s    r.   r   r      s8     %']*B}W%&,m0LLr0   c                 L   | y | j                   dk(  ry 	 | j                         }|y |d   |d   k(  r|S d|v r|d   du s|d   dk(  ry d|v r|d   dk(  rt        |       ry |S d|vry t        |d         dk(  ry |S # t        $ r}t        t	        |             Y d }~y d }~ww xY w)	Nnullr   pagesizesuccessFfalser   r   )textrB   r7   r   r   safetyCheckStockr   rC   s      r.   r   r      s    }} 
 ]#}Z'@@M!#u,i0HG0S%'1,) %$M)
='(A-5  c!fs   A< <	B#BB#c                    	 t        | j                        j                  d      dd d   }|j                  d      rn|j                  d      d   }dt        |j                  d	      d   j                  d
      d         z   }|j                  d      d   j                  d      d   }nu|j                  d      rm|j                  d      d   }dt        |j                  d	      d   j                  d
      d         z   }|j                  d      d   j                  d      d   }n|j                  d      r`t        |j                  d      d         j	                  dd      }dt        |j                  d	      d   j                  d
      d         z   }n|j                  d      r;|j                  d      d   }|j                  d	      d   j                  d
      d   }n:|j                  d	      d   j                  d
      d   }|j                  d      d   }dt        |      z   dz   t        |      z   }t               }|j                  |      j                         }t        |d   d   d         dk(  ry|d   d   d   d   d   d   dk(  r(d|d   d   d   d   vry|d   d   d   d   d   }|dkD  ryy# t        $ r)}	t        t        |	             t        d       Y d }	~	y d }	~	ww xY w)N/r   StatTrakzStatTrak%E2%84%A2%20r   z	StatTrak-%28%29z%20%28SouvenirzSouvenir%20z	Souvenir-z %E2%98%85%20StatTrak%E2%84%A2%20 z%E2%98%85%20z)https://api.skinscout.net/api/items?name=z
&exterior=)urlitemitem_selectedmarket_dataFmarketplacenameSteamstockTu#   AUAUAUAUAUU SORRY FÜR MÜLLSCHEIß)r   rZ   split
startswithreplacer   getRequestNakedrB   r   r7   r   )
r   	full_namemarket_hash_nameexterior	name_onlyrZ   reqrra   r=   s
             r.   rP   rP      s   !5%++C026r:	
+(/EFqI"S)9)?)?)Fq)I)O)OPU)VWX)Y%ZZH!(>?BHHRSTUI!!*-(}=a@"S)9)?)?)Fq)I)O)OPU)VWX)Y%ZZH!6q9??I!LI!!"DEIOOH5a89AABXZ\]I"S)?)B)H)H)OPQ)R%SSH!!.1!1!4I u-a066u=a@H u-a066u=a@H!1!4I9C	NJ\Y\_`h\iiC(--/qy)-89Q>V9_%m4Q7FvNRYYai8GJJfIo.}=a@IEqy 5c!f3445s$   I<J? ?'J? 'J? ?	K1K,,K1c                    t        | d         }| d   d   }d| d   vry | d   d   d   d   }t        |      j                  d      }t        |d         d	d  }d
t        |      z   dz   t        |      z   dz   t        |      z   }d| v r#t        | d         dz  }t        | d         dz  }	n"t        | d         dz  }t        | d         dz  }	||	z   }
t        |
d      }
||||||
dS )N	listingidassetidmarket_actionsr   r4   %rT   r   Csteam://rungame/730/76561202255233023/+csgo_econ_action_preview%20MADconverted_pricer   converted_feepricefee   )r4   madr   rw   )r   rb   floatround)r   r   m_parama_paramfull_inspect_linkspliced_inspect_linkd_paramfinal_inspect_linkrw   rx   
full_prices              r.   r   r      sK   ,{+,G7#D)G|G44$W-.>?B6J0177<&r*+AB/GM
g,	
	 g,	 		
 g,	  L(l#456<L12S8 l7+,s2L'(3.Jz1%J # r0   c                     t         j                  j                  |       }|j                  dd      }|j                  dd      }|S )NrV   (rW   ))urllibparsequoterd   )full_item_nameitem_encodeds     r.   encodeItemNamer     s@    <<%%n5L''s3L''s3Lr0   c                 x    d }| D ]  }|d   |d   k(  s|d   }|c S  |d k(  rt        dt        |      z          yy )Nrz   rw   NO PRICE WITH: r   writeErrorToLogr   )listings_info_listbulk_response_json_on_jrw   is       r.   getPricer   %  s[    E S6,S11gJEL })C0G,HHI r0   c                 x    d }| D ]  }|d   |d   k(  s|d   }|c S  |d k(  rt        dt        |      z          yy )Nrz   r   r   r   r   )r   r   r   r   s       r.   getPager   0  s[    D S6,S11V9DK t|)C0G,HHI r0   c                 x    d }| D ]  }|d   |d   k(  s|d   }|c S  |d k(  rt        dt        |      z          y y )Nrz   r4   zNO INSPECT LINK WITH: r   )r   r   r<   r   s       r.   getRealInspectLinkr   ;  s]    L  S6,S11V9L  t037N3OOP r0   c                 ^    dt        |       z   dz   t        |      z   dz   t        |      z   }|S )Nz/https://steamcommunity.com/market/listings/730/z#buylisting|z|730|2|r   )r   rz   r{   market_links       r.   generateMarketLinkr   F  sM    9
l
	
	 a&	 		
 a&	  r0   c                     t        |       dk7  r.dt        |       z   dz   t        |      z   dz   t        |      z   }|S dt        |      z   dz   t        |      z   dz   t        |      z   }|S )N0rr   rs   rt   r   )rz   sr{   r|   r<   s        r.   generateInspectLinkr   R  s    
1v}Q!f !f 	
 !f 	$  R!f !f 	
 !f 	 r0   c                     t        j                   t         j                  t         j                        }	 |j                  | t	        |      f       |j                  d       y#  Y yxY w)Nry   TF)socketAF_INETSOCK_STREAMconnectrI   shutdown)ipportr   s      r.   isOpenr   i  sM    }}V^^V%7%781iiSY jjms   -A" "A&c                 (   t        j                         }|j                  d      }t        ddd      }|j	                  t        |      dz   t        |       z          |j	                  d       |j                          t        j                  d       y )	Nz%d/%m/%Y %H:%M:%Sz
errors.txtr{   utf-8encodingz: 
g      ?)	r   nowstrftimeopenwriter   closer   r   )errorr   	dt_stringfs       r.   r   r   r  sg    
,,.C01I\31AGGC	NT!CJ./GGDMGGIJJsOr0   c                     t        t        |       dd      }|j                  t        |      dz          |j                          y )Nr{   r   r   r   )r   r   r   r   )filenamelogr   s      r.   writeAnythingToAnyFiler   |  s1    S]C'2AGGCHtOGGIr0   )rB   r   r   urllib.parser   ossysr   requestsr   r/   r>   ResponserD   rG   r   r   r   rP   r   r   r   r   r   r   r   r   r   r    r0   r.   <module>r      s          	 
   )CJ"*X%6%6  X->-> &
s 
"(*;*; "L"5x00 "5H#L	.r0   