• PHP 36.4%
  • JavaScript 27.2%
  • Python 18%
  • CSS 17.4%
  • Shell 1%
Find a file
Claude Opus 5 c65e766496 Carry the corrected mark over into the standalone mark file
The favicon was fixed by hand in Inkscape, where the traced eyes let the
badge show through shapes that should have been closed. The header mark is
the same drawing and had the same holes, so it now takes its paths from the
corrected file.
2026-09-08 23:28:04 +00:00
inc Put the mouflon mark in the header and the favicon 2026-09-08 21:40:20 +00:00
public Carry the corrected mark over into the standalone mark file 2026-09-08 23:28:04 +00:00
sync sync playlists 2026-09-01 17:40:28 +02:00
tools Offer each public playlist as a FreeTube import file 2026-09-03 07:46:15 +00:00
.gitignore Initial public release 2026-08-02 22:43:36 +00:00
index.html Initial public release 2026-08-02 22:43:36 +00:00
README.md Put the mouflon mark in the header and the favicon 2026-09-08 21:40:20 +00:00
router.php Offer each public playlist as a FreeTube import file 2026-09-03 07:46:15 +00:00
THIRD_PARTY_NOTICES.md Initial public release 2026-08-02 22:43:36 +00:00

links.mufflonzucht.de

Quelle von links.mufflonzucht.de: öffentliche FreeTube-Playlists als Website.

  • public/ — Docroot (PHP 8, keine Abhängigkeiten). Playlist-Daten liegen generiert in public/data/playlists.json; Thumbnails cached der Server beim ersten Abruf über public/thumb.php nach var/thumbs/ (gitignoriert). Besucher laden nichts von Google; Embeds erst nach Klick über youtube-nocookie.com.
  • Atom-Feeds: /feed.xml über alle öffentlichen Playlists, je Playlist /playlists/<slug>/feed.xml — dieselbe Liste wie "Neueste Änderungen", 50 Einträge, sortiert nach Aufnahmedatum. Einträge behalten ihre ID über Neugenerierungen hinweg, ein Reader zeigt sie also nur einmal als neu.
  • FreeTube-Export: /playlists/<slug>/freetube.db gibt die Playlist in FreeTubes eigenem Playlist-Format aus (eine JSON-Zeile), einlesbar unter Einstellungen → Daten-Einstellungen → Playlists importieren. Playlist- und Eintrags-IDs sind aus Slug und Video-ID abgeleitet, ein zweiter Import ergänzt also dieselbe Playlist statt sie zu verdoppeln.
  • tools/check_site.py <basis-url> prüft Feeds und Exporte gegen eine laufende Instanz (Struktur, stabile IDs, bedingte Anfragen, Verlinkung).
  • sync/ — Export auf dem PC: sync/sync.sh liest die FreeTube-Datenbank, filtert nach der Slug-Zuordnung in sync/public_playlists.toml (nur gelistete Playlists werden veröffentlicht) und pusht bei Änderungen. Der Export benötigt Python 3.11 oder neuer (tomllib aus der Standardbibliothek). Commit und Push laufen mit git -C und übernehmen dadurch die lokale Git-Konfiguration des Benutzers, einschließlich Autor und GPG-Signierung.
  • Das Mufflon-Zeichen (public/mouflon.svg, public/favicon.svg) ist aus einer generierten Rastervorlage nachgezeichnet. Herkunft und Rechtelage stehen als Kommentar in den SVG-Dateien selbst. Der Seitenname bleibt Text neben dem Zeichen, damit die Kopfzeile ohne Bild lesbar bleibt.
  • inc/ — geteilte PHP-Helfer. Marken-Icons aus simple-icons (CC0), QR-Codes erzeugt public/assets/qr.js clientseitig.

Hinweise und Lizenztexte für eingebundene oder adaptierte Drittsoftware stehen in THIRD_PARTY_NOTICES.md. Insbesondere basiert der QR-Code-Generator auf Project Nayukis permissiv MIT-lizenziertem Projekt; daraus entsteht keine Copyleft-Pflicht für den übrigen Quellcode.