from dotenv import load_dotenv import os import logging # Load environment variables load_dotenv() BOT_TOKEN = os.getenv("BOT_TOKEN") BOT_NAME = os.getenv("BOT_NAME") ADMIN_IDS = list(map(int, os.getenv("ADMIN_IDS", "1").split(','))) # Comma-separated list of admin IDs CHANNELS_IDS = list(os.getenv("CHANNEL_IDS", "1/test").split(',')) # Comma-separated channel IDs # Create a dictionary { 'channel_alias': 'channel_id' } CHANNELS = {channel.split('/')[1]: channel.split('/')[0] for channel in CHANNELS_IDS} # Create a reverse dictionary { 'channel_id': 'channel_alias' } for display/lookup REVERSE_CHANNELS = {v: k for k, v in CHANNELS.items()} DATABASE_PATH = "/app/data/raffles.db" PAYPAL_EMAIL = os.getenv("PAYPAL_EMAIL") PAYPAL_CLIENT_ID = os.getenv("PAYPAL_CLIENT_ID") PAYPAL_SECRET = os.getenv("PAYPAL_SECRET") PAYPAL_HANDLE = os.getenv("PAYPAL_HANDLE") WEBHOOK_URL = os.getenv("WEBHOOK_URL") RESERVATION_TIMEOUT_MINUTES = 30 # e.g., 30 minutes TYC_URL = os.getenv("TYC_URL") NEWRELIC_API_KEY = os.getenv("NEWRELIC_API_KEY") # Conversation States for Raffle Creation (SELECTING_CHANNELS, TYPING_TITLE, TYPING_DESCRIPTION, TYPING_PRICE_FOR_CHANNELS, SENDING_IMAGE, CONFIRMING_CREATION) = range(6) # Conversation States for Editing Raffles (EDIT_SELECT_RAFFLE, EDIT_SELECT_NEW_CHANNELS, EDIT_TYPING_PRICE_FOR_NEW_CHANNELS, EDIT_CONFIRM) = range(6, 10) # Callback Data Prefixes SELECT_CHANNEL_PREFIX = "select_channel_" CONFIRM_CREATION_CALLBACK = "confirm_creation" CANCEL_CREATION_CALLBACK = "cancel_creation" # --- Admin Menu Callback Data --- ADMIN_MENU_CREATE = "admin_create_raffle" ADMIN_MENU_LIST = "admin_list_raffles" ADMIN_MENU_BACK_MAIN = "admin_back_to_main_menu" ADMIN_END_RAFFLE_PROMPT_PREFIX = "admin_end_prompt:" # + raffle_id ADMIN_CANCEL_END_PROCESS = "admin_cancel_end" ADMIN_VIEW_RAFFLE_PREFIX = "admin_view_raffle:" # + raffle_id (NEW) ADMIN_ANNOUNCE_RAFFLE_PREFIX = "admin_announce_raffle:" # + raffle_id (NEW) ADMIN_NO_OP = "admin_no_op" # Placeholder for buttons that do nothing on click ADMIN_EDIT_RAFFLE_SELECT = "admin_edit_select" # New: Select raffle to edit ADMIN_EDIT_RAFFLE_PREFIX = "admin_edit_raffle:" # New: Prefix for raffle ID to edit # --- End Admin Menu ---