47 lines
2.2 KiB
Python
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 --- |