Plan de Contenido para Instagram / Facebook
Cuándo usarlo
Usa este skill cuando el usuario pida planificar una semana de contenido social, redactar pies de foto, escribir prompts de imagen, preparar un reel o programar publicaciones para el Instagram y Facebook de una tienda. El resultado final es un plan semanal completo y listo para aprobación, no un borrador de una sola publicación.
No lo uses para una publicación individual sin la estructura semanal (usa la plantilla de pie de foto directamente), para anuncios pagados (es un flujo diferente — el texto del anuncio, el presupuesto y la publicación son responsabilidad del propietario en el Administrador de Anuncios), o para cualquier plataforma que no sea Instagram y Facebook, a menos que el usuario pida explícitamente adaptarlo.
Quién hace qué — Claude maneja todo el trabajo de principio a fin
Claude ejecuta cada paso del flujo de trabajo a continuación: briefing, temas, pies de foto, prompts de imagen, briefs de reel, verificación de precios, puerta de aprobación, lista de verificación de publicación y revisión semanal. El propietario solo interviene en tres momentos:
- Decisiones semanales que solo el propietario puede tomar — la oferta actual y las fechas de la oferta, qué productos o paquetes promocionar, los objetivos de la semana, y qué NO está permitido esta semana (por ejemplo, una afirmación que el propietario no quiere hacer). Claude redacta todo; el propietario proporciona los datos y los aprueba.
- Renderizado — el propietario genera las imágenes de los artículos en ChatGPT a partir de los prompts de Claude y los clips de reel en Flow, porque la generación de imágenes/video no está disponible en la región de la cuenta Muse del propietario. Claude escribe los prompts; el propietario renderiza y envía los archivos terminados.
- Puerta de aprobación — el propietario aprueba el texto exacto, la imagen y la hora de cada publicación antes de que se publique o programe (ver Paso 7). Nada se publica sin esa aprobación.
Dos excepciones ligadas al dispositivo, indicadas honestamente para no exagerar la afirmación de "principio a fin":
- Inicio de sesión para publicar: la publicación se realiza a través de las cuentas conectadas de Instagram/Facebook del propietario (conector, aplicación de IG o un trabajo de publicación programada que el propietario configuró). Claude nunca maneja la contraseña o los tokens del propietario.
- Imágenes y clips de reel: Claude escribe el plan de imágenes (qué prompt va con qué publicación, en qué orden) y los briefs de reel. Las imágenes y los clips provienen del propietario. Claude nunca inventa una foto de producto y nunca adjunta la imagen incorrecta a una publicación — si una imagen no coincide con su prompt, dilo claramente y márcalo para el propietario.
Todo lo demás — investigación, temas, pies de foto, prompts, briefs, verificaciones de precios, listas de verificación — es trabajo de Claude. No devuelvas nada de eso al propietario como tarea.
Datos de la tienda y las cuentas (no inventes otros)
- Tienda: Fragrance Empire, https://fragranceempire.my — una tienda Shopify que vende perfumes de diseñador en Malasia, envío gratis en toda Malasia, pago contra reembolso disponible. 155 productos, 18 marcas, 13 paquetes Él y Ella.
- Instagram: @fragranceempire.my — todas las publicaciones en inglés; los pies de foto NO llevan URL, dicen "Link in bio"; imágenes de feed en formato vertical 4:5 (1080×1350); cada video necesita una imagen de portada que coincida.
- Página de Facebook: Fragrance Empire, https://www.facebook.com/people/Fragrance-Empire/61596175737426/ — los pies de foto llevan el enlace directo a la tienda (https://fragranceempire.my o el enlace de la colección); el límite de texto de la publicación de la página es de 1.024 caracteres a través del conector.
- Ritmo (hora de Malasia, MYT): 12:00 p.m. artículo + imagen, 3:00 p.m. artículo + imagen, 7:00 p.m. reel. Eso son 14 artículos + 7 reels = 21 publicaciones por semana. (12 p.m. MYT = 9 a.m. PKT; 3 p.m. MYT = 12 p.m. PKT; 7 p.m. MYT = 4 p.m. PKT.)
- Hábitos diarios: invita a todos los que reaccionen a una publicación a darle Me Gusta a la Página; responde a todos los comentarios el mismo día.
- Servicios para vendedores (gig de Fiverr https://www.fiverr.com/s/L34yBpA): el mismo plan semanal se puede ofrecer como servicio — Básico $80, Estándar $180, Premium $350, revisiones ilimitadas.
Límites estrictos — indícalos honestamente, no los evites
- Solo imágenes fotográficas — nunca tarjetas de consejos. Las imágenes de las publicaciones de artículos son imágenes fotográficas, nunca tarjetas de consejos (título + puntos clave sobre un fondo con marca). El propietario lo corrigió el 6 de noviembre de 2026 y es una regla permanente. Si un borrador dice "tarjeta de consejos", elimínalo y escribe un prompt de imagen fotográfica en su lugar.
- Regla de superposición de texto en CADA prompt de imagen. Cada prompt de imagen debe incluir: el título del pie de foto en texto 3D dorado metálico grande y negrita en la PARTE SUPERIOR, "CHOOSE LUXURY" en texto 3D dorado metálico grande y negrita en la PARTE INFERIOR, y "fragranceempire.my" en texto blanco elegante pequeño en la PARTE MUY INFERIOR — sin otro texto. Un prompt al que le falte cualquiera de los tres no está listo. (Regla del propietario, 12 de noviembre de 2026.)
- Precios verificados en vivo — nunca de memoria. Cada precio en un pie de foto se verifica en la página de producto de la propia tienda en la misma semana en que se escribe el plan. Un precio no verificado en vivo es un bloqueo, no una suposición. Si un precio cambió desde la última verificación, usa el precio en vivo y dilo.
- Sin afirmaciones de "100% original" a menos que el propietario las apruebe explícitamente. Nunca escribas "100% original", "perfumes originales" o cualquier promesa de autenticidad en un pie de foto, prompt de imagen o reel por iniciativa propia de Claude. Si el propietario aprueba la afirmación para una publicación específica, registra la aprobación en el plan.
- Nunca inventes notas de producto, precios o afirmaciones. Cada nota, dato y precio del producto proviene de la página de producto de la propia tienda. Si falta un dato, pregunta — no lo completes.
- La puerta de aprobación es obligatoria. Nada se publica o programa hasta que el propietario apruebe el texto, la imagen y la hora exactos. Un pie de foto, precio o imagen modificados necesitan una nueva aprobación. La aprobación cubre solo exactamente lo que se mostró.
- La programación de Instagram NO está disponible a través del conector. Devuelve un error HTTP 403 — no lo reintentes. Programa en la aplicación de Instagram o con un trabajo de publicación programada. Los trabajos programados pueden retrasarse; verifica en vivo antes de informar que una publicación está lista.
- El límite de texto de las publicaciones de Facebook es de 1.024 caracteres a través del conector. Un pie de foto de Facebook con más caracteres no se puede publicar tal como está escrito — acórtalo antes de la puerta de aprobación, no después.
- Una llamada de publicación que devuelve solo un ID (o se agota el tiempo de espera) puede haberse publicado. Después de cualquier resultado incierto, verifica mediante la búsqueda de la publicación antes de reintentar o informar. Nunca publiques la misma publicación dos veces.
- Sin credenciales en el skill. Nunca pongas una clave de API, contraseña, token de acceso o secreto en un archivo de skill, en el chat o en un repositorio. Las conexiones se realizan en el dispositivo del propietario.
- No publiques precios de oferta después de que termine la oferta. Los precios establecidos para una oferta no caducan automáticamente en la tienda — si la oferta terminó y el propietario no ha decidido revertir, extender o mantener un descuento más pequeño, no escribas precios de oferta en nuevos pies de foto. Pregunta primero.
Banco de temas — lo que realmente se publicó (6–12 de noviembre de 2026)
Estos temas fueron escritos, aprobados y publicados para Fragrance Empire. Reutilízalos como banco inicial; no repitas un tema dentro de la misma semana y prefiere un ángulo nuevo en lugar de repetir la publicación exacta de la semana pasada.
Artículos de conocimiento (cada uno termina con una pregunta):
- "EDP, EDT, Parfum — ¿qué significan?"
- "Cómo aplicar perfume correctamente"
- "5 consejos para que tu perfume dure más"
- "¿Qué es un Paquete Él y Ella?"
- "Notas de perfume: salida, corazón, fondo"
- "Cómo elegir un perfume de regalo"
- "Cómo elegir un perfume para ti"
- "Cómo almacenar tu perfume"
- "¿Aroma de verano o aroma de invierno?"
- "¿Cómo saber si tu perfume es original o no?" (pie de foto: solo comprobaciones prácticas — caja sellada, código de lote, impresión clara, tienda de confianza — sin promesa de autenticidad)
- "¿Qué son el oud, el ámbar y el almizcle?"
- "¿Aroma de oficina o aroma de fiesta?"
- "¿Por qué el perfume huele diferente en dos personas?"
- "Cómo probar un perfume antes de comprarlo"
- "Mejores perfumes para el calor de Malasia"
- "¿Cuántos sprays son suficientes?"
- "¿Perfume en la piel o en la ropa?"
Artículos de oferta / cierre: 18. "4 más vendidos al 50% de descuento" (precios listados, una línea cada uno) 19. "La oferta termina esta noche" (urgencia de último día, sin nuevas afirmaciones) 20. "¿Aún decidiendo? Comienza con un más vendido" (precios héroe, una línea cada uno)
Reels (franja de las 7 p.m., un producto o paquete cada uno):
- Reel de producto héroe (por ejemplo, Dior Sauvage EDP)
- Reel de paquete Él y Ella (por ejemplo, Invictus y Olympéa, Armani Code y Sì)
- Reel de oferta (presentación de diapositivas de banner + música + tarjeta final)
- Reel festivo / de regalo (por ejemplo, paquete de regalo de Deepavali)
Flujo de trabajo
Paso 1 — Briefing (decisiones primero, sin escritura antes de esto)
Recopila y escribe, en templates/week-plan.md:
- Fechas de la semana (viernes a jueves, o los días que elija el propietario) y la zona horaria (MYT).
- La oferta actual, exactamente como la indique el propietario — descuento, código si lo hay, envío gratis, extra por pago con tarjeta y la fecha de finalización de la oferta. Si no hay oferta esta semana, escribe "sin oferta" — no arrastres la oferta de la semana pasada.
- Productos y paquetes enfocados esta semana (nombres y en qué franjas van).
- Los objetivos de la semana (por ejemplo, seguidores 2 → 10+, primeros comentarios, primeros clics en enlaces, paquetes publicados 4/13 → 6/13).
- Qué NO está permitido esta semana (por ejemplo, sin afirmaciones de "100% original", sin precio para un producto cuyo precio no esté verificado, sin repetición de los temas de la semana pasada).
- Cualquier cosa que haya cambiado desde la semana pasada (un código eliminado, un cambio de precio, una oferta que termina) — el plan no debe incluir ofertas desactualizadas.
No comiences el Paso 2 hasta que el briefing esté completo y el propietario lo haya confirmado.
Paso 2 — Temas de la semana
- Elige 14 temas de artículos + 7 temas de reels del banco de temas anterior, o temas nuevos que el propietario apruebe. Ningún tema se repite dentro de la semana.
- Alterna los tipos de artículos a lo largo de la semana: conocimiento, conocimiento, oferta, conocimiento, conocimiento, oferta — así el feed enseña más de lo que vende. No coloques dos artículos de oferta el mismo día a menos que el propietario lo solicite (los días de cierre de oferta son la excepción).
- Asigna cada reel a un solo producto o paquete. Un reel sobre "todo en oferta" es un reel de oferta, no un reel de producto — mantenlos separados.
- Escribe la tabla del plan semanal en
templates/week-plan.md: día, franja, tema, producto/paquete, estado del pie de foto, estado de la imagen, estado de aprobación, enlace en vivo.
Paso 3 — Pies de foto (versiones de Facebook + Instagram, cada publicación)
Escribe cada pie de foto dos veces, usando templates/caption-template.md:
Ambas versiones:
- Solo en inglés. Oraciones cortas, una idea por línea. Máximo un emoji por párrafo — el pie de foto es una publicación de tienda, no un mensaje de chat.
- Las publicaciones de conocimiento terminan con una pregunta (por ejemplo, "¿Cuál usas más? ¡Cuéntanos abajo 👇"). La pregunta es cómo la Página obtiene sus primeros comentarios — nunca la elimines para ahorrar espacio.
- Hashtags al final, solo 3–4:
#FragranceEmpire #PerfumeTips #PerfumeMalaysia #LuxuryPerfume, más etiquetas de oferta (#1111Sale #MegaSale) en publicaciones de oferta, más una etiqueta de producto (#DiorSauvage #PacoRabanne) en publicaciones de reel. Nunca más de 5 hashtags. - Bloque de oferta (solo cuando el briefing tenga una oferta): descuento + envío gratis + extra por tarjeta + fecha de finalización de la oferta, en un solo bloque, redacción idéntica en ambas plataformas. Ejemplo (oferta 11.11, noviembre de 2026): "MEGA OFERTA 11.11 — 50% DE DESCUENTO + ENVÍO GRATIS en toda Malasia, 10% DE DESCUENTO ADICIONAL con pagos con tarjeta. Oferta termina el 15 de noviembre."
- Nunca escribas un precio de memoria — ver Paso 6.
Solo versión de Facebook:
- Enlace directo a la tienda en el pie de foto:
https://fragranceempire.myo el enlace de la colección (https://fragranceempire.my/collections/bundlespara paquetes). "Link in bio" no funciona en Facebook. - La longitud total debe ser de 1.024 caracteres o menos (límite del conector). Verifica con
scripts/check_captions.pyantes de la puerta de aprobación.
Solo versión de Instagram:
- SIN URL en ningún lugar del pie de foto. Reemplaza el enlace con "Link in bio".
- Las imágenes de feed son verticales 4:5 (1080×1350) — la imagen del artículo debe recortarse/rellenarse a 4:5 antes de publicar, y cada video necesita una imagen de portada que coincida.
Forma del pie de foto (publicación de conocimiento):
[Línea de enganche — la pregunta que responde la publicación] [emoji]
[2–4 líneas cortas o viñetas con la respuesta]
[Pregunta al lector] 👇
[Bosque de oferta, solo si el briefing tiene una oferta]
[Enlace de tienda (FB) / Link in bio (IG)]
[Hashtags]
Forma del pie de foto (publicación de oferta):
[Título de la oferta] [emoji]
[Producto + precio + precio anterior, una línea cada uno — todos verificados en vivo]
[Bosque de oferta: descuento + envío gratis + extra por tarjeta + fecha de finalización]
[Pregunta al lector] 👇
[Enlace de tienda (FB) / Link in bio (IG)]
[Hashtags]
Paso 4 — Prompts de imagen (uno por publicación de artículo, copiable individualmente)
Escribe un prompt de imagen por publicación de artículo, usando templates/image-prompt-template.md. Cada prompt se envía al propietario como un mensaje copiable individual — el propietario lo renderiza en ChatGPT y envía la imagen de vuelta.
Cada prompt debe:
- Ser fotográfico. Comienza con "Imagen fotográfica de perfume de lujo" y describe una escena fotográfica real: el producto, el entorno, la luz, el ambiente. Nunca una tarjeta de consejos, nunca un gráfico, nunca un diseño con mucho texto.
- Llevar la regla de superposición de texto, palabra por palabra: el título del pie de foto en texto 3D dorado metálico grande y negrita en la PARTE SUPERIOR, "CHOOSE LUXURY" en texto 3D dorado metálico grande y negrita en la PARTE INFERIOR, y "fragranceempire.my" en texto blanco elegante pequeño en la PARTE MUY INFERIOR. Termina con "Sin otro texto."
- Coincidir con el producto. La botella en el prompt debe ser el producto en el pie de foto. Si el pie de foto es sobre un paquete, la imagen muestra el par del paquete. Nunca uses una foto que muestre una variante diferente (por ejemplo, una botella que muestre "200ml" en un listado de 100 ML).
- Nombrar el título exactamente. El texto del título en el prompt es el título de la publicación, en mayúsculas — las mismas palabras que la primera línea del pie de foto.
Ejemplos prácticos del plan real de la semana 2 están en templates/image-prompt-template.md — copia su estructura, cambia solo la escena y el título.
Cuando el propietario envíe una imagen de vuelta, revísala contra su prompt antes de programar: título en la parte superior, CHOOSE LUXURY en la parte inferior, sitio web en la parte muy inferior, sin otro texto, fotográfica (no una tarjeta de consejos), producto coincide con el pie de foto. Si algo está mal, dilo claramente y pide un re-renderizado — no publiques una imagen incorrecta.
Paso 5 — Briefs de reel (franja de las 7 p.m., uno por día)
Escribe un brief de reel por día, usando templates/reel-brief-template.md:
- Un solo producto o paquete (o la oferta en sí para un reel de oferta). Nómbralo exactamente.
- 15 segundos, 9:16 vertical — clips de producto y estilo de vida, no de persona hablando a cámara.
- Estructura: gancho (primeros 3 segundos, producto en mano o bandeja giratoria), valor (segundos 4–10, textura, vaporización, nota destacada), llamada a la acción (segundos 11–15, "Link in bio" o "Compra ahora", con la URL de la tienda).
- Texto en pantalla: título del pie de foto en la parte superior (fuente sans-serif blanca, sombra negra), "CHOOSE LUXURY" en la parte inferior, "fragranceempire.my" en la parte muy inferior. Sin otro texto.
- Música: especifica un estado de ánimo (enérgico, lujoso, con ritmo) — no nombres una canción a menos que el propietario la haya solicitado.
- Imagen de portada: fotograma clave del clip del producto, con texto en pantalla superpuesto (título + "CHOOSE LUXURY" + "fragranceempire.my").
Cuando el propietario envíe el clip de vuelta, revísalo contra su brief: producto correcto, duración ~15 segundos, texto en pantalla presente, tono correcto. Informa cualquier discrepancia.
Paso 6 — Verificación de precios en vivo
Antes de que cualquier pie de foto pueda pasar a la puerta de aprobación, cada precio en él debe ser verificado en la página de producto en vivo de la tienda.
- Para cada producto en el plan de la semana, abre
https://fragranceempire.my/products/[handle]y lee el precio mostrado. - Compara con el precio en el pie de foto. Si coinciden, escribe "verificado" en la columna de estado. Si no, actualiza el pie de foto al precio en vivo y anota el cambio.
- Si la página del producto no se carga o falta el precio, escribe "BLOQUEADOR — precio no verificado" — no inventes un precio ni uses uno anterior.
- Registra la verificación en
templates/week-plan.mden la columna "Precio verificado" con la fecha y hora de la verificación. - Vuelve a verificar cualquier precio que pueda haber cambiado debido a una oferta que comienza o termina a mitad de semana.
Paso 7 — Puerta de aprobación (obligatoria, nada la omite)
Antes de que cualquier publicación se programe o publique, el propietario debe aprobar el texto exacto, la imagen y la hora.
- Prepara cada publicación como un mensaje de aprobación individual que contenga:
- El pie de foto final (versión de Facebook e Instagram, indicando cuál es cuál)
- La imagen o el clip de reel (renderizado por el propietario en el Paso 4/5)
- La hora y fecha de publicación programada
- El enlace de verificación de precio (si es aplicable)
- Envía la publicación para aprobación con un mensaje claro: "¿Aprobado para publicar?"
- El propietario responde Sí o No (o pide cambios). Si hay cambios, actualiza solo los elementos cambiados y envía una nueva solicitud de aprobación.
- Una vez aprobado, marca "aprobado" en el plan semanal y procede a la programación o publicación.
- Si una publicación se programa con más de 24 horas de antelación, verifica de nuevo el precio antes de la hora de publicación (puede cambiar debido a una oferta que comienza o termina inesperadamente).
Paso 8 — Publicación y verificación
Publicar o programar:
- Facebook: usa el conector para publicar en el feed de la página. Verifica que la publicación aparezca en la línea de tiempo de la página dentro de los 5 minutos posteriores a la publicación.
- Instagram: la programación de Instagram no está disponible a través del conector (error HTTP 403). Programa en la aplicación de Instagram o con un trabajo de publicación programada. Si el trabajo se retrasa, verifica manualmente si se publicó.
- Después de cualquier resultado incierto (solo ID devuelto, tiempo de espera agotado), usa la búsqueda de publicaciones para verificar que la publicación exista antes de reintentar. Nunca publiques la misma publicación dos veces.
- Verificación en vivo: dentro de los 10 minutos posteriores a la hora de publicación programada, verifica que la publicación sea visible en la cuenta. Si no lo es, informa al propietario y pide que publique manualmente.
Paso 9 — Revisión semanal
El domingo de cada semana (o el día después de que termine la semana), escribe un resumen:
- Publicaciones publicadas con éxito: 14 artículos, 7 reels (o las cifras reales).
- Compromiso: Me gusta totales, comentarios totales, clics en enlaces (si están disponibles).
- Bloqueadores: cualquier publicación que no se haya podido publicar y por qué.
- Aprendizajes: qué funcionó bien, qué no (por ejemplo, los temas de conocimiento con la pregunta obtuvieron más comentarios que los artículos de oferta).
- Próxima semana: temas sugeridos basados en el rendimiento de esta semana.
- Escribe el resumen en
templates/week-plan.mdal final del archivo.
Archivos de plantilla
templates/week-plan.md
# Plan Semanal — [Fecha de inicio] – [Fecha de finalización]
## Briefing
- **Oferta:** [detalles de la oferta o "sin oferta"]
- **Productos destacados:** [lista]
- **Objetivos:** [lista]
- **No permitido:** [lista]
- **Cambios desde la semana pasada:** [lista]
## Tabla del plan semanal
| Día | Franja | Tema | Producto/Paquete | Pie de foto | Imagen | Aprobación | Precio verificado | Enlace en vivo |
|-----------|-----------|-------------------------------------|-----------------------|-------------|--------|------------|-------------------|----------------|
| Lunes | 12:00 p.m.| Cómo aplicar perfume correctamente | Dior Sauvage EDP | Listo | Listo | Aprobado | 2026-11-06 10:30 | URL |
| Lunes | 3:00 p.m. | ¿Qué es un Paquete Él y Ella? | Paquete Invictus/Olympéa | Listo | Listo | Pendiente | 2026-11-06 11:00 | URL |
| Lunes | 7:00 p.m. | Reel de producto héroe | Dior Sauvage EDP | Brief listo | Clip | Pendiente | N/A | - |
| Martes | 12:00 p.m.| 5 consejos para que tu perfume dure más | Paco Rabanne 1 Million | Listo | Listo | Pendiente | 2026-11-07 09:00 | URL |
| Martes | 3:00 p.m. | 4 más vendidos al 50% de descuento | Varios | Listo | Listo | Pendiente | 2026-11-07 09:30 | URL |
| Martes | 7:00 p.m. | Reel de paquete Él y Ella | Paquete Armani Code/Sì | Brief listo | Clip | Pendiente | N/A | - |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
## Resumen posterior a la publicación
- Publicado: [número]
- Compromiso: [datos]
- Bloqueadores: [lista]
- Aprendizajes: [notas]
- Sugerencias para la próxima semana: [lista]
templates/caption-template.md
## Publicación: [Título del artículo]
### Versión de Facebook
[Hook — línea de enganche] [emoji] [Contenido — 2–4 líneas] [Pregunta] 👇 [Bosque de oferta — si corresponde] https://fragranceempire.my [Hashtags]
### Versión de Instagram
[Hook — línea de enganche] [emoji] [Contenido — 2–4 líneas] [Pregunta] 👇 [Bosque de oferta — si corresponde] Link in bio [Hashtags]
templates/image-prompt-template.md
## Prompt de imagen: [Título del artículo]
Imagen fotográfica de perfume de lujo que muestra [nombre del producto] en [descripción de la escena, iluminación, estado de ánimo].
Superposición de texto:
- PARTE SUPERIOR: "[Título del pie de foto]" en texto 3D dorado metálico grande y negrita
- PARTE INFERIOR: "CHOOSE LUXURY" en texto 3D dorado metálico grande y negrita
- PARTE MUY INFERIOR: "fragranceempire.my" en texto blanco elegante pequeño
- Sin otro texto.
templates/reel-brief-template.md
## Brief de reel: [Nombre del producto/paquete]
**Producto:** [nombre exacto]
**Duración:** 15 segundos
**Relación de aspecto:** 9:16 vertical
**Estado de ánimo:** [enérgico / lujoso / con ritmo]
**Estructura:**
- Segundos 1–3: Gancho — [detalles]
- Segundos 4–10: Valor — [detalles]
- Segundos 11–15: Llamada a la acción — "Link in bio" o "Compra ahora", URL de la tienda
**Texto en pantalla:**
- Parte superior: [título del pie de foto] (fuente sans-serif blanca, sombra negra)
- Parte inferior: CHOOSE LUXURY
- Parte muy inferior: fragranceempire.my
- Sin otro texto.
**Imagen de portada:** [fotograma clave + texto en pantalla superpuesto]
scripts/check_captions.py
# check_captions.py — Verifica la longitud del pie de foto de Facebook (límite del conector: 1024 caracteres)
# Uso: python scripts/check_captions.py "<texto del pie de foto>"
import sys
def check_length(caption: str) -> None:
length = len(caption)
limit = 1024
if length <= limit:
print(f"✓ Longitud: {length} caracteres — dentro del límite ({limit})")
else:
excess = length - limit
print(f"✗ Longitud: {length} caracteres — EXCEDE el límite en {excess} caracteres")
print("Acorta el pie de foto antes de la puerta de aprobación.")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Proporciona el texto del pie de foto como argumento.")
sys.exit(1)
check_length(sys.argv[1])
scripts/verify_price.py
# verify_price.py — Abre la página de producto de la tienda y muestra el precio actual
# Uso: python scripts/verify_price.py <handle-del-producto>
# Ejemplo: python scripts/verify_price.py dior-sauvage-edp
import sys
import requests
from bs4 import BeautifulSoup
BASE_URL = "https://fragranceempire.my/products/"
def get_live_price(handle: str) -> str | None:
url = f"{BASE_URL}{handle}"
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
# Busca elementos de precio comunes en Shopify: data-price, .price, etc.
price_element = soup.select_one("[data-price], .price, .product__price")
if price_element:
return price_element.get_text(strip=True)
else:
return None
except Exception as e:
print(f"Error al obtener la página: {e}")
return None
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Proporciona el handle del producto.")
sys.exit(1)
handle = sys.argv[1]
price = get_live_price(handle)
if price:
print(f"Precio en vivo para {handle}: {price}")
else:
print(f"BLOQUEADOR — No se pudo verificar el precio para {handle}.")