From bb9145d9976ed4a0c25387edd82d6b6e3796e889 Mon Sep 17 00:00:00 2001 From: NW/RL Date: Thu, 18 Apr 2024 12:53:25 -0500 Subject: Make the CONST object a member variable --- steamrelationships/sr.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'steamrelationships') diff --git a/steamrelationships/sr.py b/steamrelationships/sr.py index 8185ebb..c36bb56 100644 --- a/steamrelationships/sr.py +++ b/steamrelationships/sr.py @@ -5,11 +5,13 @@ import random import sys from steamrelationships.constants import _Const -CONST = _Const() class SteamRelationships: """A class that handles the querring of Steam's web api to request a user's friends list""" + # If you're changing a constant, you probably want to change it for every instance of the class + CONST = _Const() + def __init__(self, webapikey: str, timeout: int = 30, timeout_retries: int = 5, reqdelay: float = 0.5, delayrand: int = 25, reqsafetybuffer: float = 0.9, reqjson: str = f"{sys.path[0]}/requests.json") -> None: """ (str) webapikey - A Steam "web api key" for grabbing friends lists (get one at https://steamcommunity.com/dev/apikey) @@ -41,7 +43,7 @@ class SteamRelationships: def __str__(self) -> str: - return f"Vals:\n\twebapikey: {len(self.webapikey) > 0} (Actual value ommitted for security)\n\n\tTimeout: {self.timeout}\n\tTimeout Retries: {self.timeout_retries}\n\tRequest Delay: {self.reqdelay}\n\tRequest Delay Randomness Factor: +/- {self.delayrand}%\n\tRequest Safety Buffer: {self.reqsafetybuffer} ({self.reqsafetybuffer * CONST.STEAMAPI_MAXREQ} out of {CONST.STEAMAPI_MAXREQ} max requests)\n\tRequests Log Filepath: \"{self.reqjson}\"\n\n\tMost Recent Scan: {self.scanlist}" + return f"Vals:\n\twebapikey: {len(self.webapikey) > 0} (Actual value ommitted for security)\n\n\tTimeout: {self.timeout}\n\tTimeout Retries: {self.timeout_retries}\n\tRequest Delay: {self.reqdelay}\n\tRequest Delay Randomness Factor: +/- {self.delayrand}%\n\tRequest Safety Buffer: {self.reqsafetybuffer} ({self.reqsafetybuffer * self.CONST.STEAMAPI_MAXREQ} out of {self.CONST.STEAMAPI_MAXREQ} max requests)\n\tRequests Log Filepath: \"{self.reqjson}\"\n\n\tMost Recent Scan: {self.scanlist}" def __readjsonfile(self, filepath: str = "") -> dict: """ @@ -69,7 +71,7 @@ class SteamRelationships: print(f"[__readjsonfile] File {filepath} does not exist. Generating empty json file...") try: with open(filepath, "w+") as newfile: - json.dump({time.time_ns(): [0, []]}, newfile, indent=CONST.JSON_INDENT) + json.dump({time.time_ns(): [0, []]}, newfile, indent=self.CONST.JSON_INDENT) newfile.close() return self.__readjsonfile(filepath) @@ -108,26 +110,26 @@ class SteamRelationships: # Check the current date. If over 1 day since last entry, add a new entry. Otherwise, edit the current day's entry [note, 1 day in nanoseconds = (8.64 * (10 ** 13)) ] checktime = time.time_ns() - if (checktime - int(list(jsoncontents.keys())[-1])) > CONST.DAY_IN_NANO: + if (checktime - int(list(jsoncontents.keys())[-1])) > self.CONST.DAY_IN_NANO: jsoncontents[checktime] = [0, []] else: # This bullshit brought to you by: ordered dictionaries currentreqs = jsoncontents[list(jsoncontents.keys())[-1]][0] - if currentreqs < (CONST.STEAMAPI_MAXREQ * self.reqsafetybuffer) and currentreqs < CONST.STEAMAPI_MAXREQ: + if currentreqs < (self.CONST.STEAMAPI_MAXREQ * self.reqsafetybuffer) and currentreqs < self.CONST.STEAMAPI_MAXREQ: if increment == True: jsoncontents[list(jsoncontents.keys())[-1]][0] += 1 jsoncontents[list(jsoncontents.keys())[-1]][1].append(checktime) else: - print(f"[__checkrequests] Daily request limit reached ({currentreqs}/{CONST.STEAMAPI_MAXREQ * self.reqsafetybuffer}). Please try again tomorrow, or increase \"reqsafetybuffer\" (currently: {self.reqsafetybuffer})") + print(f"[__checkrequests] Daily request limit reached ({currentreqs}/{self.CONST.STEAMAPI_MAXREQ * self.reqsafetybuffer}). Please try again tomorrow, or increase \"reqsafetybuffer\" (currently: {self.reqsafetybuffer})") return 0 # Update the json file if increment == True: try: with open(filename, "w+t") as jsonfile: - json.dump(jsoncontents, jsonfile, indent=CONST.JSON_INDENT) + json.dump(jsoncontents, jsonfile, indent=self.CONST.JSON_INDENT) jsonfile.close() except Exception as e: -- cgit v1.2.3