Spaces:
Runtime error
Runtime error
File size: 3,287 Bytes
0dca8ee c300b5a 0dca8ee |
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 |
# config.py
import os
import logging
from dotenv import load_dotenv
# Load .env file if exists (for local testing)
load_dotenv()
logger = logging.getLogger(__name__)
class Config:
# --- Essential Secrets (Read from Environment/HF Secrets) ---
BOT_TOKEN = os.getenv('BOT_TOKEN')
API_ID = os.getenv('API_ID')
API_HASH = os.getenv('API_HASH')
# --- Admin Configuration ---
# !!! REPLACE 123456789 WITH YOUR ACTUAL ADMIN TELEGRAM USER ID(S) !!!
ADMIN_IDS = [1559968105, 1131003976] # Example: [123456789, 987654321]
# --- Validate Secrets ---
if not BOT_TOKEN:
logger.critical("BOT_TOKEN missing!")
raise ValueError("BOT_TOKEN environment variable not set! Add it to Hugging Face Secrets.")
if not API_ID:
logger.critical("API_ID missing!")
raise ValueError("API_ID environment variable not set! Add it to Hugging Face Secrets.")
if not API_HASH:
logger.critical("API_HASH missing!")
raise ValueError("API_HASH environment variable not set! Add it to Hugging Face Secrets.")
try:
API_ID = int(API_ID)
except ValueError:
logger.critical("API_ID is not an integer!")
raise ValueError("API_ID environment variable must be an integer.")
if not ADMIN_IDS or not all(isinstance(admin_id, int) for admin_id in ADMIN_IDS):
logger.warning("ADMIN_IDS list is empty or contains non-integer values. Defaulting to empty. Check configuration.")
ADMIN_IDS = []
else:
logger.info(f"Admin IDs loaded: {ADMIN_IDS}")
# --- File Paths & Directories ---
PREDEFINED_TEMPLATES_DIR = "templates" # Relative to /app in Docker
OUTPUT_DIR = "generated_images" # Relative to /app in Docker
FONT_PATH = "Arial" # Relies on system font installed via Dockerfile
SESSION_NAME = "bot_hydro_session" # Hydrogram session file name (will be in /app)
# --- Image Processing Settings (YOU NEED TO SET THESE ACCURATELY FOR YOUR TEMPLATE) ---
TEMPLATE_SIZE = (1200, 900) # The EXACT width and height of your template PNG files.
PLACEHOLDER_SIZE = (1200, 600) # The EXACT width and height of the transparent "window"
# in your template where the user's image will go. (Example)
PLACEHOLDER_POSITION = (0, 0) # The EXACT top-left (x, y) coordinates where the
# transparent "window" starts on your template. (Example)
# Auto Template Settings (if you use them, otherwise can be ignored)
AUTO_TEMPLATES_COUNT = 3 # Reduced for quicker testing; was 5
AUTO_TEMPLATE_SIZE = (1200, 900)
AUTO_USER_IMAGE_SIZE = (600, 450)
# Text and General Image Settings
MIN_FONT_SIZE = 30
MAX_FONT_SIZE = 60
TEXT_STROKE_WIDTH = 2
NOISE_INTENSITY = 0.03
MAX_CAPTION_WIDTH = 35
JPEG_QUALITY = 85
# Example: Text placement for the caption (YOU MUST ADJUST THESE)
# These coordinates are relative to the top-left (0,0) of your TEMPLATE_SIZE canvas.
TEXT_AREA_Y_START = 700 # Example: Y-coordinate where your text background bar begins
TEXT_AREA_HEIGHT = 150 # Example: Height of your text background bar
# Horizontal centering for text is often done dynamically in processing.py
|