90 lines
2.5 KiB
Text
90 lines
2.5 KiB
Text
|
@using System.Text.RegularExpressions
|
||
|
@using ImageBoardServerApp.Data.Repository
|
||
|
@using System.ComponentModel.DataAnnotations
|
||
|
<span class="name">@comment.Username</span>
|
||
|
@if (@role != "User")
|
||
|
{
|
||
|
<span class="@role" >##@role </span>
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
<span> </span>
|
||
|
}
|
||
|
<span class="date">@getTimeFromUnix(comment.CreatedAt)</span>
|
||
|
<span class="post-id">No.@comment.GET</span>
|
||
|
<div class="threadContent">
|
||
|
<div class="threadImage">
|
||
|
@if (image != null)
|
||
|
{
|
||
|
<img src="@($"{image.ImageLocation}?size=258x258")" alt="No Image found" />
|
||
|
}
|
||
|
</div>
|
||
|
<div class="threadTextContainer">
|
||
|
@foreach (string s in @comment.Content.Split("\n"))
|
||
|
{
|
||
|
var className = "";
|
||
|
@if (s.StartsWith(">") && !Regex.IsMatch(s, "^>{2,}"))
|
||
|
{
|
||
|
className = "greenText";
|
||
|
}
|
||
|
|
||
|
<span class='threadText @className'>
|
||
|
@foreach (string line in s.Split(" "))
|
||
|
{
|
||
|
var className2 = "";
|
||
|
@if (@Regex.IsMatch(line, ">>\\d+"))
|
||
|
{
|
||
|
className2 = "redText";
|
||
|
<a href="/@comment.Board/@comment.PostID/@Regex.Match(s, ">>(\\d+)").Value.Substring(2)" class="threadMsg @className2">
|
||
|
@line
|
||
|
</a>
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
<span class="threadMsg">
|
||
|
@line
|
||
|
</span>
|
||
|
}
|
||
|
<span> </span>
|
||
|
|
||
|
}
|
||
|
</span>
|
||
|
}
|
||
|
</div>
|
||
|
</div>
|
||
|
@code {
|
||
|
private ImageData image;
|
||
|
private string role;
|
||
|
|
||
|
private static DateTime getTimeFromUnix(double javaTimeStamp)
|
||
|
{
|
||
|
var dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
|
||
|
dateTime = dateTime.AddMilliseconds( javaTimeStamp ).ToLocalTime();
|
||
|
return dateTime;
|
||
|
}
|
||
|
|
||
|
protected override async Task OnInitializedAsync()
|
||
|
{
|
||
|
await base.OnInitializedAsync();
|
||
|
int i;
|
||
|
try
|
||
|
{
|
||
|
i = (int)comment.ImageID;
|
||
|
}
|
||
|
catch (InvalidOperationException ioe)
|
||
|
{
|
||
|
i = -1;
|
||
|
}
|
||
|
if (i != null)
|
||
|
{
|
||
|
image = await ImagesRepository.getImageByIdAsync(i);
|
||
|
}
|
||
|
|
||
|
var cmt = await CommentsRepository.getCommentByIdAsync(comment.CommentID);
|
||
|
role = cmt.User.Role;
|
||
|
}
|
||
|
|
||
|
[Parameter]
|
||
|
[Required]
|
||
|
public CommentData comment { get; set; }
|
||
|
}
|