Linkvorschau für den ersten Link eines Beitrags
Der Server holt zum ersten Link Titel, Seiten- bzw. Kanalname und ein kleines Vorschaubild (320 px) und speichert das Bild lokal; der Browser lädt nur von uns, Besucher-IPs gehen nie an die verlinkte Seite. YouTube über oEmbed (alle Linkformen kanonisch als watch?v=<id>), alle übrigen Seiten über OpenGraph bzw. <title>. Abruf asynchron in einem Worker, eine Zeile je Link in link_preview, Auffrischen nach 30 Tagen. Der Abruf-Client lässt nur öffentliche IPs auf Port 80/443 zu, geprüft nach DNS-Auflösung und bei jeder Weiterleitung (SSRF). Bestehende Beiträge: kver link-previews. Neue Abhängigkeit golang.org/x/net, damit go 1.26. DEV bekommt ein beschreibbares Volume für die Vorschaubilder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TiXsPUqw7oeomZ8wZrQW5q
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
a8f392edba
commit
26b0182391
@@ -15,11 +15,22 @@ export interface Entry {
|
||||
last_bump: number;
|
||||
username: string;
|
||||
avatar: string;
|
||||
// Vorschau des ersten Links, sobald der Server sie geholt hat.
|
||||
preview?: LinkPreview;
|
||||
// Nur in Feed und Antwortliste: jüngster Beitrag im Teilbaum, skipped =
|
||||
// Beiträge auf dem Pfad dazwischen (0 = direkte Antwort).
|
||||
latest?: { entry: Entry; skipped: number };
|
||||
}
|
||||
|
||||
// Vom Server geholte Linkvorschau; thumb liegt lokal (leer = kein Bild).
|
||||
export interface LinkPreview {
|
||||
url: string;
|
||||
kind: "youtube" | "page";
|
||||
title: string;
|
||||
site: string;
|
||||
thumb: string;
|
||||
}
|
||||
|
||||
export interface Thread {
|
||||
entry: Entry;
|
||||
ancestors: Entry[];
|
||||
|
||||
Reference in New Issue
Block a user