-
Notifications
You must be signed in to change notification settings - Fork 1
/
fetchers.py
57 lines (36 loc) · 1.7 KB
/
fetchers.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
import requests
CUSTOM_HEADERS = {
# to simulate that we are requesting data from a steam client
'User-Agent': 'Mozilla/5.0 (Linux; U; X11; en-US; Valve Steam Client/default/1675997500; ) AppleWebKit/537.36 (KHTML%2C like Gecko) Chrome/85.0.4183.121 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8'
}
def steam_app_details_fetcher(app_id: str, country_code=str) -> dict:
try:
APP_DETAILS_URL = f'https://store.steampowered.com/api/appdetails/?appids={app_id}&cc={country_code}'
res = requests.get(url=APP_DETAILS_URL,
headers=CUSTOM_HEADERS)
res_dict = res.json()
success = res_dict.get(app_id).get('success')
if success == True:
app_data = res_dict.get(app_id).get('data')
return app_data
except Exception as e:
raise e
def steam_category_offers_fetcher(category_name=str, country_code=str) -> list:
try:
FEATURED_CATEGORIES_URL = f'https://store.steampowered.com/api/featuredcategories?cc={country_code}'
res = requests.get(url=FEATURED_CATEGORIES_URL,
headers=CUSTOM_HEADERS)
res_dict = res.json()
category_offers_data = res_dict.get(category_name).get('items')
offers_list = []
for category_offer_data in category_offers_data:
try:
app_id = str(category_offer_data.get('id'))
app_data = steam_app_details_fetcher(app_id, country_code)
offers_list.append(app_data)
except Exception as e:
raise e
return offers_list
except Exception as e:
raise e