RobloxPurchaser/methods/base.py

46 lines
1.5 KiB
Python

import logging
import time
import traceback
import requests
from fake_useragent import UserAgent
class Purchaser:
base_headers = {
"User-Agent": UserAgent().chrome
}
def __init__(self, roblosecurity):
self.roblosecurity = roblosecurity
self.base_cookies = {".ROBLOSECURITY": self.roblosecurity}
self.logger = logging.getLogger(__name__)
def request(self, url, method=requests.get, attempts=10, timeout=20, *args, **kwargs):
if "headers" not in kwargs:
kwargs["headers"] = {}
if "cookies" not in kwargs:
kwargs["cookies"] = {}
kwargs["headers"] = {**self.base_headers, **kwargs["headers"]}
kwargs["cookies"] = {**self.base_cookies, **kwargs["cookies"]}
for attempt in range(attempts):
try:
r = method(url=url, timeout=timeout, *args, **kwargs)
if 500 > r.status_code > 600:
print(f"Statuscode {r.status_code} for {url}...")
time.sleep(5)
continue
return r
except requests.RequestException:
traceback.print_exc()
time.sleep(5)
def get_asset_metadata(self, asset_id):
return self.request(url=f"https://catalog.roblox.com/v1/catalog/items/{asset_id}/details",
params={"itemType": "asset"}).json()
def get_asset_metadata_extended(self, asset_id):
return self.request(url=f"https://economy.roblox.com/v2/assets/{asset_id}/details").json()