Podcast episodes play; servers with NodeInfo2 only are described
Castopod announces an episode with a Note that only links to the episode's page, which serves a PodcastEpisode. PrivaPub reads PodcastEpisode (its words in description, its sound in audio, its cover in image), and a Note that is only a link to its author's own episode takes the episode's sound, title, cover and words, so the post plays. A server that publishes no NodeInfo is described from NodeInfo2 (/.well-known/x-nodeinfo2), as Castopod publishes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
3df3c333bf
commit
69ab8e50eb
7 files changed
+163
-3
No files matched your search
@@ -75,6 +75,17 @@ namespace PrivaPub.Federation.Objects
|
||||
else
|
||||
error = "NodeInfo unreadable";
|
||||
}
|
||||
// no NodeInfo: NodeInfo2, Castopod's
|
||||
if (facts == default && allowed("/.well-known/x-nodeinfo2"))
|
||||
{
|
||||
using var nodeInfo2 = await _http.GetJson(Address($"https://{host}/.well-known/x-nodeinfo2"), "application/json", sign: default, token);
|
||||
if (nodeInfo2 != default && InstanceDocuments.NodeInfo2(nodeInfo2.Root) is { } second)
|
||||
{
|
||||
facts = second;
|
||||
rawNodeInfo = nodeInfo2.Root.GetRawText();
|
||||
error = default;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InstanceApiFacts api = default;
|
||||
|
||||
Reference in new issue
Block a user