prod preparations

This commit is contained in:
2026-01-28 08:53:21 -05:00
parent 4850c16b87
commit b70d87c797
9 changed files with 1259 additions and 14 deletions

View File

@@ -1,5 +1,10 @@
from pathlib import Path
import json
import os
from dotenv import load_dotenv
# Load environment variables from .env file (if it exists)
load_dotenv()
def load_from_json():
#Load config from JSON file if it exists
@@ -18,28 +23,40 @@ def load_from_json():
# Load from JSON or use defaults
_config = load_from_json()
# Torn API
TORN_API_KEY = _config.get("TORN_API_KEY", "YOUR_TORN_API_KEY_HERE")
# Helper function to get config value from environment, then JSON, then default
def get_config(key: str, default, is_int: bool = False):
# 1. Try environment variable first
env_val = os.getenv(key)
if env_val is not None:
return int(env_val) if is_int else env_val
# 2. Try JSON config
json_val = _config.get(key)
if json_val is not None:
return json_val
# 3. Use default
return default
# Torn API
TORN_API_KEY = get_config("TORN_API_KEY", "YOUR_TORN_API_KEY_HERE")
# FFScouter API
FFSCOUTER_KEY = _config.get("FFSCOUTER_KEY", "YOUR_FFSCOUTER_KEY_HERE")
FFSCOUTER_KEY = get_config("FFSCOUTER_KEY", "YOUR_FFSCOUTER_KEY_HERE")
# Discord Bot
DISCORD_TOKEN = _config.get("DISCORD_TOKEN", "YOUR_DISCORD_BOT_TOKEN_HERE")
ALLOWED_CHANNEL_ID = _config.get("ALLOWED_CHANNEL_ID", 0)
DISCORD_TOKEN = get_config("DISCORD_TOKEN", "YOUR_DISCORD_BOT_TOKEN_HERE")
ALLOWED_CHANNEL_ID = get_config("ALLOWED_CHANNEL_ID", 0, is_int=True)
# Intervals
HIT_CHECK_INTERVAL = _config.get("HIT_CHECK_INTERVAL", 60)
REASSIGN_DELAY = _config.get("REASSIGN_DELAY", 120)
HIT_CHECK_INTERVAL = get_config("HIT_CHECK_INTERVAL", 60, is_int=True)
REASSIGN_DELAY = get_config("REASSIGN_DELAY", 120, is_int=True)
# Bot Assignment Settings
ASSIGNMENT_TIMEOUT = _config.get("ASSIGNMENT_TIMEOUT", 60) # Seconds before reassigning a target
ASSIGNMENT_REMINDER = _config.get("ASSIGNMENT_REMINDER", 45) # Seconds before sending reminder message
ASSIGNMENT_TIMEOUT = get_config("ASSIGNMENT_TIMEOUT", 60, is_int=True) # Seconds before reassigning a target
ASSIGNMENT_REMINDER = get_config("ASSIGNMENT_REMINDER", 45, is_int=True) # Seconds before sending reminder message
# Chain Timer Settings
CHAIN_TIMER_THRESHOLD = _config.get("CHAIN_TIMER_THRESHOLD", 5) # Minutes - start assigning hits when chain timer is at or below this
CHAIN_TIMER_THRESHOLD = get_config("CHAIN_TIMER_THRESHOLD", 5, is_int=True) # Minutes - start assigning hits when chain timer is at or below this
# Authentication
AUTH_PASSWORD = _config.get("AUTH_PASSWORD", "YOUR_AUTH_PASSWORD_HERE") # Universal password for all users
JWT_SECRET = _config.get("JWT_SECRET", "your-secret-key-change-this") # Secret key for JWT tokens
AUTH_PASSWORD = get_config("AUTH_PASSWORD", "YOUR_AUTH_PASSWORD_HERE") # Universal password for all users
JWT_SECRET = get_config("JWT_SECRET", "your-secret-key-change-this") # Secret key for JWT tokens