def updateExchange()

in forge/blade/lib/stattrak.py [0:0]


   def updateExchange(self, exchange):
      self.exchange = PriorityQueue()
      buyOffers = exchange.buyOffers
      sellOffers = exchange.sellOffers
      buyKeys, sellKeys = buyOffers.keys(), sellOffers.keys()
      exchangeKeys = list(set(list(buyKeys) + list(sellKeys)))

      for key in exchangeKeys:
         keyBuys, keySells  = buyOffers[key], sellOffers[key]
         topBuy  = keyBuys.peek()
         topSell = keySells.peek()

         if topBuy is not None:
            numBuy, maxBuyPrice   = topBuy.quantLeft, topBuy.itemPrice
            item = topBuy.item
         else:
            numBuy, maxBuyPrice = 0, 0

         if topSell is not None:
            numSell, minSellPrice = topSell.quantLeft, topSell.itemPrice
            item = topSell.item
         else:
            numSell, minSellPrice = 0, 0

         #Compute total buy value
         totalBuy = 0
         for e in keyBuys.queue:
            totalBuy += e.coffer

         entry = ExchangeEntry(item, numBuy, numSell, 
               maxBuyPrice, minSellPrice)

         self.exchange.put(entry, totalBuy)