Jak zautomatyzować listy linków: katalog awesome-zhuiju-free
Kolekcje linków na GitHubie zwykle spotyka ten sam los. Autor gromadzi sto użytecznych stron, zdobywa kilka tysięcy gwiazdek, porzuca repozytorium po sześciu miesiącach, a połowa linków zamienia się w 404. Repozytorium awesome-zhuiju-free rozwiązuje ten problem poprzez inżynierię.
Na pierwszy rzut oka wygląda to jak katalog chińskich zasobów medialnych: platformy streamingowe, odtwarzacze Android TV, playlisty IPTV, wyszukiwarki w chmurze i trackery torrentów. Jednak z technicznego punktu widzenia projekt wyróżnia się implementacją sprawdzania dostępności linków oraz projektowaniem struktury danych.
Co zawiera katalog
Baza danych projektu obejmuje około stu zasobów, zorganizowanych według kategorii:
- Gotowe konfiguracje i interfejsy dla odtwarzaczy TVBox i CatVod
- Agregatory treści dla telewizorów z systemem Android
- Odtwarzacze i klienci open-source, takie jak Kazumi, Animeko i SeleneTV
- Linki do publicznych strumieni IPTV i parserów, takich jak
iptv-orgiiptv-api
Autorzy katalogu oceniają każdy zasób według czterech kryteriów: wielkość bazy danych, szybkość reakcji, brak natrętnej reklamy oraz stabilność domeny. Oceny są przechowywane w formacie JSON, a końcowa ocena wyświetlana w tabeli readme.
Automatyczne sprawdzanie dostępności linków przez GitHub Actions
Główna funkcja repozytorium tkwi w konfiguracji CI/CD. Zamiast ręcznie usuwać martwe linki, autor skonfigurował pipeline przy użyciu GitHub Actions.
Skrypty wykonują się codziennie o 09:00 czasu Pekinu oraz przy każdym commicie zawierającym nowe dane. Proces przebiega następująco:
- Baza linków jest przechowywana w osobnym pliku
resources/resources.json. - Akcja uruchamia walidację schematu danych
validate-data.yml. - Worker
check-availability.ymlpinguje każdą stronę i zapisuje kod odpowiedzi. - Wyniki są zapisywane do raportu
reports/availability.json. - Skrypt dynamicznie aktualizuje statusy w
README.md, stosując znaczniki: zielony dla działających stron, żółty dla częściowych ograniczeń i czerwony dla niedostępnych.
To podejście przekształca statyczny plik markdown w dynamiczny dashboard statusów.
Architektura przechowywania danych
Każdy wpis w bazie danych jest reprezentowany jako ustrukturyzowany obiekt JSON. Oto przykład struktury śledzenia:
{
"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"
}
}
Oddzielenie treści do resources.json i prezentacji wizualnej w README.md usprawnia obsługę pull requestów. Użytkownicy przesyłają nowe strony przez standardowe formularze GitHub Issues (szablony YAML), a maintainer musi jedynie zweryfikować zgodność z zasadami i zatwierdzić merge.
Jak ten projekt jest przydatny dla programistów
Jeśli szukasz gotowych klientów do domowych centrów medialnych lub dekoderów TV z Androidem, znajdziesz linki do aktualnych forków FongMi TV, TVBox, parserów pansou i odtwarzaczy Kazumi.
Jeśli prowadzisz własne repozytorium użytecznych narzędzi (awesome-list), projekt warto sforkować dla jego struktury automatyzacji:
- Gotowy workflow do codziennego pingowania zewnętrznych adresów
- Generowanie tabel z datami sprawdzeń i wskaźnikami bezpośrednio w Markdown
- Walidacja danych wejściowych przez GitHub Actions
- Przechowywanie historii sprawdzeń w plikach JSON w repozytorium
Katalog demonstruje, jak prosta lista linków może stać się samowystarczalnym mikroserwisem przy użyciu tylko GitHub Actions. Możesz przejrzeć strukturę workflow lub znaleźć odtwarzacze medialne Android TV w repozytorium laoma2053/awesome-
zhuiju-
free.
Powiązane projekty