diff --git a/claim/decode_test.go b/claim/decode_test.go index 4aa1c1c..e832b1a 100644 --- a/claim/decode_test.go +++ b/claim/decode_test.go @@ -69,15 +69,14 @@ func TestCreateChannelClaim(t *testing.T) { } claim := &ClaimHelper{Claim: newChannelClaim(), Version: NoSig} claim.GetChannel().PublicKey = pubKeyBytes - claim.GetChannel().Title = "Test Channel Title" - claim.GetChannel().Description = "Test Channel Description" - claim.GetChannel().CoverUrl = "http://testcoverurl.com" - claim.GetChannel().Tags = []string{"TagA", "TagB", "TagC"} - claim.GetChannel().Languages = []*pb.Language{{Language: pb.Language_en}, {Language: pb.Language_es}} - claim.GetChannel().ThumbnailUrl = "http://thumbnailurl.com" - claim.GetChannel().ContactEmail = "test@test.com" - claim.GetChannel().HomepageUrl = "http://homepageurl.com" - claim.GetChannel().Locations = []*pb.Location{{Country: pb.Location_AD}, {Country: pb.Location_US, State: "NJ", City: "some city"}} + claim.Title = "Test Channel Title" + claim.Description = "Test Channel Description" + claim.GetChannel().Cover = &pb.Source{Url: "http://testcoverurl.com"} + claim.Tags = []string{"TagA", "TagB", "TagC"} + claim.Languages = []*pb.Language{{Language: pb.Language_en}, {Language: pb.Language_es}} + claim.Thumbnail = &pb.Source{Url: "http://thumbnailurl.com"} + claim.GetChannel().WebsiteUrl = "http://homepageurl.com" + claim.Locations = []*pb.Location{{Country: pb.Location_AD}, {Country: pb.Location_US, State: "NJ", City: "some city"}} rawClaim, err := claim.CompileValue() if err != nil { diff --git a/claim/migration.go b/claim/migration.go index 418ee8b..9e74f2f 100644 --- a/claim/migration.go +++ b/claim/migration.go @@ -15,7 +15,6 @@ const lbrySDHash = "lbry_sd_hash" func newStreamClaim() *pb.Claim { claimStream := new(pb.Claim_Stream) stream := new(pb.Stream) - stream.File = new(pb.File) pbClaim := new(pb.Claim) pbClaim.Type = claimStream @@ -35,16 +34,22 @@ func newChannelClaim() *pb.Claim { return pbClaim } -func setMetaData(claim pb.Claim, author string, description string, language pb.Language_Language, license string, +func setMetaData(claim *pb.Claim, author string, description string, language pb.Language_Language, license string, licenseURL *string, title string, thumbnail *string, nsfw bool) { + claim.Title = title + claim.Description = description + claim.GetStream().Author = author - claim.GetStream().Description = description - claim.GetStream().Languages = []*pb.Language{{Language: language}} - claim.GetStream().Title = title + claim.Languages = []*pb.Language{{Language: language}} + if thumbnail != nil { - claim.GetStream().ThumbnailUrl = *thumbnail + source := new(pb.Source) + source.Url = *thumbnail + claim.Thumbnail = source + } + if nsfw { + claim.Tags = []string{"mature"} } - claim.GetStream().Tags = []string{"mature"} claim.GetStream().License = license if licenseURL != nil { claim.GetStream().LicenseUrl = *licenseURL @@ -63,7 +68,10 @@ func migrateV1PBClaim(vClaim v1pb.Claim) (*pb.Claim, error) { func migrateV1PBStream(vClaim v1pb.Claim) (*pb.Claim, error) { claim := newStreamClaim() - claim.GetStream().MediaType = vClaim.GetStream().GetSource().GetContentType() + source := new(pb.Source) + source.MediaType = vClaim.GetStream().GetSource().GetContentType() + source.SdHash = vClaim.GetStream().GetSource().GetSource() + claim.GetStream().Source = source md := vClaim.GetStream().GetMetadata() if md.GetFee() != nil { claim.GetStream().Fee = new(pb.Fee) @@ -71,17 +79,18 @@ func migrateV1PBStream(vClaim v1pb.Claim) (*pb.Claim, error) { claim.GetStream().GetFee().Address = md.GetFee().GetAddress() claim.GetStream().GetFee().Currency = pb.Fee_Currency(pb.Fee_Currency_value[md.GetFee().GetCurrency().String()]) } - claim.GetStream().SdHash = vClaim.GetStream().GetSource().GetSource() if vClaim.GetStream().GetMetadata().GetNsfw() { - claim.GetStream().Tags = []string{"mature"} + claim.Tags = []string{"mature"} } - claim.GetStream().ThumbnailUrl = md.GetThumbnail() + thumbnailSource := new(pb.Source) + thumbnailSource.Url = md.GetThumbnail() + claim.Thumbnail = thumbnailSource language := pb.Language_Language(pb.Language_Language_value[md.GetLanguage().String()]) - claim.GetStream().Languages = []*pb.Language{{Language: language}} + claim.Languages = []*pb.Language{{Language: language}} claim.GetStream().LicenseUrl = md.GetLicenseUrl() claim.GetStream().License = md.GetLicense() - claim.GetStream().Title = md.GetTitle() - claim.GetStream().Description = md.GetDescription() + claim.Title = md.GetTitle() + claim.Description = md.GetDescription() claim.GetStream().Author = md.GetAuthor() return claim, nil @@ -101,15 +110,18 @@ func migrateV1Claim(vClaim V1Claim) (*pb.Claim, error) { setFee(vClaim.Fee, pbClaim) // -->MetaData language := pb.Language_Language(pb.Language_Language_value[vClaim.Language]) - setMetaData(*pbClaim, vClaim.Author, vClaim.Description, language, + setMetaData(pbClaim, vClaim.Author, vClaim.Description, language, vClaim.License, nil, vClaim.Title, vClaim.Thumbnail, false) // -->Source - pbClaim.GetStream().MediaType = vClaim.ContentType + source := new(pb.Source) + source.MediaType = vClaim.ContentType + src, err := hex.DecodeString(vClaim.Sources.LbrySDHash) if err != nil { return nil, errors.Err(err) } - pbClaim.GetStream().SdHash = src + source.SdHash = src + pbClaim.GetStream().Source = source return pbClaim, nil } @@ -121,15 +133,17 @@ func migrateV2Claim(vClaim V2Claim) (*pb.Claim, error) { setFee(vClaim.Fee, pbClaim) // -->MetaData language := pb.Language_Language(pb.Language_Language_value[vClaim.Language]) - setMetaData(*pbClaim, vClaim.Author, vClaim.Description, language, + setMetaData(pbClaim, vClaim.Author, vClaim.Description, language, vClaim.License, vClaim.LicenseURL, vClaim.Title, vClaim.Thumbnail, vClaim.NSFW) // -->Source - pbClaim.GetStream().MediaType = vClaim.ContentType + source := new(pb.Source) + source.MediaType = vClaim.ContentType src, err := hex.DecodeString(vClaim.Sources.LbrySDHash) if err != nil { return nil, errors.Err(err) } - pbClaim.GetStream().SdHash = src + source.SdHash = src + pbClaim.GetStream().Source = source return pbClaim, nil } @@ -141,15 +155,17 @@ func migrateV3Claim(vClaim V3Claim) (*pb.Claim, error) { setFee(vClaim.Fee, pbClaim) // -->MetaData language := pb.Language_Language(pb.Language_Language_value[vClaim.Language]) - setMetaData(*pbClaim, vClaim.Author, vClaim.Description, language, + setMetaData(pbClaim, vClaim.Author, vClaim.Description, language, vClaim.License, vClaim.LicenseURL, vClaim.Title, vClaim.Thumbnail, vClaim.NSFW) // -->Source - pbClaim.GetStream().MediaType = vClaim.ContentType + source := new(pb.Source) + source.MediaType = vClaim.ContentType src, err := hex.DecodeString(vClaim.Sources.LbrySDHash) if err != nil { return nil, errors.Err(err) } - pbClaim.GetStream().SdHash = src + source.SdHash = src + pbClaim.GetStream().Source = source return pbClaim, nil } diff --git a/claim/migration_test.go b/claim/migration_test.go index 742bb35..e59a9cf 100644 --- a/claim/migration_test.go +++ b/claim/migration_test.go @@ -191,11 +191,11 @@ func TestMigrationFromJSON(t *testing.T) { if helper.Claim.GetStream().GetAuthor() != pair.Claim.Author { t.Error("Author mismatch: expected", pair.Claim.Author, "got", helper.Claim.GetStream().GetAuthor()) } - if helper.Claim.GetStream().GetTitle() != pair.Claim.Title { - t.Error("Title mismatch: expected", pair.Claim.Title, "got", helper.Claim.GetStream().GetTitle()) + if helper.Claim.GetTitle() != pair.Claim.Title { + t.Error("Title mismatch: expected", pair.Claim.Title, "got '", helper.Claim.GetTitle(), "'") } - if helper.Claim.GetStream().GetDescription() != pair.Claim.Description { - t.Error("Description mismatch: expected", pair.Claim.Description, "got", helper.Claim.GetStream().GetDescription()) + if helper.Claim.GetDescription() != pair.Claim.Description { + t.Error("Description mismatch: expected", pair.Claim.Description, "got '", helper.Claim.GetDescription(), "'") } if helper.Claim.GetStream().GetLicense() != pair.Claim.License { t.Error("License mismatch: expected", pair.Claim.License, "got", helper.Claim.GetStream().GetLicense()) @@ -213,13 +213,13 @@ func TestMigrationFromJSON(t *testing.T) { if hexaddress != pair.Claim.FeeAddress { t.Error("Fee Address mismatch: expected", pair.Claim.FeeAddress, "got", hexaddress) } - if helper.Claim.GetStream().GetMediaType() != pair.Claim.ContentType { - t.Error("ContentType mismatch: expected", pair.Claim.ContentType, "got", helper.Claim.GetStream().GetMediaType()) + if helper.Claim.GetStream().GetSource().GetMediaType() != pair.Claim.ContentType { + t.Error("ContentType mismatch: expected", pair.Claim.ContentType, "got", helper.Claim.GetStream().GetSource().GetMediaType()) } - if helper.Claim.GetStream().GetLanguages()[0].String() != pair.Claim.Language { - t.Error("Language mismatch: expected ", pair.Claim.Language, " got ", helper.Claim.GetStream().GetLanguages()[0].String()) + if helper.Claim.GetLanguages()[0].String() != pair.Claim.Language { + t.Error("Language mismatch: expected ", pair.Claim.Language, " got ", helper.Claim.GetLanguages()[0].String()) } - content := hex.EncodeToString(helper.Claim.GetStream().GetSdHash()) + content := hex.EncodeToString(helper.Claim.GetStream().GetSource().GetSdHash()) if content != pair.Claim.LbrySDHash { t.Error("Source mismatch: expected", pair.Claim.LbrySDHash, "got", content) } @@ -232,18 +232,18 @@ func TestMigrationFromV1YTSync(t *testing.T) { if err != nil { t.Error(err) } - assert.Assert(t, claim.GetStream().GetTitle() == "Here are 5 Reasons I ❤️ Nextcloud | TLG") - assert.Assert(t, claim.GetStream().GetDescription() == "Find out more about Nextcloud: https://nextcloud.com/\n\nYou can find me on these socials:\n * Forums: https://forum.heavyelement.io/\n * Podcast: https://offtopical.net\n * Patreon: https://patreon.com/thelinuxgamer\n * Merch: https://teespring.com/stores/official-linux-gamer\n * Twitch: https://twitch.tv/xondak\n * Twitter: https://twitter.com/thelinuxgamer\n\n...\nhttps://www.youtube.com/watch?v=FrTdBCOS_fc") + assert.Assert(t, claim.GetTitle() == "Here are 5 Reasons I ❤️ Nextcloud | TLG") + assert.Assert(t, claim.GetDescription() == "Find out more about Nextcloud: https://nextcloud.com/\n\nYou can find me on these socials:\n * Forums: https://forum.heavyelement.io/\n * Podcast: https://offtopical.net\n * Patreon: https://patreon.com/thelinuxgamer\n * Merch: https://teespring.com/stores/official-linux-gamer\n * Twitch: https://twitch.tv/xondak\n * Twitter: https://twitter.com/thelinuxgamer\n\n...\nhttps://www.youtube.com/watch?v=FrTdBCOS_fc") assert.Assert(t, claim.GetStream().GetLicense() == "Copyrighted (contact author)") assert.Assert(t, claim.GetStream().GetAuthor() == "The Linux Gamer") //?assert.Assert(t, claim.GetStream().GetLanguages()[0]) - assert.Assert(t, claim.GetStream().GetMediaType() == "video/mp4") - assert.Assert(t, claim.GetStream().GetThumbnailUrl() == "https://berk.ninja/thumbnails/FrTdBCOS_fc") + assert.Assert(t, claim.GetStream().GetSource().GetMediaType() == "video/mp4") + assert.Assert(t, claim.GetThumbnail().GetUrl() == "https://berk.ninja/thumbnails/FrTdBCOS_fc") sdHashBytes, err := hex.DecodeString("040e8ac6e89c061f982528c23ad33829fd7146435bf7a4cc22f0bff70c4fe0b91fd36da9a375e3e1c171db825bf5d1f3") if err != nil { t.Error(err) } - assert.Assert(t, bytes.Equal(claim.GetStream().GetSdHash(), sdHashBytes)) + assert.Assert(t, bytes.Equal(claim.GetStream().GetSource().GetSdHash(), sdHashBytes)) channelHex := "08011002225e0801100322583056301006072a8648ce3d020106052b8104000a034200043878b1edd4a1373149909ef03f4339f6da9c2bd2214c040fd2e530463ffe66098eca14fc70b50ff3aefd106049a815f595ed5a13eda7419ad78d9ed7ae473f17" channel, err := DecodeClaimHex(channelHex, "lbrycrd_main") @@ -263,17 +263,17 @@ func TestMigrationFromV1UnsignedWithFee(t *testing.T) { if err != nil { t.Error(err) } - assert.Assert(t, claim.GetStream().GetTitle() == "rpg midi") - assert.Assert(t, claim.GetStream().GetDescription() == "midi") + assert.Assert(t, claim.GetTitle() == "rpg midi") + assert.Assert(t, claim.GetDescription() == "midi") assert.Assert(t, claim.GetStream().GetLicense() == "Creative Commons Attribution 4.0 International") assert.Assert(t, claim.GetStream().GetAuthor() == "rpg midi") //assert.Assert(t, claim.GetStream().GetLanguage() == "en") - assert.Assert(t, claim.GetStream().GetMediaType() == "application/x-zip-compressed") + assert.Assert(t, claim.GetStream().GetSource().GetMediaType() == "application/x-zip-compressed") sdHashBytes, err := hex.DecodeString("1f41eb0312aa7e8a5ce49349bc77d811da975833719d751523b19f123fc3d528d6a94e3446ccddb7b9329f27a9cad7e3") if err != nil { t.Error(err) } - assert.Assert(t, bytes.Equal(claim.GetStream().GetSdHash(), sdHashBytes)) + assert.Assert(t, bytes.Equal(claim.GetStream().GetSource().GetSdHash(), sdHashBytes)) feeAddressBytes, err := address.DecodeAddress("bJUQ9MxS9N6M29zsA5GTpVSDzsnPjMBBX9", "lbrycrd_main") assert.Assert(t, bytes.Equal(claim.GetStream().GetFee().GetAddress(), feeAddressBytes[:])) assert.Assert(t, claim.GetStream().GetFee().GetAmount() == 1500000000) diff --git a/claim/sign_test.go b/claim/sign_test.go index 3f6a7ff..314179c 100644 --- a/claim/sign_test.go +++ b/claim/sign_test.go @@ -30,8 +30,8 @@ func TestSign(t *testing.T) { } claim := &ClaimHelper{newStreamClaim(), nil, reverseBytes(claimIDHexBytes), WithSig, nil} - claim.Claim.GetStream().Title = "Test title" - claim.Claim.GetStream().Description = "Test description" + claim.Claim.Title = "Test title" + claim.Claim.Description = "Test description" sig, err := Sign(*privateKey, *channel, *claim, txid) if err != nil { t.Error(err) @@ -105,8 +105,8 @@ func TestSignWithV1Channel(t *testing.T) { } claim := &ClaimHelper{newStreamClaim(), nil, reverseBytes(claimIDHexBytes), WithSig, nil} - claim.Claim.GetStream().Title = "Test title" - claim.Claim.GetStream().Description = "Test description" + claim.Claim.Title = "Test title" + claim.Claim.Description = "Test description" sig, err := Sign(*privateKey, *channel, *claim, txid) if err != nil { t.Error(err)