Poodletooth-iLand/toontown/catalog/PopularItemManagerAI.py
2015-03-03 17:10:12 -05:00

75 lines
2.5 KiB
Python

from CatalogItemList import CatalogItemList
from CatalogInvalidItem import CatalogInvalidItem
from CatalogFurnitureItem import CatalogFurnitureItem
from CatalogChatItem import CatalogChatItem
from CatalogClothingItem import CatalogClothingItem
from CatalogEmoteItem import CatalogEmoteItem
from CatalogWallpaperItem import CatalogWallpaperItem
from CatalogWindowItem import CatalogWindowItem
from CatalogFlooringItem import CatalogFlooringItem
from CatalogMouldingItem import CatalogMouldingItem
from CatalogWainscotingItem import CatalogWainscotingItem
from CatalogPoleItem import CatalogPoleItem
from CatalogPetTrickItem import CatalogPetTrickItem
from CatalogBeanItem import CatalogBeanItem
from CatalogGardenItem import CatalogGardenItem
from CatalogRentalItem import CatalogRentalItem
from CatalogGardenStarterItem import CatalogGardenStarterItem
from CatalogNametagItem import CatalogNametagItem
from CatalogToonStatueItem import CatalogToonStatueItem
from CatalogAnimatedFurnitureItem import CatalogAnimatedFurnitureItem
from CatalogAccessoryItem import CatalogAccessoryItem
class PopularItemManagerAI:
def __init__(self, air):
self.air = air
self.popularItemDict = {}
def avBoughtItem(self, item):
# Load the current popularItems
try:
popularItems = simbase.backups.load('catalog', ('popular-items',), default=({}))
except ValueError:
return
itemOutput = item.output()
# Don't allow rental items!
if 'CatalogRentalItem' in itemOutput:
return
if not itemOutput in popularItems:
popularItems[itemOutput] = 1
else:
popularItems[itemOutput] += 1
# Save it.
try:
simbase.backups.save('catalog', ('popular-items',), (popularItems))
except ValueError:
pass
def requestPopularItems(self):
# Load the current popularItems
try:
self.popularItemDict = simbase.backups.load('catalog', ('popular-items',), default=({}))
except ValueError:
pass
sortedItems = [(x,y) for y,x in sorted([(y,x) for x,y in self.popularItemDict.items()],reverse=True)]
finalItems = []
if len(sortedItems) <= 12:
for item in sortedItems:
item = eval(item[0])
finalItems.append(item)
else:
for i in xrange(12):
item = eval(sortedItems[i][0])
finalItems.append(item)
catalog = CatalogItemList(finalItems)
return catalog.getBlob()