Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LDU Auto — generador automático de posts de Instagram

Genera y publica automáticamente posts de Instagram para Liga Deportiva Universitaria de Quito: anuncio del próximo partido (con racha de los últimos cinco partidos de ambos equipos), resultado final de cada partido (con goleadores y minutos) y tabla de posiciones de la LigaPro tras cada fecha, con un diseño minimalista/futurista propio para cada competición (LigaPro, Libertadores, Sudamericana, Copa Ecuador, Supercopa Ecuador, amistosos y otras competiciones).

Cómo funciona

  1. Datos — API pública de ESPN (gratuita, sin clave): fechas, estadios, ciudades, logos oficiales de ambos equipos, marcadores y estado del partido, en todas las competiciones configuradas (src/config.js). Del resumen de cada partido salen además los goleadores con su minuto y la forma reciente (últimos 5) de ambos equipos; del endpoint de standings, la tabla completa de la LigaPro. ESPN no cubre la Copa Ecuador ni la Supercopa: esos partidos vienen de TheSportsDB (src/sportsdb.js), también gratuita y sin clave, incluida la definición por penales.
  2. Detección de cambiosdata/state.json guarda qué se anunció y qué resultados ya se publicaron. En cada ejecución solo se generan posts si hay estado nuevo: un nuevo "próximo partido", un cambio de fecha/hora, o un partido recién finalizado. La tabla de posiciones se publica solo inmediatamente después de un resultado de LigaPro y solo si la tabla cambió desde la última vez (fingerprint en el estado).
  3. Render — cada post es una plantilla HTML (src/templates/post.js) renderizada a PNG 1080×1350 con Playwright/Chromium. Tema visual por competición.
  4. Publicación — Instagram Graph API oficial. Las imágenes se commitean al repo y se publican usando su URL pública raw.githubusercontent.com.
  5. Automatización — GitHub Actions corre cada hora (.github/workflows/ldu-posts.yml).

Uso local

npm install
npx playwright install chromium

npm run samples    # renderiza demos de fixture, resultado, casos edge y tabla
npm run generate   # pipeline real: ESPN → diff de estado → PNG + caption

Los posts quedan en output/posts/ (PNG + caption .txt) y se encolan en data/pending.json hasta ser publicados.

Configuración de la publicación en Instagram

Guía paso a paso (incluye soluciones a problemas de login de Meta): docs/INSTAGRAM_SETUP.md.

Resumen: cuenta de Instagram profesional (Creator/Business) + app en developers.facebook.com con el producto Instagram. Se soportan los dos flujos oficiales — el nuevo "Instagram login" (token IGAA…, sin página de Facebook) y el clásico via Facebook (token EAA…); el host de la Graph API se detecta automáticamente.

Secrets del repositorio (Settings → Secrets and variables → Actions):

Secret Valor
IG_USER_ID ID de la cuenta profesional de Instagram
IG_ACCESS_TOKEN Token de acceso de larga duración

Variable opcional IMAGE_BASE_URL si prefieres servir las imágenes desde otro host (por defecto se usa la URL raw del propio repo — el repo debe ser público para que Instagram pueda descargar las imágenes).

Sin estos secrets el workflow sigue funcionando: genera y commitea los posts, y los deja en cola para publicarse cuando se configuren las credenciales.

Estructura

src/
  config.js               equipo, ligas ESPN, tipos de competición y hashtags
  espn.js                 cliente ESPN: partidos, goleadores, forma y standings
  sportsdb.js             cliente TheSportsDB: Copa Ecuador y Supercopa (ESPN no las tiene)
  state.js                estado persistente y planificación de posts
  templates/post.js       plantilla HTML 1080×1350 con temas por competición
  templates/standings.js  plantilla de la tabla de posiciones de LigaPro
  render.js               HTML → PNG con Playwright
  captions.js             captions en español por tipo de post y resultado
  publish.js              publicación vía Instagram Graph API
  samples.js              partidos de demo para previsualizar diseños
  index.js                orquestador (generate | publish | cleanup | samples)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages