def receive_filtered_listings(self, item_link, price=10 ** 10, wear=10, slowmode=False, maxnum=None): filtered = [] l_receiver = ListingReceiver(item_link, self.timeouter, self.goclient.client.get_web_session()) if self.goclient.goclient.ready: listings = l_receiver.get_all_listings(maxnum) print("found %s entries for item" % len(listings)) inprice = [x for x in listings if x.total_price <= float(price)] print("%s with correct price" % len(inprice)) for listing in listings: with self.db_lock: db = DBConnector() saved_listing = db.get_listing_by_id(listing.id) if listing.total_price <= float(price): if not saved_listing: iteminfo = self.goclient.get_item_information(listing.return_param_dict()) time.sleep(0.2) if iteminfo: floatv = self.goclient.get_float_value(iteminfo) listing.paintwear = floatv listing.quality = iteminfo.quality listing.paintindex = iteminfo.paintindex db.create_listing(listing) if listing.paintwear <= float(wear): # print "Float of this item %s index %s" %(floatv, iteminfo.paintindex) # print "Price: %s; listing id: %s" %(listing.total_price, listing.id) filtered.append(listing) print("%s of them with correct wear" % len(filtered)) return filtered else: print("CSGO not ready") print("Client %s logged in %s" % (str(self.goclient.client), self.goclient.client.logged_on)) self.goclient._connect_go() return filtered
def work_info_q(self): while not self.listingq.empty(): listing = self.listingq.get(True, 10) # print("Input Listing %s"%listing) with self.db_lock: db = DBConnector() saved_listing = db.get_listing_by_id(listing.id) # print("Listing in work %s"%listing) if not saved_listing: # print(listing.return_param_dict()) iteminfo = self.goclient.get_item_information(listing.return_param_dict()) # time.sleep(0.2) if iteminfo: floatv = self.goclient.get_float_value(iteminfo) print("Float value aquired %s" % floatv) listing.paintwear = floatv listing.quality = iteminfo.quality listing.paintindex = iteminfo.paintindex db.create_listing(listing) self.listingqfull.put(listing, True, 10) else: pass