parse funkwhale / bandwagon album as statusable

This commit is contained in:
tobi 2025-03-23 16:27:10 +01:00
commit c1fd23438d
8 changed files with 171 additions and 43 deletions

View file

@ -80,6 +80,56 @@ func (suite *ResolveTestSuite) TestResolveNonAPJSONAsAccountable() {
suite.Nil(accountable)
}
func (suite *ResolveTestSuite) TestResolveBandwagonAlbumAsStatusable() {
b := []byte(`{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"discoverable": "toot:discoverable",
"indexable": "toot:indexable",
"toot": "https://joinmastodon.org/ns#"
},
"https://funkwhale.audio/ns"
],
"artists": [
{
"id": "https://bandwagon.fm/@67a0a0808121f77ed3466870",
"name": "Luka Prinčič",
"type": "Artist"
}
],
"attachment": [
{
"mediaType": "image/webp",
"name": "image",
"type": "Document",
"url": "https://bandwagon.fm/67a0a219f050061c8b4ce427/attachments/67a0a21bf050061c8b4ce429"
}
],
"attributedTo": "https://bandwagon.fm/@67a0a0808121f77ed3466870",
"content": "... a transgenre mutation, a fluid entity, jagged pop, electro-funk, techno-cabaret, a schlager, and soft alternative, queer to the core, satire and tragedy, sharp and fun indulgence for the dance of bodies and brains, activism and hedonism, which would all like to steal your attention.\r\n\r\nDRAGX̶FUNK is pronounced /dɹæɡɑːfʌŋk/.\r\n\r\n---\r\n\r\n## Buy digital\r\n💳 [Stripe](https://buy.stripe.com/6oE8x52iG1Kq5pKeV3)\r\n\r\n---\r\n\r\n## Buy dl/merch\r\n🎵 [Bandcamp](https://lukaprincic.bandcamp.com/album/dragx-funk) \r\n\r\n---\r\n\r\n## More:\r\n🌐 [prin.lu](https://prin.lu/music/241205_dragx-funk/) \r\n👉 [kamizdat.si](https://kamizdat.si/releases/dragx-funk-2/)\r\n",
"context": "https://bandwagon.fm/67a0a219f050061c8b4ce427",
"id": "https://bandwagon.fm/67a0a219f050061c8b4ce427",
"library": "https://bandwagon.fm/67a0a219f050061c8b4ce427/pub/children",
"license": "CC-BY-NC-SA",
"name": "DRAGX̶FUNK",
"published": "2025-03-17T11:40:53Z",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"tracks": "https://bandwagon.fm/67a0a219f050061c8b4ce427/pub/children",
"type": "Album",
"url": "https://bandwagon.fm/67a0a219f050061c8b4ce427"
}`)
statusable, err := ap.ResolveStatusable(
context.Background(), io.NopCloser(bytes.NewReader(b)),
)
suite.NoError(err)
suite.NotNil(statusable)
}
func TestResolveTestSuite(t *testing.T) {
suite.Run(t, &ResolveTestSuite{})
}