@frendri

Как объяснить боту что одна из моих вещей уже на первом месте?

Итак. Надеюсь хоть тут я найду ответ. Ломаю голову уже 4ый день, т.к. это моя первая программа.
Я делаю запрос о моих предметах, которые сейчас на продаже. Приходит ответ. Пример:
{'success': True, 'items': [{'item_id': '555268962', 'assetid': '0', 'classid': '310779105', 'instanceid': '0', 'real_instance': '302028390', 'market_hash_name': 'Desert Eagle | Mudder (Minimal Wear)', 'position': 6, 'price': 9, 'currency': 'RUB', 'status': '1', 'live_time': 1231, 'left': None, 'botid': '0'}, {'item_id': '555268959', 'assetid': '0', 'classid': '310779105', 'instanceid': '0', 'real_instance': '302028390', 'market_hash_name': 'Desert Eagle | Mudder (Minimal Wear)', 'position': 5, 'price': 9, 'currency': 'RUB', 'status': '1', 'live_time': 1231, 'left': None, 'botid': '0'}, {'item_id': '555268953', 'assetid': '0', 'classid': '310779105', 'instanceid': '0', 'real_instance': '302028390', 'market_hash_name': 'Desert Eagle | Mudder (Minimal Wear)', 'position': 4, 'price': 9, 'currency': 'RUB', 'status': '1', 'live_time': 1231, 'left': None, 'botid': '0'}, {'item_id': '555268947', 'assetid': '0', 'classid': '310779105', 'instanceid': '0', 'real_instance': '302028390', 'market_hash_name': 'Desert Eagle | Mudder (Minimal Wear)', 'position': 3, 'price': 9, 'currency': 'RUB', 'status': '1', 'live_time': 1232, 'left': None, 'botid': '0'}, {'item_id': '555268935', 'assetid': '0', 'classid': '310779105', 'instanceid': '0', 'real_instance': '302028390', 'market_hash_name': 'Desert Eagle | Mudder (Minimal Wear)', 'position': 2, 'price': 9, 'currency': 'RUB', 'status': '1', 'live_time': 1232, 'left': None, 'botid': '0'}]}

Допустим у меня выставлено 10 вещей MP9 | Bioleak (Field-Tested) за 10 руб. Но только одна вещь стоит на 1 позиции, все остальные с 2 по 10.
Я пишу: Если вещь не на 1 позиции, то бот делает запрос на минимальную цену этой вещи среди всего маркета и понижает цену моей вещи на 1 копейку ниже минимальной цены, чтобы теперь моя вещь была на 1 позиции.
Дк вот. Он проверил Первый MP9 | Bioleak (Field-Tested). Он на 1 позиции, бот ничего не делает.
Дальше он проверяет следующий MP9 | Bioleak (Field-Tested). Он на 2 позиции, хотя цена такая же и понижать цену не нужно. Но он понижает, и так далее со следующими MP9 | Bioleak (Field-Tested).
Ниже мой код:
min_price = int(input())
i = 0
while True:
    try:
        item_req = 'https://market.csgo.com/api/v2/items?key=' + key
        json_string = requests.get(item_req)
        parsed_string = json.loads(json_string.text)
        if parsed_string['items'][i]['position'] != 1:
            search_item = 'https://market.csgo.com/api/v2/search-item-by-hash-name?key={0}&hash_name={1}'.format(key, name_item)
            json_str = requests.get(search_item)
            price_hash = json.loads(json_str.text)
            print(datetime.now().strftime("%H:%M:%S"), price_hash)
            price = price_hash['data'][i]['price']
            print(datetime.now().strftime("%H:%M:%S"), 'Минимальная цена предмета {0} RUB'.format(price/100))
            lowprice = price - 1
            print(datetime.now().strftime("%H:%M:%S"), 'Ставлю цену {0} на {1}'.format(lowprice/100, name_item))
            if lowprice >= min_price*100:
                item_id = (parsed_string['items'][i]['item_id'])
                set_price = 'https://market.csgo.com/api/v2/set-price?key={0}&item_id={1}&price={2}&cur=RUB'.format(key, item_id, lowprice)
                response = requests.get(set_price)
                setpr = json.loads(response.text)
                if setpr['success'] == True:
                    print(datetime.now().strftime("%H:%M:%S"), 'Успешно')
                time.sleep(10)
            else:
                print(datetime.now().strftime("%H:%M:%S"), 'Не могу понизить цену меньше минимальной')
        else:
            print(datetime.now().strftime("%H:%M:%S"), 'уже 1 позиция')
            time.sleep(10)
    i += 1
    except IndexError:
        pass
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы