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
@@ -78,6 +78,18 @@ Ein Beitrag (`Entry`):
|
||||
"last_bump": 1700000400, "username": "max", "avatar": "static/media/…" }
|
||||
```
|
||||
|
||||
Enthält der Text einen Link, trägt der Beitrag `preview`, sobald der Server
|
||||
die Vorschau des **ersten** Links geholt hat (asynchron nach dem Anlegen bzw.
|
||||
Bearbeiten; vorher und ohne verwertbare Vorschau fehlt das Feld). `url` ist
|
||||
die kanonische Adresse (YouTube-Links aller Formen als `watch?v=<id>`),
|
||||
`kind` ist `youtube` oder `page`, `site` Kanal- bzw. Seitenname, `thumb` ein
|
||||
lokales Bild (leer, wenn es keins gibt). Siehe `preview.go`.
|
||||
|
||||
```json
|
||||
"preview": { "url": "https://www.youtube.com/watch?v=…", "kind": "youtube",
|
||||
"title": "…", "site": "…", "thumb": "static/media/preview/….jpg" }
|
||||
```
|
||||
|
||||
In Hauptfeed und `replies` des Threads trägt jeder Beitrag mit Antworten
|
||||
zusätzlich `latest`: den jüngsten nicht gelöschten Beitrag aus seinem ganzen
|
||||
Teilbaum (nach `created_at`, höchstens 50 Ebenen tief). `skipped` zählt die
|
||||
|
||||
Reference in New Issue
Block a user