Example #1
0
def room3():
    tiles1 = [
        Coord(7, 1),
        Coord(7, 2),
        Coord(7, 3),
        Coord(7, 18),
        Coord(6, 4),
        Coord(6, 1),
        Coord(6, 3),
        Coord(7, 5),
        Coord(8, 4),
        Coord(8, 2),
        Coord(8, 3),
        Coord(8, 4),
        Coord(8, 5),
        Coord(9, 2),
        Coord(9, 3),
        Coord(9, 4)
    ]
    start1 = Coord(5, 0)
    dimensions1 = Coord(5, 5)
    doors1 = [Coord(7, 5)]
    items1 = [Item(KEY, Coord(6, 1)), Item(KEY, Coord(7, 3))]
    room3 = Room(start1, dimensions1, tiles1, doors1, items1)
    return room3
Example #2
0
def handle_stock_check_result(conn, stock_check_result: StockCheckResult,
                              item: Item, main_thread_loop,
                              stock_check_time: datetime, bot):
    item.item_name = stock_check_result.item_name if stock_check_result.item_name is not None and stock_check_result.item_name != "" else item.item_name
    item.last_stock_check = stock_check_time
    stock_check_result.item_name = item.item_name
    stock_check_result.fail_count = 0 if item.last_stock_check_result is None else item.last_stock_check_result.fail_count
    if not stock_check_result.is_item_available:
        stock_check_result.fail_count += 1
    else:
        stock_check_result.fail_count = 0

    if item.last_stock_check_result != stock_check_result:
        sql_item_persistence.sqlite_item_persistence.insert_price_history(
            conn, stock_check_result, int(item.last_stock_check.timestamp()))

    item.stock_status = stock_check_result.is_in_stock
    item.last_stock_check_result = stock_check_result
    sql_item_persistence.sqlite_item_persistence.upsert_item(conn, item)
    subscribed_users = sql_item_persistence.sqlite_item_persistence.get_subscribed_users_for_item(
        conn, item)

    for subscribed_user in subscribed_users:
        asyncio.run_coroutine_threadsafe(
            notify_valid_subscribers(subscribed_user, item, stock_check_result,
                                     bot), main_thread_loop)
Example #3
0
 def test_get_items_by_shop_and_category(self):
     dao = ItemsDAO(self.db)
     category_a = 'CategoryA'
     category_b = 'CategoryB'
     shop_a = '5f7c28c6e979c6a33a1f3f79'
     shop_b = '5f7c2d96e48e242b81178822'
     item_1 = Item('Name1', 1.0, category_a, shop_a, ProductDetails('', {}),
                   Image('', ''))
     item_2 = Item('Name2', 1.0, category_a, shop_b, ProductDetails('', {}),
                   Image('', ''))
     item_3 = Item('Name3', 1.0, category_b, shop_a, ProductDetails('', {}),
                   Image('', ''))
     item_4 = Item('Name4', 1.0, category_b, shop_b, ProductDetails('', {}),
                   Image('', ''))
     for item in [item_1, item_2, item_3, item_4]:
         dao.store_one(item.to_db_object())
     items = self.item_handler.get_items_by_shop_and_category(None, None)
     self.assertEqual(len(items), 4)
     items = self.item_handler.get_items_by_shop_and_category(
         shop_a, category_a)
     self.assertEqual(len(items), 1)
     self.assertEqual(items[0]['name'], item_1.name)
     items = self.item_handler.get_items_by_shop_and_category(shop_b, None)
     self.assertEqual(len(items), 2)
     self.assertEqual(len([i for i in items if i['name'] == item_2.name]),
                      1)
     self.assertEqual(len([i for i in items if i['name'] == item_4.name]),
                      1)
     items = self.item_handler.get_items_by_shop_and_category(
         None, category_b)
     self.assertEqual(len([i for i in items if i['name'] == item_3.name]),
                      1)
     self.assertEqual(len([i for i in items if i['name'] == item_4.name]),
                      1)
Example #4
0
def _map_item(item_id):
    # fetch data
    item = get_item(item_id)
    # generate map
    (mapped, links) = map_item(item)
    this_mapped = mapped[None]
    if list(verify_map(this_mapped)):
        print "Validation errors in mapping item %s: %r, continuing." % (item_id, list(verify_map(this_mapped)))
    # First, update this item's map
    Item.update_map(json.dumps(this_mapped, separators=(',', ':')), item_id)
    # Then, go through the links, creating items as needed with the types designated by their mapping paths
    for (node, destination, data_id) in links:
        link_type = '%'.join([str(d) for d in destination])
        if node is None:
            node_item = item_id
        else:
            node_item = data_to_item(node)
        target_item = data_to_item(data_id)
        if target_item is None:
            target_item = _create_item(_link_type_to_item_type(link_type))
            print "%s -> %s" % (data_id, target_item)
            _register_data_item(target_item, data_id, '{}')
        if node_item is None:
            node_item = _create_item('')
            print "%s -> %s" % (node, node_item)
            _register_data_item(node_item, node, '{}')
        ItemLink.find_or_insert(node_item, target_item, link_type)
    # Now that we can be assured any types set by links are already set on the items, insert the maps for other mapped nodes
    for data_id in mapped.keys():
        if data_id is not None:
            verify = list(verify_map(mapped[data_id]))
            if verify:
                print "Validation errors in mapping data item %s: %r, continuing" % (data_id, verify)
            add_data_item(data_id, '', json.dumps(mapped[data_id]))
Example #5
0
def deleteItemView(list_id, item_id):
    ''' View for deleting an item
    '''
    # just check permissions on the item
    get_item_with_permission(list_id, item_id, session['user_id'])
    Item.delete(id=item_id)
    return jsonify({})
Example #6
0
def checkItemView(list_id, item_id):
    ''' View for deleting an item
    '''
    status = None
    message = None
    item, list_owner = get_item_with_permission(
        list_id,
        item_id,
        session['user_id']
    )
    if list_owner:
        return flask.abort(403)
    if item.status == 1:
        new_status = 0
        checked_by = None
    else:
        new_status = 1
        checked_by = session['user_id']
    try:
        Item.update(
            {'status': new_status, 'checked_by': checked_by},
            id=item.id
        )
        status = 'ok'
    except Exception:
        status = 'error'
        message = 'could not update item'

    return jsonify(
        {
            'status': status,
            'message': message,
            'update_status': new_status,
        }
    )
    def update(self):
        mm = self.__map_manager
        player = mm.player
        game_system = mm.game_system

        if InputManager.isPush(Key.s):
            game_system.add_speed()

        if InputManager.isPush(Key.p) \
                and player.stats.potion > 0:
            from task.map.use_item import UseItem
            self.__next_task = UseItem(self.__map_manager,
                                       Item(Item.Type.POTION))
            return

        if InputManager.isPush(Key.b) \
                and player.stats.bom > 0:
            from task.map.use_item import UseItem
            self.__next_task = UseItem(self.__map_manager, Item(Item.Type.BOM))
            return

        direction = InputManager.get_push_direction()
        if player.ready_move(direction):
            mm.event_manager.ready_move_enemys()
            from task.map.move import Move
            self.__next_task = Move(self.__map_manager)
            return
        elif direction != Direction.NEWTRAL:
            game_system.play_se(SE.BUMP)
Example #8
0
def item_init():
    global item
    item = []
    for i in range(8):
        if i < 4:
            item.append(Item(i, "Notebook", [MAP_HEIGHT-2, i]))
        else:
            item.append(Item(i, "Notebook", [MAP_HEIGHT-1, i-4]))
Example #9
0
    def put(self, item_id):
        try:
            item = Item.objects(item_id=item_id).first()
        except Exception:
            return {"message": "Item id not exit"}, 400
        if item is None:
            return {"message": "Item id not exit"}, 400
        parser = reqparse.RequestParser()

        parser.add_argument(name="menu_id", type=str, location='json')
        parser.add_argument(name="cate_id", type=str, location='json')
        parser.add_argument(name="item_id", type=str, location='json')
        parser.add_argument(name="item_name", type=str, location='json')
        parser.add_argument(name="item_price", type=float, location='json')
        # parser.add_argument(name="item_discount", type=float, location='json')
        parser.add_argument(name="item_discount", type=float, location='json')
        parser.add_argument(name="item_desc", type=str, location='json')
        parser.add_argument(name="item_info", type=str, location='json')
        parser.add_argument(name="item_images_url", type=str, location='json', action='append')

        body = parser.parse_args()
        item_old_price = item.item_price
        menu_id = body["menu_id"]
        cate_id = body["cate_id"]
        # item_id = body["item_id"]
        item_name = body["item_name"]
        item_price = body["item_price"]
        # item_discount = body["item_discount"]
        item_desc = body["item_desc"]
        item_info = body["item_info"]
        item_images_url =[]
        # item_images_url = body["item_images_url"]
        listImage = ["http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201423/bigstar_6281.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/tom-b_8200.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/1a_7975.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/chicken-ball-rice_1604.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201424/soup_7846.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/4a_858.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/pho-mai-que_5719.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/gavien_6350.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201710/hash-brown-n_9432.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/hot-pie-_7269.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-ly-b_4978.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-cay_4637.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/corn-salad---2_8590.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/soy-bean-chicken-rice_2175.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201640/lotteria---ga-sot---set_5668.png&zc=1"]
        item_images_url.append(listImage[random.randint(0, 14)])
        item_images_url.append(listImage[random.randint(0, 14)])
        item_images_url.append(listImage[random.randint(0, 14)])

        item.update(set__menu_id=menu_id, set__cate_id=cate_id, set__item_name=item_name, set__item_price=item_price,
                    set__item_old_price=item_old_price, set__item_info=item_info,
                    set__item_desc=item_desc, set__item_images_url=item_images_url)

        added_item = Item.objects().with_id(item.id)

        return mlab.item2json(added_item)
    def parse_message(self, message):
        text = message.text

        pr_ids = parse_pr_id(text)
        if not pr_ids:
            return
        for pr_id in pr_ids:
            if pr_id in self.items:
                item = self.items[pr_id]

                if item.first_mentioned > message.timestamp:
                    item.first_mentioned = message.timestamp

                if item.last_mentioned < message.timestamp:
                    item.last_mentioned = message.timestamp

                if message.is_bot and (item.last_mentioned_bot is None or item.last_mentioned_bot < message.timestamp):
                    item.last_mentioned_bot = message.timestamp
            else:
                item = Item()
                item.id = pr_id
                item.type = 'pr'
                item.project = pr_id.split('#')[0]
                item.first_mentioned = message.timestamp
                item.last_mentioned = message.timestamp
                if message.is_bot:
                    item.last_mentioned_bot = message.timestamp

                item.url = 'https://github.com/augurysys/{0}/pull/{1}'.format(*pr_id.split('#'))
                self.items[pr_id] = item
Example #11
0
def dict_lists(lists, item_limit=None):
    list_items = {}
    for lst in lists:
        items = Item.fetch_all(list_id=lst.id, limit=3)
        total = Item.count('id', list_id=lst.id)
        list_items[lst.id] = {
            'items': items,
            'list': lst,
            'total': total,
        }
    return list_items
Example #12
0
    def parse_message(self, message):
        text = message.text

        dr_id = parse_dr_id(text)
        if not dr_id:
            return
        print dr_id

        if dr_id in self.items:
            item = self.items[dr_id]

            if item.first_mentioned > message.timestamp:
                item.first_mentioned = message.timestamp

            if item.last_mentioned < message.timestamp:
                item.last_mentioned = message.timestamp

            if message.is_bot and (
                    item.last_mentioned_bot is None
                    or item.last_mentioned_bot < message.timestamp):
                item.last_mentioned_bot = message.timestamp
        else:
            item = Item()
            item.id = dr_id
            item.type = 'doc'
            item.first_mentioned = message.timestamp
            item.last_mentioned = message.timestamp
            if message.is_bot:
                item.last_mentioned_bot = message.timestamp
            item.url = 'https://docs.google.com/document/d/{0}'.format(dr_id)

            self.items[dr_id] = item
Example #13
0
def fetch_candidate_items_for_category(city, category):
    search_results = candidate_yelp_ids_with_name(city, category)
    candidate_items = []
    for yelp_id, item_name in search_results:
        item = Item(
            id=None,
            yelp_id=yelp_id,
            category=category.name,
            name=item_name,
            start_time="",
            end_time=""
        )
        item.yelp_entry = db.sqlite.get_yelp_entry(yelp_id)
        candidate_items.append(item)
    return candidate_items
Example #14
0
def test_gamemanager(level2):
    gm = GameManager()
    player_names = []
    for i in range(3):
        player_names.append("bruh " + str(i))
    gm.register_player_names(player_names)
    assert len(gm.players) == 3
    assert gm.players[0].name == "bruh 0"
    assert gm.players[1].name == "bruh 1"
    assert gm.players[2].name == "bruh 2"
    gm.start_game(level2)
    assert gm.gamestate.current_level
    assert len(gm.players) == 3
    assert len(gm.gamestate.players) == 3
    assert gm.players[0].name == "bruh 0"
    assert gm.players[1].name == "bruh 1"
    assert gm.players[2].name == "bruh 2"
    new_player_locs = [gm.players[0].pos, gm.players[1].pos, gm.players[2].pos]
    new_player_locs[2] = Coord(7, 18)
    gm.request_player_move(gm.players[2].name, Coord(7, 3))
    assert gm.players[2].pos == Coord(7, 3)
    item = Item(KEY, Coord(8, 17))
    gm.apply_player_item_interaction(gm.gamestate.players[2], Coord(8, 17))
    print(str(gm.gamestate.players[2]))
    assert item in gm.gamestate.players[2].inventory
Example #15
0
 def create_item(self, name, description, category_id, owner_id):
     item = Item(name=name,
                 description=description,
                 category_id=category_id,
                 owner_id=owner_id)
     self.db_session.add(item)
     self.db_session.commit()
def get_items():
    items = Item.objects()

    if not items:
        raise exceptions.ItemNotFoundException()
    else:
        return items
    def __init__(self, file):
        self.backgrounds = []
        self.classes = []
        self.feats = []
        self.items = []
        self.monsters = []
        self.races = []
        self.spells = []

        tree = ET.parse(file)
        root = tree.getroot()
        for c in list(root):
            t = c.tag
            if t == 'background':
                self.backgrounds += [Background(c)]
            elif t == 'class':
                self.classes += [CharClass(c)]
            elif t == 'feat':
                self.feats += [Feat(c)]
            elif t == 'item':
                self.items += [Item(c)]
            elif t == 'monster':
                self.monsters += [Monster(c)]
            elif t == 'race':
                self.races += [Race(c)]
            elif t == 'spell':
                self.spells += [Spell(c)]
Example #18
0
def create_orders():
    user = g.current_user
    data = request.get_json()

    items = []
    goods = Goods.query.filter(Goods.id.in_(data['goods_id'])).all()
    owner_id = goods[0].user_id if len(goods) != 0 else None
    if owner_id is None:
        return {'errmsg': '请选择商品!', 'errcode': 400}, 400
    for res in goods:
        if res.user_id != owner_id:
            return {'errmsg': '一次只能提交同一商家的商品', 'errcode': 400}, 400
        if res.sale == 1:
            return {
                'errmsg': '商品 ' + res.name + ' 已被购买, 下次手快点哦',
                'errcode': 400
            }, 400
        items.append(Item(goods_id=res.id))
    if owner_id == user.id:
        return {'errmsg': '不可购买自己发布的商品', 'errcode': 400}, 400

    try:
        address = user.addresses.filter_by(id=data['address_id']).first()
        order = Order(user=user, owner_id=owner_id, address=address)
        order.items = items
        # 更新goods为已售出
        for val in goods:
            val.sale = 1
        db.session.add(order)
        db.session.commit()
        return {'errmsg': '下单成功, 请期待您的宝贝~', 'errcode': 200}, 200
    except:
        return {'errmsg': '数据出错, 请确认数据'}
Example #19
0
def parse_items_from_file(file_path):
    list = []
    file_data = open(file_path, 'r')

    value = []
    for each_line in file_data:
        each_line = each_line.replace("]", "")
        each_line = each_line.replace("[", "")
        each_line = each_line.replace("\"", "")

        value.append(each_line.strip().split(","))

    for each_data_Array in value:
        size = len(each_data_Array)

        price = float(each_data_Array[2].strip())
        if size == 3:
            new_item = Item(each_data_Array[0], each_data_Array[1], price)
            list.append(new_item)
        elif size == 4:
            date = datetime.datetime.strptime(
                each_data_Array[3].strip(),
                "%Y-%m-%d %H:%M:%S.%f").strftime("%Y-%m-%d %H:%M:%S.%f")

            new_event = Event(each_data_Array[0], each_data_Array[1], price,
                              date)
            list.append(new_event)
    file_data.close()
    return list
Example #20
0
def get_item_with_permission(list_id, item_id, user_id):
    thelist, list_owner = get_list_with_permission(list_id, user_id)
    item = Item.fetch_one(
            list_id=thelist.id,
            id=item_id
    )
    return item, list_owner
Example #21
0
 def get(self, item_id):
     try:
         item = Item.objects(item_id=item_id).first()
     except Exception:
         return {"message": "Item id not exit"}, 400
     if item is None:
         return {"message": "Item id not exit"}, 400
     return item.get_json()
