>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
JavaScript

Cómo automatizar listas de enlaces: El catálogo awesome-zhuiju-free

Las colecciones de enlaces en GitHub típicamente corren la misma suerte. El autor reúne un ciento de sitios útiles, obtiene un par de miles de estrellas, abandona el repositorio después de seis meses, y la mitad de los enlaces se convierten en 404s. El repositorio awesome-zhuiju-free resuelve este problema mediante ingeniería.

A primera vista, esto parece ser un catálogo de recursos multimedia chinos: plataformas de streaming, reproductores de Android TV, listas de reproducción IPTV, motores de búsqueda de almacenamiento en la nube y rastreadores de torrents. Sin embargo, desde una perspectiva técnica, el proyecto es notable por su implementación de verificación de disponibilidad de enlaces y diseño de estructura de datos.

laoma2053/awesome-zhuiju-free | Trendshift

Qué hay dentro del catálogo

La base de datos del proyecto cubre alrededor de un ciento de recursos, organizados por categoría:

  • Configuraciones e interfaces listas para usar para reproductores TVBox y CatVod
  • Agregadores de contenido para decodificadores de TV basados en Android
  • Reproductores y clientes de código abierto como Kazumi, Animeko y SeleneTV
  • Enlaces a transmisiones IPTV públicas y analizadores como iptv-org y iptv-api

Los autores del catálogo evalúan cada recurso según cuatro criterios: tamaño de la base de datos, velocidad de respuesta, ausencia de publicidad intrusiva y estabilidad del dominio. Las puntuaciones se almacenan en formato JSON, con la calificación final mostrada en la tabla del readme.

Verificación automática de disponibilidad de enlaces mediante GitHub Actions

La característica principal del repositorio radica en su configuración de CI/CD. En lugar de eliminar manualmente los enlaces rotos, el autor configuró un pipeline utilizando GitHub Actions.

Los scripts se ejecutan según una programación cada mañana a las 09:00 hora de Beijing, así como con cada confirmación que contiene nuevos datos. El proceso funciona de la siguiente manera:

  1. La base de datos de enlaces se almacena en un archivo separado resources/resources.json.
  2. La Action activa la validación del esquema de datos validate-data.yml.
  3. El worker check-availability.yml hace ping a cada sitio y registra el código de respuesta.
  4. Los resultados se escriben en el informe reports/availability.json.
  5. El script actualiza dinámicamente los estados en README.md, aplicando marcadores: verde para sitios operativos, amarillo para restricciones parciales y rojo para los no disponibles.

Este enfoque transforma un archivo markdown estático en un panel de estado dinámico.

Star History Chart

Repobeats

Arquitectura de almacenamiento de datos

Cada entrada en la base de datos está representada como un objeto JSON estructurado. Aquí hay un ejemplo de la estructura de seguimiento:

{
  "id": "kazumi",
  "name": "Kazumi",
  "url": "https://kazumi.app/download",
  "category": "app",
  "platforms": ["Android", "iOS", "Windows", "macOS", "HarmonyOS"],
  "rating": {
    "volume": 5,
    "speed": 5,
    "cleanliness": 5,
    "stability": 5
  },
  "risk": {
    "copyright": "low",
    "security": "low",
    "privacy": "low"
  }
}

Separar el contenido en resources.json y la presentación visual en README.md agiliza el manejo de pull requests. Los usuarios envían nuevos sitios a través de formularios estándar de Issues de GitHub (plantillas YAML), y el mantenedor solo necesita verificar el cumplimiento de las reglas y aprobar la fusión.

Cómo este proyecto beneficia a los desarrolladores

Si buscas clientes listos para usar para centros multimedia domésticos o decodificadores de TV, encontrarás enlaces a forks actuales de FongMi TV, TVBox, analizadores pansou y reproductores Kazumi.

Si mantienes tu propio repositorio de herramientas útiles (awesome-list), el proyecto vale la pena bifurcarlo por su estructura de automatización:

  • Workflow listo para usar para hacer ping diariamente a direcciones externas
  • Generación de tablas con fechas de verificación e indicadores directamente en Markdown
  • Validación de datos de entrada a través de GitHub Actions
  • Almacenamiento del historial de verificaciones en archivos JSON dentro del repositorio

El catálogo demuestra cómo una simple lista de enlaces puede convertirse en un microservicio mantenible usando solo GitHub Actions. Puedes explorar la estructura del workflow o encontrar reproductores multimedia de Android TV en el repositorio laoma2053/awesome-zhuiju-free.

Proyectos relacionados