using decePubClient.Models; using decePubClient.Models.Types; using Markdig; namespace decePubClient.Helpers; /// /// Mock data until the app is wired to PrivaPub: the signed-in user, the feed shown while IndexedDB holds no messages, /// and the thread around an expanded message. /// public static class Faker { public static User CurrentUser => new() { Id = "45f14fa8-c40f-4121-997c-ef2542196a50", UserName = "@loosy@letsrulethe.world", DisplayName = "loosy", PictureUrl = "https://letsrulethe.world/media/ddd91d51-dc12-4b82-86a2-2a28cc959183/L51ZAL4QEL07", BackgroundUrl = "https://letsrulethe.world/media/9a3cc6c4-1018-4f41-86c7-f3e63e362bf4/EXM8RUK10B0Z", ProfileUrl = "https://letsrulethe.world/users/loosy" }; static IReadOnlyList Users => [ CurrentUser.ToMessageUser(), new() { UserId = "7b5703dc-aee8-46b1-aed2-cd06021a1c0c", DisplayName = "loweel", UserName = "@loweel@bbs.keinpfusch.net", PictureUrl = "https://ipfs.keinpfusch.net/ipfs/bafybeiazrrmngqww7mfag76gmcmw6l2nohckuh6yvldbzatkls5yyznxb4?name=Yb7peXARjY3B_A.png", BackgroundUrl = "https://ipfs.keinpfusch.net/ipfs/bafkreialv6avp3xykmfc75daevjz4k3chd27eop7o62nznafy46pwjpd2y?name=QBZNoDonJ1HvEw.jpg", ProfileUrl = "https://letsrulethe.world/users/AG6rE2nRya826QEJFY" }, new() { UserId = "bc9c2a2b-fc5f-42fc-b907-ac30203eed45", DisplayName = "Valentina Nappi", UserName = "@valentina.nappi@mastodon.uno", PictureUrl = "https://s-media-cache-ak0.pinimg.com/564x/a0/30/00/a030003d2e506ec9731b8460127d15f9.jpg", BackgroundUrl = "https://wallup.net/wp-content/uploads/2016/01/225560-nature-landscape-fall-path-forest-mist-morning-trees-leaves-sunlight.jpg", ProfileUrl = "https://mastodon.uno/web/@valenappi@beta.birdsite.live" } ]; public static MessageUser GetRandomUser() { return Users[Random.Shared.Next(0, Users.Count)]; } public static BoostingUser GetRandomBoostingUser() { var user = Users[Random.Shared.Next(0, Users.Count)]; return new() { UserId = user.UserId, DisplayName = user.DisplayName, UserName = user.UserName, PictureUrl = user.PictureUrl, ProfileUrl = user.ProfileUrl }; } /// /// The seed feed. Two entries share a MessageId on purpose: the second is the first one boosted by someone, which /// is how the feed shows a boost (a copy of the message with BoostingUser set). /// public static List SeedMessages() { var messages = new List(); messages.Add(new() { RootMessageId = default, MessageId = "992167EE-8947-4823-B1E2-B4E1019B6974", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, Content = "test di messaggio normale senza titolo", Medias = [], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { RootMessageId = default, MessageId = "C5307644-4EA8-4B5F-A240-7CFE4DE34741", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = "sopra la panca la capra canta", Content = Markdown.ToHtml("test di messaggio con titolo"), Medias = [], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { RootMessageId = default, MessageId = "E473D562-D210-4453-93DA-157D4B90B0D8", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, Content = "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd test di messaggio con overflow del testo", Medias = [], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { RootMessageId = default, MessageId = "adf89dc6-0484-430e-a7c9-fcb1179b0c28", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, Content = "test video", Medias = [ new() { FileName = "8252d175e714db88beb8ee0349dbac90405d3d5148e96e0cfd7de3b0876dbb1b.mp4", Url = "https://ihatebeinga.live/media/8252d175e714db88beb8ee0349dbac90405d3d5148e96e0cfd7de3b0876dbb1b.mp4", AltText = "https://ihatebeinga.live/media/8252d175e714db88beb8ee0349dbac90405d3d5148e96e0cfd7de3b0876dbb1b.mp4", ContentType = "video/mp4" } ], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { RootMessageId = default, MessageId = "96025b43-5235-44e9-a3fa-98df31edfbfb", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, Content = "test immagine", Medias = [ new() { FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", ContentType = "image/jpg" } ], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { RootMessageId = default, MessageId = "277ca76b-aaad-4aa6-95fb-25f59e2fddf9", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, Content = "test audio", Medias = [ new() { FileName = "09bfb06d0096975f.mp3", Url = "https://cdn.masto.host/mastodonuno/media_attachments/files/107/798/288/501/917/857/original/09bfb06d0096975f.mp3", AltText = "09bfb06d0096975f.mp3", ContentType = "audio/mp3" } ], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { BoostingUser = GetRandomBoostingUser(), RootMessageId = default, MessageId = "de64e520-a7d3-4f31-b5a9-ba236f3b146c", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, Content = "test immagini", Medias = [ new() { FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", ContentType = "image/jpg" }, new() { FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", ContentType = "image/jpg" }, new() { FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", ContentType = "image/jpg" } ], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0,100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); messages.Add(new() { RootMessageId = default, MessageId = "de64e520-a7d3-4f31-b5a9-ba236f3b146c", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = default, Content = "test immagini", Medias = [ new() { FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", ContentType = "image/jpg" }, new() { FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", ContentType = "image/jpg" }, new() { FileName = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", Url = "https://ihatebeinga.live/media/51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", AltText = "51a7cf620f1dd096ac5867d5b78f8c71d57a23972b31c64ec124a8c41e77a618.jpg", ContentType = "image/jpg" } ], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0,100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, }); return messages; } /// The messages before and after an expanded one. public static (List Ancestors, List Descendants) Thread(Message message) => ( [ new() { RootMessageId = default, MessageId = "51C698E3-7C28-4C90-9212-48D5C81DE089", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = message.Title, Content = "

esempio di messaggio precedente a quello espanso

", Medias = [], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, } ], [ new() { RootMessageId = default, MessageId = "0569A1DF-46FC-4485-9F11-F8CDFB794404", User = GetRandomUser(), MessageType = (MessageType)Random.Shared.Next(0, 4), Title = message.Title, Content = "

esempio di messaggio successivo a quello espanso

", Medias = [], CreatedAt = DateTime.UtcNow.AddMinutes(Random.Shared.Next(-5000, 0)), IsFavourite = Random.Shared.Next() % 2 == 0, BoostsCounter = Random.Shared.Next(0, 100), IsBoostedByCurrentUser = Random.Shared.Next() % 2 == 0, } ] ); }