From fea213b2ae8bf82ed2b3eb4667f7e3a396b32f75 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Mon, 24 Mar 2025 12:35:37 +0330 Subject: [PATCH] #467 cat editor --- .../Areas/Admin/Pages/ReviewCatEdits.cshtml | 109 +++++++++++++----- .../Admin/Pages/ReviewCatEdits.cshtml.cs | 9 ++ RMuseum/Utils/GanjoorPoemTools.cs | 23 +++- 3 files changed, 109 insertions(+), 32 deletions(-) diff --git a/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml index 38f919e5..72af7237 100644 --- a/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml +++ b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml @@ -20,44 +20,44 @@ } + + + Html + + + + + + @Html.Raw(Model.Correction.DescriptionHtml) + + + + @if(Model.Links != null) + foreach (var link in Model.Links) + { + + + پیوند داخل متن: + + + + + +

+ @if (link.Length > 20) + { + @Html.Raw(link.Substring(0, 19) + " ...") + } + else + { + @Html.Raw(link) + } + +

+ + + + } + + + + + + + diff --git a/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs index f4d5c495..65f76c2c 100644 --- a/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs +++ b/GanjooRazor/Areas/Admin/Pages/ReviewCatEdits.cshtml.cs @@ -12,6 +12,8 @@ using RMuseum.Models.Ganjoor; using static GanjooRazor.Areas.Admin.Pages.ReviewEditsModel; using System.Text; using System; +using RMuseum.Utils; +using System.Collections.Generic; namespace GanjooRazor.Areas.Admin.Pages { @@ -37,6 +39,11 @@ namespace GanjooRazor.Areas.Admin.Pages /// public int TotalCount { get; set; } + /// + /// links + /// + public List Links { get; set; } + /// /// page /// @@ -83,6 +90,8 @@ namespace GanjooRazor.Areas.Admin.Pages } PageInformation = JObject.Parse(await pageQuery.Content.ReadAsStringAsync()).ToObject(); + Links = GanjoorPoemTools.ExtractLinksWithRegex(Correction.DescriptionHtml); + } } diff --git a/RMuseum/Utils/GanjoorPoemTools.cs b/RMuseum/Utils/GanjoorPoemTools.cs index a1f5bd9b..10e72f07 100644 --- a/RMuseum/Utils/GanjoorPoemTools.cs +++ b/RMuseum/Utils/GanjoorPoemTools.cs @@ -1,4 +1,6 @@ -using System.Text.RegularExpressions; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; using System.Web; namespace RMuseum.Utils @@ -49,5 +51,24 @@ namespace RMuseum.Utils // Decode HTML entities (e.g., & → &) return HttpUtility.HtmlDecode(textWithoutTags); } + + public static List ExtractLinksWithRegex(string html) + { + List links = new List(); + string pattern = @"<(a|img)\b[^>]*?\b(href|src)\s*=\s*[""']?([^""' >]+)[""']?"; + MatchCollection matches = Regex.Matches(html, pattern, RegexOptions.IgnoreCase); + + foreach (Match match in matches) + { + if (match.Groups.Count >= 4) + { + string url = match.Groups[3].Value; + if (!string.IsNullOrEmpty(url)) + links.Add(url); + } + } + + return links.Distinct().ToList(); // Remove duplicates + } } }