diff --git a/ProjectLighthouse.Servers.GameServer/Controllers/NewsController.cs b/ProjectLighthouse.Servers.GameServer/Controllers/NewsController.cs new file mode 100644 index 00000000..bde0ca1a --- /dev/null +++ b/ProjectLighthouse.Servers.GameServer/Controllers/NewsController.cs @@ -0,0 +1,35 @@ +using LBPUnion.ProjectLighthouse.Serialization; +using static LBPUnion.ProjectLighthouse.Types.News.News; +using Microsoft.AspNetCore.Mvc; + +namespace LBPUnion.ProjectLighthouse.Controllers; + +[ApiController] +[Route("LITTLEBIGPLANETPS3_XML/news")] +[Produces("text/xml")] +public class NewsController : ControllerBase +{ + [HttpGet] + public IActionResult Get() + { + string newsEntry = LbpSerializer.StringElement + ( + "item", + new NewsEntry + { + Summary = "test summary", + Image = new NewsImage + { + Hash = "4947269c5f7061b27225611ee58a9a91a8031bbe", + Alignment = "right", + }, + Id = 1, + Title = "Test Title", + Text = "Test Text", + Date = 1348755214000, + }.Serialize() + ); + + return this.Ok(LbpSerializer.StringElement("news", newsEntry)); + } +} \ No newline at end of file diff --git a/ProjectLighthouse/Types/News.cs b/ProjectLighthouse/Types/News.cs new file mode 100644 index 00000000..bef3b0d5 --- /dev/null +++ b/ProjectLighthouse/Types/News.cs @@ -0,0 +1,35 @@ +using LBPUnion.ProjectLighthouse.Serialization; + +namespace LBPUnion.ProjectLighthouse.Types.News; + +/// +/// Used on the info moon on LBP1. Broken for unknown reasons +/// +public static class News { + public class NewsEntry + { + public int Id { get; set; } + public string Title { get; set; } + public string Summary { get; set; } + public string Text { get; set; } + public NewsImage Image { get; set; } + public long Date { get; set; } + + public string Serialize() + => LbpSerializer.StringElement("id", this.Id) + + LbpSerializer.StringElement("title", this.Title) + + LbpSerializer.StringElement("summary", this.Summary) + + LbpSerializer.StringElement("text", this.Text) + + LbpSerializer.StringElement("date", this.Date) + + this.Image.Serialize(); + } + + public class NewsImage + { + public string Hash { get; set; } + public string Alignment { get; set; } + + public string Serialize() + => LbpSerializer.StringElement("image", LbpSerializer.StringElement("hash", this.Hash) + LbpSerializer.StringElement("alignment", this.Alignment)); + } +} \ No newline at end of file