Juegos Scraper
Muestra técnica de un plugin WordPress para importar videojuegos desde Steam mediante una arquitectura por capas.
by Rodrigo Gil Carrillo · github.com/n1p0stk4/plugin-juegos-scraper · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/n1p0stk4/plugin-juegos-scraper/archive/refs/heads/main.zipReadme
Juegos Scraper - WordPress Plugin Showcase
Repositorio parcial de un plugin WordPress desarrollado para importar videojuegos desde Steam y convertirlos en contenido estructurado dentro de WordPress.
Este repositorio se publica como muestra técnica y contiene una selección representativa del código fuente. Se han omitido módulos específicos de producción y lógica de negocio para preservar la implementación comercial, manteniendo la arquitectura y los componentes más relevantes del proyecto.
Características principales
- Arquitectura organizada por capas.
- Integración con la Steam Store API.
- Cliente HTTP con caché mediante Transients de WordPress.
- Entidad de dominio para normalizar los datos recibidos desde Steam.
- Separación entre lógica de aplicación, dominio e infraestructura.
- Inversión de dependencias mediante interfaces.
- Integración con el panel de administración de WordPress.
- Utilidades para extracción de tráilers y mapeo de idiomas.
Componentes incluidos
- ImportSteamGamesHandler: coordina todo el proceso de importación.
- Game: entidad de dominio que representa un videojuego.
- Contratos (Interfaces): cliente Steam, repositorio, sincronización de categorías y sistema de logging.
- CachedSteamApiClient: cliente de Steam con sistema de caché.
- SettingsPage: ejemplo de integración con la Settings API de WordPress.
- Assets: gestión de recursos CSS del plugin.
- LanguageMapper: conversión de idiomas de Steam al formato utilizado por WordPress.
- TrailerExtractor: extracción de tráilers HLS/DASH e imágenes asociadas.
Tecnologías utilizadas
- PHP 8.1+
- WordPress
- Steam Store API
- WP HTTP API
- Transients API
- Settings API
- Programación Orientada a Objetos
- Inyección de Dependencias
- Arquitectura por Capas
Estructura del proyecto
juegos-scraper-showcase/
├── juegos-scraper.php
├── uninstall.php
├── assets/
│ └── css/
├── src/
│ ├── Application/
│ ├── Domain/
│ │ └── Contracts/
│ ├── Infrastructure/
│ │ ├── Steam/
│ │ └── WordPress/
│ │ └── Admin/
│ └── Support/
└── docs/
Arquitectura
Application
Contiene los casos de uso de la aplicación. En este proyecto, el proceso de importación coordina la obtención de datos desde Steam, su transformación al modelo interno y su posterior almacenamiento.
Domain
Incluye la entidad Game y los contratos (interfaces) que desacoplan la lógica de negocio de la infraestructura y de WordPress.
Infrastructure
Agrupa las implementaciones concretas de integración con WordPress y con la Steam Store API.
Support
Contiene componentes reutilizables utilizados por distintas partes del proyecto, como el mapeo de idiomas y la extracción de información de los tráilers.
Objetivo del repositorio
Este repositorio tiene como finalidad mostrar la arquitectura, organización y calidad del código del proyecto sin exponer la totalidad de la implementación.
Se han omitido intencionadamente algunos componentes utilizados en producción, entre ellos:
- Repositorios completos de persistencia.
- Integraciones específicas del proyecto.
- Tareas programadas (Cron).
- Reglas internas de negocio.
- Configuración de producción.
El objetivo es ofrecer una visión clara del diseño de la aplicación y de las decisiones técnicas empleadas durante su desarrollo.