Example #22
0
def get_renderable(item_id):
    '''Fetch and return an item's data including a pretty-printed version of the data items.'''
    item = Item.get(item_id)
    if item is not None:
        item = item.to_dict()
        item['data_formatted'] = dict([(d_id, json.dumps(data, indent=4)) for d_id, data in item.get('data', {}).iteritems()])
        item['map_formatted'] = json.dumps(item['map'], indent=4)
    return item
Example #23
0
    def get(self):
        user = users.get_current_user()
        url_login = users.create_logout_url('/')
        items = Item.query(Item.owner == users.get_current_user().user_id()
                           ).order(-Item.added)

        jinja = jinja2.get_jinja2(app=self.app)
        values = {"url_login": url_login, "user": user, "items": items}
        self.response.write(jinja.render_template('/items.html', **values))
Example #24
0
    def post(self):
        name = self.request.get("name", "").strip()
        item_id = self.request.get("item_id", "").strip()
        link = self.request.get("link", "").strip()
        price = float(self.request.get("price", 0.0).strip())
        owner = users.get_current_user().user_id()

        if link and not link.startswith("http://") and not link.startswith("https://"):
            link = "http://" + link

        if item_id:
            item = ndb.Key(urlsafe=item_id).get()
            item.name = name
            item.link = link
            item.price = price
        else:
            item = Item(name=name, link=link, price=price, owner=owner)
        item.put()
        self.redirect("/items")
Example #25
0
    def delete(self, item_id):
        try:
            item = Item.objects(item_id=item_id).first()
        except Exception:
            return {"message": "Item id not exit"}, 400
        if item is None:
            return {"message": "Item id not exit"}, 400
        item.delete()

        return {"message": "deleted item"}
Example #26
0
    def get(self, cate_id):
        try:
            category = Categoty.objects(cate_id=cate_id).first()
            items = Item.objects(cate_id=cate_id)
            category.items = items

        except Exception:
            return {'message': "this id is wrong"}, 404

        return category.get_json()
Example #27
0
def fetch_new_item(location, category, start_time="", end_time="", coordinate_str=None, disallowed_yelp_ids=[]):
    """
    If start_time, end_time not specified, callee must add these to Item!

    coordinate_str is for 'cll' param in yelp search query string

    Does not persist Item result to the database!
    """
    yelp_id, item_name = best_yelp_id_with_name(location, category, coordinate_str=coordinate_str, disallowed_yelp_ids=disallowed_yelp_ids)

    item = Item(
        id=None,
        yelp_id=yelp_id,
        category=category.name,
        name=item_name,
        start_time=start_time,
        end_time=end_time
    )
    item.yelp_entry = db.sqlite.get_yelp_entry(yelp_id)
    return item
Example #28
0
    def get(self, item_id):
        try:
            item = Item.objects(item_id=item_id).first()
        except Exception:
            return {"message": "Item id not exit"}, 400
        if item is None:
            return {"message": "Item id not exit"}, 400

        new_view = item.item_view_count + 1

        item.update(set__item_view_count=new_view)
        return {"view_count": new_view}, 200
Example #29
0
 def test_create_request_correctly(self):
     session_id = 'sessionId'
     requester = Requester('login', 'pw', 'first', 'last',
                           '5f81ae776db502d353a84fdf')
     self.requester_handler.active_user_sessions[session_id] = requester
     item_1 = Item('item1', 42.42, 'category', '5f7c28c6e979c6a33a1f3f79',
                   ProductDetails('', {}), Image('', ''))
     item_2 = Item('item2', 13.37, 'category', '5f7c28c6e979c6a33a1f3f79',
                   ProductDetails('', {}), Image('', ''))
     item_1_id = self.items_dao.store_one(item_1.to_db_object())
     item_2_id = self.items_dao.store_one(item_2.to_db_object())
     item_1_amount = 5
     item_2_amount = 3
     request_items = [{
         'id': item_1_id,
         'amount': item_1_amount
     }, {
         'id': item_2_id,
         'amount': item_2_amount
     }]
     request_id = self.request_handler.create_request(
         request_items, session_id)
     requests = self.requests_dao.get_all()
     self.assertEqual(len(requests), 1)
     self.assertEqual(str(requests[0]['_id']), request_id)
     self.assertEqual(str(requests[0]['requester']), requester.id)
     self.assertEqual(requests[0]['volunteer'], None)
     self.assertEqual(requests[0]['status'], RequestStatus.CREATED)
     self.assertEqual(str(requests[0]['items'][0]['id']), item_1_id)
     self.assertEqual(requests[0]['items'][0]['amount'], item_1_amount)
     self.assertEqual(str(requests[0]['items'][1]['id']), item_2_id)
     self.assertEqual(requests[0]['items'][1]['amount'], item_2_amount)
Example #30
0
def login_check():

    if request.method == 'POST':
        email = request.form['email']
        password = request.form['password']
    if User.validate(email, password):
        User.login(email)
    else:
        return render_template("login.html")
    username = email.split('@')[0]
    user_email[username] = email
    items = Item.get_items()
    return render_template("profile.html", username=username, items=items)
Example #31
0
    def get_item(self) -> Optional[Item]:
        if random.random() < 0.8:
            return None

        item_type = random.choice([
            Item.Type.SA_ADD_20,
            Item.Type.SA_ADD_20,
            Item.Type.SA_ADD_20,
            Item.Type.SA_ADD_20,
            Item.Type.SA_ADD_100
        ])

        return Item(item_type)
Example #32
0
 def __create_object(self, it_str: str) -> Item:
     item = Item()
     obj_array = it_str.split(';')
     item.id = obj_array[0]
     item.name = obj_array[1]
     item.price = obj_array[2]
     item.description = obj_array[3]
     return item
Example #33
0
def parse_level(level_input):    
    try:
        level_json = json.loads(level_input)
    except TypeError:
        level_json = level_input

    rooms = None
    hallways = None
    objects = None
    point = None
    try:
        if level_json[0][TYPE] != LEVEL:
            print('Invalid Args: Type is not level')
            return None
        input_json = level_json[0]
        point = level_json[1]
    except (KeyError, IndexError):
        input_json = level_json
    rooms = input_json[ROOMS]
    hallways = input_json[HALLWAYS]
    objects = input_json[OBJECTS]

    rooms_list = [parse_room_obj(room)[ROOM] for room in rooms]
    halls_list = [parse_hall(hall, rooms_list) for hall in hallways]

    exits = []
    keys = []
    for item in objects:
        posn = item[POS]
        if item[TYPE] == KEY:
            key_coord = to_coord(posn)
            keys.append(Item(KEY, key_coord))
        elif item[TYPE] == EXIT:
            exit_coord = to_coord(posn)
            exits.append(Item(EXIT, exit_coord))

    parsed_level = Level(rooms_list, halls_list, keys, exits)
    return {LEVEL: parsed_level, COORD: to_coord(point) if point else None}   
Example #34
0
 def __get_item(self) -> Item:
     item_type = random.choice([
         Item.Type.POTION,
         Item.Type.POTION,
         Item.Type.POTION,
         Item.Type.BOM,
         Item.Type.BOM,
         Item.Type.BOM,
         Item.Type.BOM,
         Item.Type.BOM,
         Item.Type.BOM,
         Item.Type.SA_SPOILED,
     ])
     return Item(item_type)
Example #35
0
def editItemView(list_id, item_id):
    ''' View for editing an item
    '''
    error_message = None
    update_status = None
    item, list_owner = get_item_with_permission(
        list_id,
        item_id,
        session['user_id']
    )
    if not list_owner:
        return flask.abort(403)
    if request.method == 'POST':
        try:
            Item.update(request.form, id=item_id)
            update_status = True
            render_item = Item.fetch_one(
                id=item.id
            )
        except Exception, e:
            update_status = False
            error_message = str(e)
            render_item = dict_to_obj(request.form.to_dict())
Example #36
0
 def craftar(self, id):
     x = Item()
     with open('Estudo/GameArena/dao/itens.txt','r') as arquivo:
         for linha in arquivo:
             linha = linha.strip()
             lista = linha.split(';')
             x.id = int(lista[0])
             x.nome = lista[1]
             x.arma = int(lista[2])
             x.escudo = int(lista[3])
             x.armadura = int(lista[4])
             if x.id == id:
                 return x
Example #37
0
 def post(self):
     item_form = ItemForm(self.request.arguments)
     price_form = PriceForm(self.request.arguments)
     if item_form.validate() and price_form.validate():
         item = Item.new(**item_form.data)
         if item:
             data = dict(price_form.data)
             data['item_id'] = item.id
             Price.new(**data)
             return self.redirect('/')
         else:
             self.flash(u'创建商品失败, 请重试')
     else:
         self.flash(u'表单错误,请检查')
     return self.redirect(self.request.uri)
