feat: twitter OG tags
This commit is contained in:
parent
52b308967f
commit
ccd1f7f2a7
@ -86,7 +86,11 @@ public class OpenGraphController : Controller
|
||||
new("og:title", meta?.Title ?? ""),
|
||||
new("og:description", meta?.Description ?? ""),
|
||||
new("og:image", meta?.Image ?? $"https://robohash.v0l.io/{nid.Special}.png"),
|
||||
new("og:profile:username", meta?.Profile?.Name ?? "")
|
||||
new("og:profile:username", meta?.Profile?.Name ?? ""),
|
||||
new("twitter:card", "summary"),
|
||||
new("twitter:title", meta?.Title ?? ""),
|
||||
new("twitter:description", meta?.Description ?? ""),
|
||||
new("twitter:image", meta?.Image ?? $"https://robohash.v0l.io/{nid.Special}.png"),
|
||||
]);
|
||||
|
||||
AddCanonical(tags, profile?.ToIdentifier() ?? new NostrProfileIdentifier(nid.Special, null));
|
||||
@ -118,16 +122,23 @@ public class OpenGraphController : Controller
|
||||
var hostProfile = await _redisStore.GetProfile(host);
|
||||
var hostName = hostProfile?.Name ?? profile?.Name ?? "Nostrich";
|
||||
var stream = ev.GetFirstTagValue("streaming") ?? ev.GetFirstTagValue("recording") ?? "";
|
||||
var image = ev.GetFirstTagValue("image") ?? hostProfile?.Picture ?? $"https://robohash.v0l.io/{ev.PubKey.ToHex()}.png";
|
||||
ret.AddRange(new KeyValuePair<string, string>[]
|
||||
{
|
||||
new("og:type", "video.other"),
|
||||
new("og:title", $"{hostName} is streaming"),
|
||||
new("og:description", ev.GetFirstTagValue("title") ?? ""),
|
||||
new("og:image",
|
||||
ev.GetFirstTagValue("image") ?? hostProfile?.Picture ?? $"https://robohash.v0l.io/{ev.PubKey.ToHex()}.png"),
|
||||
new("og:image", image),
|
||||
new("og:video", stream),
|
||||
new("og:video:secure_url", stream),
|
||||
new("og:video:type", "application/vnd.apple.mpegurl"),
|
||||
new("twitter:card", "player"),
|
||||
new("twitter:title", $"{hostName} is streaming"),
|
||||
new("twitter:description", ev.GetFirstTagValue("title") ?? ""),
|
||||
new("twitter:image", image),
|
||||
new("twitter:site", "zap_stream"),
|
||||
new("twitter:player", $"https://zap.stream/embed/{ev.ToIdentifier().ToBech32()}"),
|
||||
new("twitter:player:width", "1280")
|
||||
});
|
||||
|
||||
break;
|
||||
@ -135,16 +146,20 @@ public class OpenGraphController : Controller
|
||||
case 1_313: // stream clip
|
||||
{
|
||||
var stream = ev.GetFirstTagValue("r")!;
|
||||
var image = ev.GetFirstTagValue("image") ?? profile?.Picture ?? $"https://robohash.v0l.io/{ev.PubKey.ToHex()}.png";
|
||||
ret.AddRange(new KeyValuePair<string, string>[]
|
||||
{
|
||||
new("og:type", "video.other"),
|
||||
new("og:title", $"{name} created a clip"),
|
||||
new("og:description", ev.GetFirstTagValue("title") ?? ""),
|
||||
new("og:image",
|
||||
ev.GetFirstTagValue("image") ?? profile?.Picture ?? $"https://robohash.v0l.io/{ev.PubKey.ToHex()}.png"),
|
||||
new("og:image", image),
|
||||
new("og:video", stream),
|
||||
new("og:video:secure_url", stream),
|
||||
new("og:video:type", "video/mp4"),
|
||||
new("twitter:card", "summary_large_image"),
|
||||
new("twitter:title", $"{name} created a clip"),
|
||||
new("twitter:description", ev.GetFirstTagValue("title") ?? ""),
|
||||
new("twitter:image", image),
|
||||
});
|
||||
|
||||
break;
|
||||
@ -154,14 +169,19 @@ public class OpenGraphController : Controller
|
||||
const int maxLen = 160;
|
||||
var trimmedContent = ev.Content.Length > maxLen ? ev.Content[..maxLen] : ev.Content;
|
||||
var titleContent = $"{profile}: {trimmedContent}";
|
||||
var image = profile?.Picture ?? $"https://robohash.v0l.io/{ev.PubKey.ToHex()}.png";
|
||||
ret.AddRange(new KeyValuePair<string, string>[]
|
||||
{
|
||||
new("og:type", "article"),
|
||||
new("og:title", titleContent),
|
||||
new("og:description", ""),
|
||||
new("og:image", profile?.Picture ?? $"https://robohash.v0l.io/{ev.PubKey.ToHex()}.png"),
|
||||
new("og:image", image),
|
||||
new("og:article:published_time", ev.Created.ToString("o")),
|
||||
new("og:article:author:username", profile?.Name ?? ""),
|
||||
new("twitter:card", "summary"),
|
||||
new("twitter:title", titleContent),
|
||||
new("twitter:description", ""),
|
||||
new("twitter:image", image),
|
||||
});
|
||||
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user