>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
JavaScript

Comment automatiser les listes de liens : le catalogue awesome-zhuiju-free

Les collections de liens GitHub connaissent généralement le même sort. L'auteur rassemble une centaines de sites utiles, obtient quelques milliers d'étoiles, abandonne le dépôt après six mois, et la moitié des liens se transforment en 404. Le dépôt awesome-zhuiju-free résout ce problème par l'ingénierie.

À première vue, cela ressemble à un catalogue de ressources médiatiques chinoises : plateformes de streaming, lecteurs TV Android, playlists IPTV, moteurs de recherche pour stockage cloud et trackers torrent. Cependant, d'un point de vue technique, le projet se distingue par son implémentation de vérification de disponibilité des liens et la conception de sa structure de données.

laoma2053/awesome-zhuiju-free | Trendshift

Ce que contient le catalogue

La base de données du projet couvre environ une centaines de ressources, organisées par catégorie :

  • Configurations et interfaces prêtes à l'emploi pour les lecteurs TVBox et CatVod
  • Agrégateurs de contenu pour les décodeurs TV Android
  • Lecteurs et clients open source comme Kazumi, Animeko et SeleneTV
  • Liens vers des flux IPTV publics et des parseurs comme iptv-org et iptv-api

Les auteurs du catalogue évaluent chaque ressource selon quatre critères : taille de la base de données, vitesse de réponse, absence de publicité intrusive et stabilité du domaine. Les scores sont stockés au format JSON, avec la note finale affichée dans le tableau du readme.

Vérification automatique de la disponibilité des liens via GitHub Actions

La fonctionnalité principale du dépôt réside dans sa configuration CI/CD. Au lieu de supprimer manuellement les liens morts, l'auteur a configuré un pipeline utilisant GitHub Actions.

Les scripts s'exécutent selon un planning chaque matin à 09h00 heure de Beijing, ainsi qu'à chaque commit contenant de nouvelles données. Le processus fonctionne comme suit :

  1. La base de données des liens est stockée dans un fichier séparé resources/resources.json.
  2. L'Action déclenche la validation du schéma de données validate-data.yml.
  3. Le worker check-availability.yml ping chaque site et enregistre le code de réponse.
  4. Les résultats sont écrits dans le rapport reports/availability.json.
  5. Le script met à jour dynamiquement les statuts dans README.md, appliquant des marqueurs : vert pour les sites opérationnels, jaune pour les restrictions partielles et rouge pour les indisponibles.

Cette approche transforme un fichier markdown statique en un tableau de bord dynamique des statuts.

Star History Chart

Repobeats

Architecture de stockage des données

Chaque entrée dans la base de données est représentée sous forme d'un objet JSON structuré. Voici un exemple de la structure de suivi :

{
  "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"
  }
}

Séparer le contenu dans resources.json et la présentation visuelle dans README.md simplifie le traitement des pull requests. Les utilisateurs soumettent de nouveaux sites via les formulaires GitHub Issues standard (modèles YAML), et le mainteneur n'a besoin que de vérifier la conformité aux règles et d'approuver la fusion.

Comment ce projet bénéficie aux développeurs

Si vous cherchez des clients prêts à l'emploi pour les centres multimédias domestiques ou les décodeurs TV, vous trouverez des liens vers les forks actuels de FongMi TV, TVBox, les parseurs pansou et les lecteurs Kazumi.

Si vous maintenez votre propre dépôt d'outils utiles (awesome-list), le projet mérite d'être forké pour sa structure d'automatisation :

  • Workflow prêt à l'emploi pour le ping quotidien des adresses externes
  • Génération de tableaux avec dates de vérification et indicateurs directement en Markdown
  • Validation des données d'entrée via GitHub Actions
  • Stockage de l'historique des vérifications dans des fichiers JSON au sein du dépôt

Le catalogue démontre comment une simple liste de liens peut devenir un microservice maintenable en utilisant uniquement GitHub Actions. Vous pouvez explorer la structure du workflow ou trouver des lecteurs multimédias TV Android dans le dépôt laoma2053/awesome-zhuiju-free.

Projets similaires