Radicade Public Code

This commit is contained in:
JogmansonReal
2026-10-16 23:33:13 -07:00
commit 55175acdf6
832 changed files with 363261 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using RadicadeServer.DB;
using RadicadeServer.Extensions;
using RadicadeServer.RecNet.Board;
namespace RadicadeServer.API.Board.V2
{
[Route("api/communityboard/v2")]
public class CommunityBoardV2 : Controller
{
private readonly RecDBContext db;
public CommunityBoardV2(RecDBContext context)
{
db = context;
}
[HttpGet("current")]
public async Task<ActionResult<CommunityBoard>> GetCurrentCommunityBoard()
{
var config = await db.ServerConfig.FirstOrDefaultAsync(x => x.Key == "CommunityBoard");
var board = config?.Value?.FromJson<CommunityBoard>() ?? CreateDefaultBoard();
NormalizeBoard(board);
return Ok(board);
}
private static CommunityBoard CreateDefaultBoard()
{
return new CommunityBoard
{
FeaturedPlayer = new FeaturedPlayer
{
Id = 0,
TitleOverride = string.Empty,
UrlOverride = string.Empty
},
FeaturedRoomGroup = new FeaturedRoomGroup
{
FeaturedRoomGroupId = 0,
Name = string.Empty,
Rooms = new List<FeaturedRoom>()
},
CurrentAnnouncement = new BoardAnnouncement
{
Message = string.Empty,
MoreInfoUrl = string.Empty
},
InstagramImages = new List<InstagramImage>(),
Videos = new List<BoardVideo>()
};
}
private static void NormalizeBoard(CommunityBoard board)
{
board.FeaturedPlayer ??= new FeaturedPlayer
{
Id = 0,
TitleOverride = string.Empty,
UrlOverride = string.Empty
};
board.FeaturedRoomGroup ??= new FeaturedRoomGroup
{
FeaturedRoomGroupId = 0,
Name = string.Empty,
Rooms = new List<FeaturedRoom>()
};
board.FeaturedRoomGroup.Rooms ??= new List<FeaturedRoom>();
board.CurrentAnnouncement ??= new BoardAnnouncement
{
Message = string.Empty,
MoreInfoUrl = string.Empty
};
board.InstagramImages ??= new List<InstagramImage>();
board.Videos ??= new List<BoardVideo>();
foreach (var video in board.Videos)
{
if (string.IsNullOrWhiteSpace(video.SourceUrl) && !string.IsNullOrWhiteSpace(video.BlobName))
video.SourceUrl = $"{DBConfig.ServerUrl}/cdn/video/{video.BlobName.TrimStart('/')}";
}
var playable = board.Videos
.Where(video => !string.IsNullOrWhiteSpace(video.SourceUrl) || !string.IsNullOrWhiteSpace(video.BlobName))
.ToList();
board.Videos = playable;
}
}
}