65 lines
3.2 KiB
Python
65 lines
3.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}
|
||
ANNOUNCE_CHANNEL_IDS = list(os.getenv("ANNOUNCE_CHANNEL_IDS", "").split(',')) # Comma-separated announce channel IDs
|
||
ANNOUNCE_CHANNELS = {channel.split('/')[1]: channel.split('/')[0] for channel in ANNOUNCE_CHANNEL_IDS if '/' in channel}
|
||
# 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")
|
||
WEBHOOK_ID = os.getenv("WEBHOOK_ID")
|
||
RESERVATION_TIMEOUT_MINUTES = 15
|
||
TYC_DOCUMENT_URL = os.getenv("TYC_DOCUMENT_URL")
|
||
NEWRELIC_API_KEY = os.getenv("NEWRELIC_API_KEY")
|
||
PAYPAL_PERCENTAGE_FEE = float(os.getenv("PAYPAL_PERCENTAGE_FEE", "1.90")) # Default 1.90%
|
||
PAYPAL_FIXED_FEE = float(os.getenv("PAYPAL_FIXED_FEE", "0.35")) # Default 0.35 EUR
|
||
PAYPAL_URL = os.getenv("PAYPAL_URL", "https://api-m.paypal.com") # Default to live URL
|
||
|
||
# Conversation States for Raffle Creation
|
||
(SELECTING_CHANNEL, TYPING_TITLE, TYPING_DESCRIPTION, TYPING_PRICE_FOR_CHANNEL, INTERNATIONAL_SHIPPING, SENDING_IMAGE, CONFIRMING_CREATION) = range(7)
|
||
|
||
# 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_UPDATE_IMAGE_PREFIX = "admin_update_image:" # + raffle_id (NEW)
|
||
ADMIN_NO_OP = "admin_no_op" # Placeholder for buttons that do nothing on click
|
||
# --- End Admin Menu ---
|
||
|
||
DRAW_MAPPING = {
|
||
'weekday': 'ORD', # Mon–Thu
|
||
'friday': 'VIE', # Fri
|
||
'weekend': 'DOM' # Sat–Sun
|
||
}
|
||
JUEGOS_ONCE_URL = "https://www.juegosonce.es/resultados-ultimos-sorteos-once"
|
||
|
||
# Homelabs API Configuration
|
||
HOMELABS_API_TOKEN = os.getenv("HOMELABS_API_TOKEN")
|
||
HOMELABS_API_URL = os.getenv("HOMELABS_API_URL", "http://user_membership_api:8000")
|
||
|
||
VIP_DISCOUNT_PER_NUMBER = float(os.getenv("VIP_DISCOUNT_PER_NUMBER", "1.0")) # Default 1 EUR discount per number for VIP members |