Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.31 KB | None | 0 0
  1. import os
  2. import time
  3. import json
  4. import string
  5. import urllib2
  6. import shutil
  7. from operator import itemgetter
  8. API_KEY = "5E861D412252A092F0B014BC273B17D9"
  9. class User(object):
  10. def __init__(self, steamid, itemid=None):
  11. self.steamid = steamid
  12. self.PUBLIC_URL = "http://steamcommunity.com/profiles/%s/inventory/json/730/2/?l=english"%self.steamid
  13. self.API_URL = "http://api.steampowered.com/IEconItems_730/GetPlayerItems/v0001/?key=%s&SteamID=%s"%(API_KEY, self.steamid)
  14. self.public_contents = None
  15. self.api_contents = None
  16. self.items = {}
  17. self.itemid = itemid
  18. if self.itemid:
  19. self.get_api_contents()
  20. self.get_single_item(self.itemid)
  21. else:
  22. self.get_public_contents()
  23. self.get_api_contents()
  24. self.get_items()
  25. def get_public_contents(self):
  26. try:
  27. self.public_contents = json.loads(urllib2.urlopen(self.PUBLIC_URL).read())
  28. except:
  29. print "Error gettings items from public API server. Retrying..."
  30. time.sleep(1)
  31. return self.get_public_contents()
  32. def get_api_contents(self):
  33. try:
  34. self.api_contents = json.loads(urllib2.urlopen(self.API_URL).read())
  35. except:
  36. print "Error getting items from API Server. Retrying..."
  37. time.sleep(0.2)
  38. return self.get_api_contents()
  39. def get_items(self):
  40. try:
  41. print " "
  42. print "Listing all items..."
  43. print " "
  44. time.sleep(0.5)
  45. path = os.getcwd().replace('\\', '/')
  46. file = open(path + '/%s.txt'%self.steamid, 'w')
  47. for item in self.public_contents['rgInventory']:
  48. index = "%s_%s"%(self.public_contents['rgInventory'][item]['classid'], self.public_contents['rgInventory'][item]['instanceid'])
  49. self.items[index] = {}
  50. self.items[index]['id'] = self.public_contents['rgInventory'][item]['id']
  51. for item in self.sort_items(self.public_contents['rgDescriptions']):
  52. if item[0] in self.items:
  53. self.items[item[0]]['name'] = "".join(c for c in self.public_contents['rgDescriptions'][item[0]]['market_hash_name'] if c in string.printable)
  54. nametag = ""
  55. if 'fraudwarnings' in self.public_contents['rgDescriptions'][item[0]]:
  56. self.items[item[0]]['nametag'] = self.public_contents['rgDescriptions'][item[0]]['fraudwarnings'][0]
  57. nametag = "(%s) "%self.items[item[0]]['nametag']
  58.  
  59. id = self.items[item[0]]['id']
  60. name = self.items[item[0]]['name']
  61. wear = self.get_wear(id)
  62. if name == 'StatTrak AK-47 | Vulcan (Field-Tested)':
  63. file.write("%s\n%sID: %s Wear: %s\n\n"%(name, nametag, id, wear))
  64. print "%s\n%sID: %s Wear: %s\n"%(name, nametag, id, wear)
  65. file.close()
  66. if wear<'0.2':
  67. shutil.copy('%s.txt'%self.steamid, 'judasz/%s.txt'%self.steamid)
  68. except:
  69. print"dupa"
  70. def get_single_item(self, id):
  71. wear = self.get_wear(id)
  72. print " "
  73. print "Wear of %s: %s"%(id, wear)
  74. print " "
  75. self.next()
  76. def get_wear(self, id):
  77. try:
  78. for item in self.api_contents['result']['items']:
  79. if str(item['id']) == str(id):
  80. for attribute in item['attributes']:
  81. if attribute['defindex'] == 8:
  82. return attribute['float_value']
  83. except:
  84. print "Failed to get the wear value. Something went wrong.. :("
  85. time.sleep(3)
  86. def next(self):
  87. input = raw_input("Enter another Steamid64:\n")
  88. if not input.startswith('765'):
  89. print "You entered an invalid Steamid64. Please try again."
  90. return self.next()
  91. try:
  92. steamid = int(input)
  93. print " "
  94. print "Listing all items..."
  95. print " "
  96. self.__init__(steamid)
  97. except:
  98. print "You entered an invalid Steamid64. Please try again."
  99. return self.next()
  100. def sort_items(self, contents):
  101. sorted_items = {}
  102. for item in contents:
  103. if contents[item]['tradable'] == 0:
  104. continue
  105. if contents[item]['type'] in ('Base Grade Key', 'Base Grade Container'):
  106. continue
  107. if 'Sticker' in contents[item]['type']:
  108. continue
  109. sorted_items[item] = contents[item]['market_hash_name']
  110. return sorted(sorted_items.items(), key=itemgetter(1))
  111. def get_steamid():
  112. steamid = raw_input("Enter the Steamid64: ")
  113. if not steamid.startswith("765"):
  114. print "You entered an invalid Steamid64. Please try again."
  115. return get_steamid()
  116. try:
  117. steamid = int(steamid)
  118. get_itemid(steamid)
  119. except:
  120. print "You entered an invalid Steamid64. Please try again."
  121. return get_steamid()
  122. def get_itemid(steamid):
  123. print " "
  124. print "Connecting..."
  125. print " "
  126. print " "
  127. time.sleep(1)
  128. return User(steamid)
  129. def start():
  130. if not API_KEY:
  131. print "API Key not defined. Get your api key here: https://steamcommunity.com/dev/apikey"
  132. time.sleep(3)
  133. return
  134. print " "
  135. print "-----------------------------------------------------"
  136. print "CS:GO ITEM WEAR-FINDER WRITTEN BY H!GH VOLTAGE"
  137. print "http://steamcommunity.com/profiles/76561197982482557/"
  138. print "-----------------------------------------------------"
  139. print " "
  140. print "General Wear Values:"
  141. print "0.00 - 0.06 : Factory New"
  142. print "0.06 - 0.15 : Minimal Wear"
  143. print "0.15 - 0.37 : Field Tested"
  144. print "0.37 - 0.44 : Well-Worn"
  145. print "0.44 - 1.00 : Battle-Scarred"
  146. print " "
  147. print "Note: For some items the minimum and maximum wear values are different"
  148. print "Read them up here: http://i-am-fat.org/csgo-skins/#rifles"
  149. print " "
  150. get_steamid()
  151. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement