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
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)
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)
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)
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]))
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
def __update_item(self): updated_item = Item() updated_item.id = self.id.get() updated_item.name = self.name.get() updated_item.nominal = self.nominal.get() updated_item.min = self.min.get() updated_item.lifetime = self.lifetime.get() updated_item.restock = self.restock.get() usages = self.usagesListBox.curselection() values = [self.usagesListBox.get(i) for i in usages] usages = ",".join(values) updated_item.usage = usages tires = self.tiersListBox.curselection() tire_values = [self.tiersListBox.get(i) for i in tires] tires = ",".join(tire_values) updated_item.tire = tires updated_item.rarity = self.rarity.get() updated_item.item_type = self.type.get() updated_item.sub_type = self.subtypeAutoComp.get() updated_item.mod = self.mod.get() print(updated_item.mod) updated_item.trader = self.trader.get() updated_item.dynamic_event = self.dynamic_event.get() updated_item.count_in_hoarder = self.count_in_hoarder.get() updated_item.count_in_cargo = self.count_in_cargo.get() updated_item.count_in_map = self.count_in_map.get() updated_item.count_in_player = self.count_in_player.get() self.database.update_item(updated_item) self.__populate_items()
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
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
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 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': '数据出错, 请确认数据'}
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
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)]
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
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
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)
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}
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)
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
def create_alert(): if request.method == 'POST': item_url = request.form['item_url'] store = Store.find_by_url(item_url) item = Item(item_url, store.tag_name, store.query) item.load_price() item.save_to_mongo() alert_name = request.form['name'] price_limit = request.form['price_limit'] Alert(alert_name, item._id, price_limit, session["email"]).save_to_mongo() # What happens if it's a GET request return render_template("alerts/new_alert.html")
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")
def new_alert(): # If POST method included in the request, a new alert needs to be saved # After saving the new alert from the POST, user redirected to their alerts list at '/' if request.method == 'POST': alert_name = request.form['name'] item_url = request.form['item_url'] price_limit = float(request.form['price_limit']) store = Store.find_by_url(item_url) item = Item(item_url, store.tag_name, store.query) item.load_price() item.save_to_mongo() Alert(alert_name, item._id, price_limit, session['email']).save_to_mongo() return redirect(url_for('.index')) # If POST was not included in the request, form is provided for user to enter new alert information return render_template('/alerts/new_alert.html')
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)
def get_items(self): items = list() for item_value in self.xml.iter('type'): item = Item() usages = list() tiers = list() item.name = item_value.attrib['name'] for i in item_value: if i.tag == 'nominal': item.nominal = i.text elif i.tag == 'restock': item.restock = i.text elif i.tag == 'min': item.min = i.text elif i.tag == 'category': category = i.attrib['name'] if category != 'weapons': item.item_type = category else: item.item_type = self.__get_type(name=item.name) elif i.tag == 'lifetime': item.lifetime = i.text elif i.tag == 'usage': usages.append(i.attrib['name']) elif i.tag == 'value': tiers.append(i.attrib['name']) elif i.tag == 'flags': item.dynamic_event = i.attrib['deloot'] item.count_in_hoarder = i.attrib['count_in_hoarder'] item.count_in_cargo = i.attrib['count_in_cargo'] item.count_in_player = i.attrib['count_in_player'] item.count_in_map = i.attrib['count_in_map'] item.usage = ",".join(usages) item.tire = ",".join(tiers) items.append(item) return items
assert len(os.getenv('APP_NAME')) > 0 from app import app from fastapi.testclient import TestClient def test_get(): client = TestClient(app) response = client.get('/item/1') pprint.pprint(response) assert response.status_code == 200 assert response.json()['data']['price'] == 1.1 TEST_ITEM = Item(name='girl for alibaba p8', price=16000) def test_put(): client = TestClient(app) put_response = client.put('/item/22', data=TEST_ITEM.json()) assert put_response.status_code == 200 get_response = client.get('/item/22') pprint.pprint(put_response.json()) data = get_response.json()['data'] assert 'hehe' not in data['name'] assert 'alibaba' in data['name'] assert '价值观' not in data['name'] assert data['price'] == 16000
def to_item(data) -> Item: return Item( data[0], Website(data[1]), bool(data[2]), datetime.fromtimestamp(data[3], tz=timezone.utc), data[4], None if data[5] is None else StockCheckResult.from_json( json.loads(data[5])))
def __print_single_item(tag: str = 'UNKNOWN', item: Item = Item(name='', price=0.0)): LOGGER.info('[%s] %s' % (tag, item.json()))
def create_item(item_url: str, item_name: str, website: Website): return Item(item_url, website, False, datetime.fromtimestamp(0, tz=timezone.utc), item_name, None)
from typing import Dict from model.item import Item from application.logger import get_service_logger import time, pprint LOGGER = get_service_logger('ITEM') _ITEMS: Dict[int, Item] = { 1: Item(name='haha', price=1.1), 22: Item(name='hehe', price=2.2), 333: Item(name='gogo', price=3.3, is_offer=False), } def get_item(item_id: int) -> Item: return _ITEMS.get(item_id, None) def update_item(item_id: int, item: Item) -> bool: if item_id not in _ITEMS.keys(): return False _ITEMS[item_id] = item return True def print_items_one_by_one(interval: int = 3): if interval <= 0: interval = 3 for item_id, item_info in _ITEMS.items(): LOGGER.info('Item %d: %s' % (item_id, pprint.pformat(item_info))) time.sleep(interval)
from typing import Dict, List from model.item import Item from application.logger import get_service_logger import time, pprint LOGGER = get_service_logger('ITEM') _ITEMS: Dict[int, Item] = { 1: Item(name='haha', price=1.1), 22: Item(name='hehe', price=2.2), 333: Item(name='gogo', price=3.3, is_offer=False), 99: Item(name='ronaldo', price=10000.00, is_offer=False) } def get_item(item_id: int) -> Item: return _ITEMS.get(item_id, None) def get_items(keyword: str = '', min_price: float = -1.0, max_price: float = -1.0) -> List[Item]: items = [] for _, item in _ITEMS.items(): if keyword and keyword not in item.name: continue if min_price > 0.0 and min_price > item.price: continue if 0.0 < max_price < item.price: continue items.append(item)