-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget_spelled_items.py
79 lines (61 loc) · 2.61 KB
/
get_spelled_items.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import requests
import json
import pandas as pd
import time
def generate_spelled_items_urls():
df = pd.read_csv("spelled_item_urls.csv", sep=',', header=0)
return df["Item URL"]
def find_listing_item_validity(item_descriptions):
for description in item_descriptions:
if (
"(spell only active during event)" in description["value"] and
"color" in description and
"7ea9d1" in description["color"]
):
return True
return False
def generate_spelled_items_dataframe(
spelled_listing_prices,
spelled_listing_names,
):
item_names = []
item_prices = []
if len(spelled_listing_prices) == len(spelled_listing_names):
for i in range(0, len(spelled_listing_prices)):
item_names.append(spelled_listing_names[i])
item_prices.append(str(spelled_listing_prices[i]).strip())
data = {"Item Name": item_names, "Item Price": item_prices}
df = pd.DataFrame(data)
return df
def get_spelled_items_from_api(get_full_list=True, num_spelled_items=0):
spelled_items_urls = generate_spelled_items_urls()
all_spelled_items_names = []
all_spelled_items_prices = []
i = 0
for url in spelled_items_urls:
if i < num_spelled_items or get_full_list:
listing_response = requests.get(url)
listing_data = json.loads(listing_response.text)
time.sleep(15)
i = i + 1
else:
break
if listing_data and listing_data["listinginfo"]:
for listing_number in listing_data["listinginfo"]:
item_id = listing_data["listinginfo"][listing_number]["asset"]["id"]
listing_item_assets = listing_data["assets"]["440"]["2"][item_id]
item_is_valid: bool = find_listing_item_validity(listing_item_assets["descriptions"])
if item_is_valid:
listing_price = listing_data["listinginfo"][listing_number]["converted_price"]
listing_fee = listing_data["listinginfo"][listing_number]["converted_fee"]
total_market_price = listing_price + listing_fee
all_spelled_items_prices.append(total_market_price / 100)
item_name = listing_item_assets["market_name"]
all_spelled_items_names.append(item_name)
print("-", end=" ")
if i % 25 == 0:
print("\n")
df = generate_spelled_items_dataframe(all_spelled_items_prices, all_spelled_items_names)
print("\n", df)
df.to_csv("spelled_items_from_api.csv", index=False)
get_spelled_items_from_api()