Итак. Надеюсь хоть тут я найду ответ. Ломаю голову уже 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