def search(self, regex):
        try:
            spec = {'$or': [{'data.content'    : {'$regex': regex, '$options': 'im'}},
                            {'data.description': {'$regex': regex, '$options': 'im'}}]}
            fields = {'_id': 0}
            cur = self.db.docs.find(spec, fields)
        except Exception as e:
            raise DatabaseException(e)
        return [Document(**row) for row in cur]
def init(num_players):
	global MAP_WIDTH,MAP_HEIGHT,N_ITERATIONS,H_RATIO,W_RATIO,MIN_ROOM_SIDE,CENTER_HUB_HOLE,CENTER_HUB_RADIO,MAP_NAME
	MAP_WIDTH=int(500*sqrt(num_players))
	MAP_HEIGHT=MAP_WIDTH
	N_ITERATIONS=log(MAP_WIDTH*100,2)
	H_RATIO=0.49
	W_RATIO=H_RATIO
	MIN_ROOM_SIDE = 32
	CENTER_HUB_HOLE = 32
	CENTER_HUB_RADIO = CENTER_HUB_HOLE-MIN_ROOM_SIDE/2
	MAP_NAME="result%s.png"%MAP_WIDTH