Ejemplo n.º 1
0
def getItemsByCategory(filter, where=None, eager=None):
	if isinstance(filter, int):
		filter = Category.ID == filter
	elif isinstance(filter, basestring):
		filter = Category.name == filter
	else:
		raise TypeError("Need integer or string as argument")

	filter = processWhere(filter, where)
	return gamedata_session.query(Item).options(*processEager(eager)).join(Item.group, Group.category).filter(filter).all()
Ejemplo n.º 2
0
def getVariations(itemids, where=None, eager=None):
	for itemid in itemids:
		if not isinstance(itemid, int):
			raise TypeError("All passed item IDs must be integers")
	# Get out if list of provided IDs is empty
	if len(itemids) == 0:
		return []

	itemfilter = or_(*(metatypes_table.c.parentTypeID == itemid for itemid in itemids))
	filter = processWhere(itemfilter, where)
	joinon = items_table.c.typeID == metatypes_table.c.typeID
	vars = gamedata_session.query(Item).options(*processEager(eager)).join((metatypes_table, joinon)).filter(filter).all()
	return vars
Ejemplo n.º 3
0
def searchItems(nameLike, where=None, join=None, eager=None):
	if not isinstance(nameLike, basestring):
		raise TypeError("Need string as argument")
	# Prepare our string for request
	nameLike = u"%{0}%".format(sqlizeString(nameLike))

	if join is None:
		join = tuple()

	if not hasattr(join, "__iter__"):
		join = (join,)

	filter = processWhere(Item.name.like(nameLike, escape="\\"), where)
	items = gamedata_session.query(Item).options(*processEager(eager)).join(*join).filter(filter).all()
	return items