Files
homelabs-raffle/app/config.py
2026-02-22 12:56:42 +01:00

47 lines
2.2 KiB
Python

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 ---