Exemplo n.º 1
0
class Server(object):

	def __init__(self, config):
		self.url_map = Map([
			Rule('/', endpoint='generate_buy_list'),
		])
		self.magic_set_library = Magic_Set_Library()
	
	def generate_buy_list(self, request):
		params = self._parse_query_string(request.query_string)
		boosters = []
		for magic_set, booster_count in params.iteritems():
			for i in range(int(booster_count)):
				boosters.append(self.magic_set_library.make_booster(magic_set))
		card_map = {}
		for booster in boosters:
			for card in booster:
				card_map[card] = card_map.get(card, 0) + 1
		ret_str = ""
		for card, count in sorted(card_map.iteritems(), key=lambda x:x[0]):
			ret_str += "%s %s\n" %(count, card.name)
		return Response(ret_str)
	
	def _parse_query_string(self, query_string):
		if not query_string:
			return {}
		return dict(map(lambda x:(x.split('=')[0], x.split('=')[1]), query_string.strip().split('&')))

	def dispatch_request(self, request):
		adapter = self.url_map.bind_to_environ(request.environ)
		try:
			endpoint, values = adapter.match()
			return getattr(self, endpoint)(request, **values)
		except HTTPException, e:
			return e
Exemplo n.º 2
0
	def __init__(self, config):
		self.url_map = Map([
			Rule('/', endpoint='generate_buy_list'),
		])
		self.magic_set_library = Magic_Set_Library()