First commit

This commit is contained in:
Joan
2025-09-05 12:27:45 +02:00
parent d18c2fbf7b
commit d3b4cd7eaa
14 changed files with 2900 additions and 90 deletions

52
app/config.py Normal file
View File

@@ -0,0 +1,52 @@
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")
WEBHOOK_ID = os.getenv("WEBHOOK_ID")
RESERVATION_TIMEOUT_MINUTES = 15
TYC_DOCUMENT_URL = os.getenv("TYC_DOCUMENT_URL")
# Conversation States for Raffle Creation
(SELECTING_CHANNEL, TYPING_TITLE, TYPING_DESCRIPTION, TYPING_PRICE_FOR_CHANNEL, 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
# --- 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"