Example #38
0
def room2():
    # Room 2 example
    tiles1 = [
        Coord(7, 15),
        Coord(7, 17),
        Coord(7, 18),
        Coord(6, 17),
        Coord(8, 17),
        Coord(8, 15),
        Coord(6, 15),
        Coord(7, 15),
        Coord(7, 15),
        Coord(9, 17),
        Coord(9, 16),
        Coord(9, 15),
        Coord(9, 15),
        Coord(6, 16)
    ]
    start1 = Coord(5, 15)
    dimensions1 = Coord(5, 5)
    doors1 = [Coord(7, 15)]
    items1 = [Item(KEY, Coord(8, 17)), Item(KEY, Coord(7, 17))]
    room2 = Room(start1, dimensions1, tiles1, doors1, items1)
    return room2
Example #39
0
 def test_get_requesters_own_requests_correctly(self):
     session_id = 'sessionId'
     requester_id = '5f7c2d96e48e242b81178822'
     other_requester_id = '5f81ae36fa3b02a743177500'
     requester = Requester('login', 'pw', 'first', 'last', requester_id)
     self.requester_handler.active_user_sessions[session_id] = requester
     item = Item('item', 42.42, 'category', '5f7c28c6e979c6a33a1f3f79',
                 ProductDetails('', {}), Image('', ''))
     item_id = self.items_dao.store_one(item.to_db_object())
     item.id = item_id
     request_1 = Request(requester=requester_id,
                         status=RequestStatus.CREATED,
                         items=[],
                         volunteer=None)
     request_2 = Request(requester=requester_id,
                         status=RequestStatus.IN_PROGRESS,
                         items=[(item, 3)],
                         volunteer='5f81ae776db502d353a84fdf',
                         submission_date=datetime.now())
     request_3 = Request(requester=other_requester_id,
                         status=RequestStatus.PAID,
                         items=[(item, 1)],
                         volunteer='5f81ae776db502d353a84fdf',
                         submission_date=datetime.now())
     request_1_id = self.requests_dao.store_one(request_1.to_db_object())
     request_2_id = self.requests_dao.store_one(request_2.to_db_object())
     request_3_id = self.requests_dao.store_one(request_3.to_db_object())
     requests = self.request_handler.get_requesters_own_requests(session_id)
     self.assertEqual(len(requests), 2)
     self.assertIn(request_1_id, [request['id'] for request in requests])
     self.assertIn(request_2_id, [request['id'] for request in requests])
     self.assertEqual(
         len([r for r in requests if r['id'] == request_2_id][0]['items']),
         1)
     self.assertEqual([r for r in requests if r['id'] == request_2_id
                       ][0]['items'][0]['item']['id'], item_id)
Example #40
0
def edit_alert(alert_id):

    # Get the alert information from the database (alert_id part of GET request)
    alert = Alert.get_by_id(alert_id)
    item = Item.get_by_id(alert.item_id)

    # POST method is used once changes have been made on the edit alert form
    # After saving the updated alert, the user is forwarded back to alerts home '/'
    if request.method == 'POST':
        price_limit = float(request.form['price_limit'])
        alert.price_limit = price_limit
        alert.save_to_mongo()
        return redirect(url_for('.index'))

    # Where GET request only, user is directed to the edit alert page
    return render_template('alerts/edit_alert.html', alert=alert)
Example #41
0
def listDetailView(list_id):
    ''' View details for a single list
    '''
    thelist, list_owner = get_list_with_permission(list_id, session['user_id'])
    items = Item.fetch_all(list_id=list_id)
    rendered_items =\
        [render_html('wishlist/item/view.html', item=item, list_owner=list_owner)  # noqa
            for item in items]
    quick_add_form = render_html(
        'wishlist/item/quick_add.html',
        list_id=list_id
    )
    return render_template(
        'list-detail.html',
        thelist=thelist,
        items=rendered_items,
        quick_add_form=quick_add_form,
        list_owner=list_owner
    )
