From 4653eda46259d85cc714c443413d1714b422172f Mon Sep 17 00:00:00 2001 From: Marco Gallegos Date: Sat, 13 Dec 2025 19:06:49 -0600 Subject: [PATCH] feat: add .gitignore with common patterns for Python projects, virtual environments, logs, and editor configurations. --- .gitignore | 61 +++++++++++++++++++++++++++++++++++++++++++ modules/onboarding.py | 9 ++++++- modules/printer.py | 51 ++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..62c55ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,61 @@ +# ========================= +# Secrets & Environment +# ========================= +.env +.env.* +*.env + +# ========================= +# Python +# ========================= +__pycache__/ +*.py[cod] +*.pyo +*.pyd + +# Virtual environments +venv/ +.venv/ +env/ +ENV/ + +# ========================= +# Logs & Runtime +# ========================= +*.log +logs/ +*.sqlite +*.db + +# ========================= +# OS & Editors +# ========================= +.DS_Store +Thumbs.db + +# VS Code +.vscode/ +*.code-workspace + +# JetBrains +.idea/ + +# ========================= +# Build / Distribution +# ========================= +build/ +dist/ +*.egg-info/ + +# ========================= +# Systemd / Deploy Artifacts +# ========================= +*.service +*.pid + +# ========================= +# Temp / Downloads +# ========================= +tmp/ +temp/ +downloads/ diff --git a/modules/onboarding.py b/modules/onboarding.py index 5e167b4..1c655e4 100644 --- a/modules/onboarding.py +++ b/modules/onboarding.py @@ -340,4 +340,11 @@ def main(): application.run_polling() if __name__ == "__main__": - main() \ No newline at end of file + main() + # ... todo el código del contrato ... +# Al final: +onboarding_handler = ConversationHandler( + entry_points=[CommandHandler("welcome", start)], # Cambiado a /welcome + states=states, # Tu diccionario de estados + fallbacks=[CommandHandler("cancelar", cancelar)] +) \ No newline at end of file diff --git a/modules/printer.py b/modules/printer.py index e69de29..a44bee5 100644 --- a/modules/printer.py +++ b/modules/printer.py @@ -0,0 +1,51 @@ +import os +import requests +from telegram import Update +from telegram.ext import ContextTypes, ConversationHandler, CommandHandler, MessageHandler, filters + +# Estado +ESPERANDO_ARCHIVO = 1 + +async def start_print(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int: + await update.message.reply_text("🖨️ **Servicio de Impresión**\n\nPor favor, envíame el archivo (PDF, DOCX o Imagen) que deseas imprimir/enviar.") + return ESPERANDO_ARCHIVO + +async def recibir_archivo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int: + user = update.effective_user + archivo = update.message.document or update.message.photo[-1] # Toma documento o la foto más grande + + file_id = archivo.file_id + file_name = getattr(archivo, 'file_name', f"foto_{file_id}.jpg") + + # Obtenemos el link de descarga directo de Telegram + file_info = await context.bot.get_file(file_id) + file_url = file_info.file_path + + # Enviamos a n8n + webhook = os.getenv("WEBHOOK_PRINT") + payload = { + "user": user.full_name, + "email_user": f"{user.username}@telegram.org", # O pedir el mail antes + "file_url": file_url, + "file_name": file_name, + "tipo": "impresion" + } + + try: + requests.post(webhook, json=payload) + await update.message.reply_text(f"✅ Archivo *{file_name}* enviado a cola de impresión.") + except: + await update.message.reply_text("❌ Error al conectar con el servidor de impresión.") + + return ConversationHandler.END + +async def cancelar(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int: + await update.message.reply_text("Operación cancelada.") + return ConversationHandler.END + +# Exportamos el handler +print_handler = ConversationHandler( + entry_points=[CommandHandler("print", start_print)], + states={ESPERANDO_ARCHIVO: [MessageHandler(filters.Document.ALL | filters.PHOTO, recibir_archivo)]}, + fallbacks=[CommandHandler("cancelar", cancelar)] +) \ No newline at end of file