Files
telerifas/app/config.py
2025-10-29 11:14:34 +01:00

65 lines
3.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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', # MonThu
'friday': 'VIE', # Fri
'weekend': 'DOM' # SatSun
}
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