Example #42
0
    def get(self, menu_id):
        try:
            menu = Menu.objects(menu_id=menu_id).first()
            categories = Categoty.objects(menu_id=menu_id)
            # items = Item.objects(menu_id=menu_id)
            items = Item.objects(menu_id=menu_id)

            # temp_cates =[]

            for cate in categories:
                for item in items:
                    if item.cate_id == cate.cate_id:
                        cate.items.append(item)

            menu.categories = categories

            # menu.items = items

        except Exception:
            mess = {"message": "menu id not exit"}
            return RespHandle.get_resp(mess=mess, code=204)
        return menu.get_json()
Example #43
0
def createItemView(list_id):
    ''' View for adding a new item to an existing list
    '''
    thelist, list_owner = get_list_with_permission(list_id, session['user_id'])
    new_item = request.form.to_dict()
    new_item.update({'list_id': list_id, })
    status = None
    message = None
    item_result = None
    item_id = None
    try:
        item = Item.create(new_item)
        status = 'ok'
        message = 'added item to list'
        item_id = item.id
        item_result = render_html(
            'wishlist/item/view.html',
            item=item,
            list_owner=list_owner
        )
    except Exception, e:
        status = 'error'
        message = str(e)
Example #44
0
    def get(self, cate_id):
        item = Item.objects(cate_id=cate_id)

        return mlab.list2json(item)
Example #45
0
def _create_item(data_type):
    item = Item.create(type=data_type)
    if not item.id:
        raise Exception('No row created')
    return item.id
Example #46
0
 def get(self, menu_id):
     items = Item.objects(menu_id=menu_id)
     return mlab.list2json(items)
Example #47
0
 def get(self, *args):
     items = Item.explore()
     return self.render('index.html', items=items)
Example #48
0
 def item_from_cursor(self, cursor, row):
     if row:
         item = Item(row[0], row[2], row[3], row[4], row[5], row[6])
         item.yelp_entry = self.get_yelp_entry(item.yelp_id)
         return item
     return None
Example #49
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument(name="menu_id", type=str, location='json')
        parser.add_argument(name="cate_id", type=str, location='json')
        parser.add_argument(name="item_id", type=str, location='json')
        parser.add_argument(name="item_name", type=str, location='json')
        parser.add_argument(name="item_price", type=float, location='json')
        # parser.add_argument(name="item_discount", type=float, location='json')
        # parser.add_argument(name="item_discount", type=float, location='json')
        parser.add_argument(name="item_desc", type=str, location='json')
        parser.add_argument(name="item_images_url", type=str, location='json', action='append')
        parser.add_argument(name="item_info", type=str, location='json')

        body = parser.parse_args()

        menu_id = body["menu_id"]
        cate_id = body["cate_id"]
        item_id = body["item_id"]
        item_name = body["item_name"]
        item_price = body["item_price"]
        # item_discount = body["item_discount"]
        item_desc = body["item_desc"]
        item_images_url = []
        item_info = body["item_info"]
        listImage = ["http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201423/bigstar_6281.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/tom-b_8200.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/1a_7975.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/chicken-ball-rice_1604.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201424/soup_7846.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201635/4a_858.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/pho-mai-que_5719.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/gavien_6350.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201710/hash-brown-n_9432.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/hot-pie-_7269.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-ly-b_4978.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/kem-cay_4637.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/corn-salad---2_8590.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201422/soy-bean-chicken-rice_2175.png&zc=1",
                     "http://www.lotteria.vn/resize.php?w=250&h=250&src=data/201640/lotteria---ga-sot---set_5668.png&zc=1"]
        item_images_url.append(listImage[random.randint(0, 14)])
        item_images_url.append(listImage[random.randint(0, 14)])
        item_images_url.append(listImage[random.randint(0, 14)])
        cur_items = Item.objects()

        for c in cur_items:
            if item_id is None:
                return {"message": "Item id required"}, 400
            if cate_id is None:
                return {"message": "Cate id required"}, 400
            if item_price < 0:
                return {"message": "Price must be > 0"}, 400

            if c["item_id"] == item_id:
                return {"message": "Item id exited"}, 400

        item = Item(menu_id=menu_id, cate_id=cate_id, item_id=item_id, item_name=item_name, item_price=item_price,
                    item_desc=item_desc, item_info=item_info, item_old_price=0,
                    item_images_url=item_images_url)
        item.save()

        # added_item = Item.objects().with_id(item.id)

        return {"message": "add success"}, 200
Example #50
0
    def get(self):
        # get all item
        items = Item.objects()

        return mlab.list2json(items), 200
Example #51
0
def get_item(item_id):
    return Item.get_item_data(item_id)