Ver Fonte

评论区优化

懒得勤快 há 5 anos atrás
pai
commit
0e5e0a7797

+ 3 - 15
src/Masuit.MyBlogs.Core/Controllers/UploadController.cs

@@ -159,11 +159,7 @@ namespace Masuit.MyBlogs.Core.Controllers
                     var imgFile = $"{SnowFlake.NewId}.{ext}";
                     var path = Path.Combine(HostEnvironment.WebRootPath, CommonHelper.SystemSettings.GetOrAdd("UploadPath", "upload").Trim('/', '\\'), "images", imgFile);
                     var dir = Path.GetDirectoryName(path);
-                    if (!Directory.Exists(dir))
-                    {
-                        Directory.CreateDirectory(dir);
-                    }
-
+                    Directory.CreateDirectory(dir);
                     await using var fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                     await image.CopyToAsync(fs);
                     img.Attributes["src"].Value = path.Substring(HostEnvironment.WebRootPath.Length).Replace("\\", "/");
@@ -176,11 +172,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         private static async Task SaveFile(IFormFile file, string path)
         {
             var dir = Path.GetDirectoryName(path);
-            if (!Directory.Exists(dir))
-            {
-                Directory.CreateDirectory(dir);
-            }
-
+            Directory.CreateDirectory(dir);
             await using var fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
             await file.CopyToAsync(fs);
         }
@@ -297,11 +289,7 @@ namespace Masuit.MyBlogs.Core.Controllers
 
                         path = Path.Combine(HostEnvironment.WebRootPath, CommonHelper.SystemSettings.GetOrAdd("UploadPath", "upload").Trim('/', '\\'), "images", filename);
                         var dir = Path.GetDirectoryName(path);
-                        if (!Directory.Exists(dir))
-                        {
-                            Directory.CreateDirectory(dir);
-                        }
-
+                        Directory.CreateDirectory(dir);
                         await using var fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                         await file.CopyToAsync(fs);
                         break;

+ 5 - 13
src/Masuit.MyBlogs.Core/Extensions/UEditor/CrawlerHandler.cs

@@ -90,12 +90,12 @@ namespace Masuit.MyBlogs.Core.Extensions.UEditor
 
                 ServerUrl = PathFormatter.Format(Path.GetFileName(SourceUrl), CommonHelper.SystemSettings.GetOrAdd("UploadPath", "upload").Trim('/', '\\') + UeditorConfig.GetString("catcherPathFormat"));
                 var mediaType = response.Content.Headers.ContentType.MediaType;
-                var stream = await response.Content.ReadAsStreamAsync();
+                await using var stream = await response.Content.ReadAsStreamAsync();
                 var savePath = Path.Combine(AppContext.BaseDirectory + "wwwroot", ServerUrl);
                 if (string.IsNullOrEmpty(Path.GetExtension(savePath)))
                 {
-                    savePath = savePath + MimeMapper.ExtTypes[mediaType];
-                    ServerUrl = ServerUrl + MimeMapper.ExtTypes[mediaType];
+                    savePath += MimeMapper.ExtTypes[mediaType];
+                    ServerUrl += MimeMapper.ExtTypes[mediaType];
                 }
 
                 var (url, success) = await Startup.ServiceProvider.GetRequiredService<ImagebedClient>().UploadImage(stream, savePath);
@@ -105,17 +105,9 @@ namespace Masuit.MyBlogs.Core.Extensions.UEditor
                 }
                 else
                 {
-                    if (!Directory.Exists(Path.GetDirectoryName(savePath)))
-                    {
-                        Directory.CreateDirectory(Path.GetDirectoryName(savePath));
-                    }
-
-                    var ms = new MemoryStream();
-                    await stream.CopyToAsync(ms);
-                    await File.WriteAllBytesAsync(savePath, ms.GetBuffer());
+                    Directory.CreateDirectory(Path.GetDirectoryName(savePath));
+                    await File.WriteAllBytesAsync(savePath, stream.ToArray());
                 }
-                stream.Close();
-                await stream.DisposeAsync();
                 State = "SUCCESS";
             }
             catch (Exception e)

+ 1 - 4
src/Masuit.MyBlogs.Core/Extensions/UEditor/UploadHandler.cs

@@ -58,10 +58,7 @@ namespace Masuit.MyBlogs.Core.Extensions.UEditor
                     }
                     else
                     {
-                        if (!Directory.Exists(Path.GetDirectoryName(localPath)))
-                        {
-                            Directory.CreateDirectory(Path.GetDirectoryName(localPath));
-                        }
+                        Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                         File.WriteAllBytes(localPath, stream.ToArray());
                         Result.Url = savePath;
                     }

+ 4 - 4
src/Masuit.MyBlogs.Core/Views/Msg/Index_Admin.cshtml

@@ -108,8 +108,8 @@
                 html += `<li class="msg-list media animated fadeInRight" id='${rows[i].Id}'>
                             <div class="media-body">
                                 <article class="panel panel-info">
-                                    <header class="panel-heading">${startfloor}# ${rows[i].IsMaster ? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows[i].IsMaster ? `(管理员)` : ""}
-                                        <span class="pull-right" style="font-size: 10px;">${rows[i].Status == 4 ? `<a class="label label-success" onclick="pass(${rows[i].Id})">通过</a> |` : ""} <a class="label label-danger" onclick="del(${rows[i].Id})">删除</a> | ${rows[i].PostDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span></span>
+                                    <header class="panel-heading">${startfloor}# ${rows[i].IsMaster ? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows[i].IsMaster ? `(管理员)` : ""} | ${rows[i].PostDate}
+                                        <span class="pull-right" style="font-size: 10px;">${rows[i].Status == 4 ? `<a class="label label-success" onclick="pass(${rows[i].Id})">通过</a> |` : ""} <a class="label label-danger" onclick="del(${rows[i].Id})">删除</a><span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span></span>
                                     </header>
                                     <div class="panel-body">
                                         ${rows[i].Content} <a class="label label-info" href="?uid=${rows[i].Id}"><i class="icon-comment"></i></a>
@@ -143,8 +143,8 @@
             var color = colors[depth % 5];
             html += `<article id="${item.Id}" class="panel panel-${color}">
                         <div class="panel-heading">
-                            ${depth}-${floor++}# ${item.IsMaster ?`<i class="icon icon-user"></i>`:""}${item.NickName}${item.IsMaster ?`(管理员)`:""}
-                            <span class="pull-right" style="font-size: 10px;">${item.Status == 4 ? `<a class="label label-success" onclick="pass(${item.Id})">通过</a> |`:""} <a class="label label-danger" onclick="del(${item.Id})">删除</a> | ${item.PostDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}</span></span>
+                            ${depth}-${floor++}# ${item.IsMaster ? `<i class="icon icon-user"></i>` : ""}${item.NickName}${item.IsMaster ? `(管理员)` : ""} | ${item.PostDate}
+                            <span class="pull-right hidden-sm hidden-xs" style="font-size: 10px;">${item.Status == 4 ? `<a class="label label-success" onclick="pass(${item.Id})">通过</a> |`:""} <a class="label label-danger" onclick="del(${item.Id})">删除</a> | ${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}</span>
                         </div>
                         <div class="panel-body">
                             ${item.Content}

+ 4 - 4
src/Masuit.MyBlogs.Core/Views/Post/Details_Admin.cshtml

@@ -432,8 +432,8 @@
 				html += `<li class="msg-list media animated fadeInRight" id='${rows[i].Id}'>
                             <div class="media-body">
                                 <article class="panel panel-info">
-                                    <header class="panel-heading">${startfloor}# ${rows[i].IsMaster ? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows[i].IsMaster ? `(管理员)` : ""}
-                                        <span class="pull-right" style="font-size: 10px;">${rows[i].Status == 4 ? `<a class="label label-success" onclick="pass(${rows[i].Id})">通过</a> |` : ""} <a class="label label-danger" onclick="del(${rows[i].Id})">删除</a> | ${rows[i].CommentDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span></span>
+                                    <header class="panel-heading">${startfloor}# ${rows[i].IsMaster ? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows[i].IsMaster ? `(管理员)` : ""} | ${rows[i].CommentDate}
+                                        <span class="pull-right" style="font-size: 10px;">${rows[i].Status == 4 ? `<a class="label label-success" onclick="pass(${rows[i].Id})">通过</a> |` : ""} <a class="label label-danger" onclick="del(${rows[i].Id})">删除</a> | ${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span>
                                     </header>
                                     <div class="panel-body">
                                         ${rows[i].Content}
@@ -468,8 +468,8 @@
 			var color = colors[depth%5];
 			html += `<article id="${item.Id}" class="panel panel-${color}">
                             <div class="panel-heading">
-                                ${depth}-${floor++}# ${item.IsMaster ?`<i class="icon icon-user"></i>`:""}${item.NickName}${item.IsMaster ?`(管理员)`:""}
-                                <span class="pull-right" style="font-size: 10px;">${item.Status == 4 ? `<a class="label label-success" onclick="pass(${item.Id})">通过</a> |`:""} <a class="label label-danger" onclick="del(${item.Id})">删除</a> | ${item.CommentDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}</span></span>
+                                ${depth}-${floor++}# ${item.IsMaster ? `<i class="icon icon-user"></i>` : ""}${item.NickName}${item.IsMaster ? `(管理员)` : ""} | ${item.CommentDate}
+                                <span class="pull-right" style="font-size: 10px;">${item.Status == 4 ? `<a class="label label-success" onclick="pass(${item.Id})">通过</a> |`:""} <a class="label label-danger" onclick="del(${item.Id})">删除</a> | ${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}</span>
                             </div>
                             <div class="panel-body">
                                 ${item.Content}

+ 4 - 4
src/Masuit.MyBlogs.Core/wwwroot/Scripts/global/article.js

@@ -369,8 +369,8 @@ function loadParentComments(data) {
             html += `<li class="msg-list media animated fadeInRight" id='${rows[i].Id}'>
                         <div class="media-body">
                             <article class="panel panel-info">
-                                <header class="panel-heading">${startfloor}# ${rows[i].IsMaster ? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows[i].IsMaster ? `(管理员)` : ""}
-                                    <span class="pull-right" style="font-size: 10px;">${rows[i].CommentDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span></span>
+                                <header class="panel-heading">${startfloor}# ${rows[i].IsMaster ? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows[i].IsMaster ? `(管理员)` : ""} | ${rows[i].CommentDate}
+                                    <span class="pull-right hidden-sm hidden-xs" style="font-size: 10px;">${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span>
                                 </header>
                                 <div class="panel-body">
                                     ${rows[i].Content} 
@@ -397,8 +397,8 @@ function loadComments(data, comments, root, depth = 0) {
 	    var color = colors[depth%5];
 		html += `<article id="${item.Id}" class="panel panel-${color}">
                         <div class="panel-heading">
-                            ${depth}-${floor++}# ${item.IsMaster ?`<i class="icon icon-user"></i>`:""}${item.NickName}${item.IsMaster ?`(管理员)`:""}
-                            <span class="pull-right" style="font-size: 10px;">${item.CommentDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}</span></span>
+                            ${depth}-${floor++}# ${item.IsMaster ?`<i class="icon icon-user"></i>`:""}${item.NickName}${item.IsMaster ?`(管理员)`:""} | ${item.CommentDate}
+                            <span class="pull-right hidden-sm hidden-xs" style="font-size: 10px;">${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}</span>
                         </div>
                         <div class="panel-body">
                             ${item.Content} 

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
src/Masuit.MyBlogs.Core/wwwroot/Scripts/global/article.min.js


+ 3 - 3
src/Masuit.MyBlogs.Core/wwwroot/Scripts/global/leavemsg.js

@@ -210,8 +210,8 @@ function loadParentMsgs(data) {
 			html += `<li class="msg-list media animated fadeInRight" id='${rows[i].Id}'>
 						   <div class="media-body">
 								<article class="panel panel-info">
-									<header class="panel-heading">${startfloor}# ${rows[i].IsMaster? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows  [i].IsMaster ? `(管理员)` : ""}
-										<span class="pull-right" style="font-size: 10px;">${rows[i].PostDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span></span>
+									<header class="panel-heading">${startfloor}# ${rows[i].IsMaster? `<i class="icon icon-user"></i>` : ""}${rows[i].NickName}${rows  [i].IsMaster ? `(管理员)` : ""} | ${rows[i].PostDate}
+										<span class="pull-right hidden-sm hidden-xs" style="font-size: 10px;">${GetOperatingSystem(rows[i].OperatingSystem) + " | " + GetBrowser(rows[i].Browser)}</span>
 									</header>
 									<div class="panel-body">
 										${rows[i].Content}
@@ -237,7 +237,7 @@ function loadMsgs(data, msg, root, depth = 0) {
 		var color = colors[depth % 5];
 		html += `<article id="${item.Id}" class="panel panel-${color}">
 						<div class="panel-heading">
-							${depth}-${floor++}# ${item.IsMaster ? `<i class="icon icon-user"></i>` : ""}${item.NickName}${item.IsMaster ? `(管理员)` : ""}<span class="pull-right" style="font-size: 10px;">${item.PostDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}</span>
+							${depth}-${floor++}# ${item.IsMaster ? `<i class="icon icon-user"></i>` : ""}${item.NickName}${item.IsMaster ? `(管理员)` : ""} | ${item.PostDate}<span class="pull-right hidden-sm hidden-xs" style="font-size: 10px;">${GetOperatingSystem(item.OperatingSystem) + " | " + GetBrowser(item.Browser)}
 							</span>
 						</div>
 						<div class="panel-body">

+ 3 - 3
src/Masuit.MyBlogs.Core/wwwroot/Scripts/global/leavemsg.min.js

@@ -1,8 +1,8 @@
 function submitComment(n){loading();localStorage.setItem("user",JSON.stringify($(n).serializeObject()));window.post("/Msg/submit",$(n).serializeObject(),n=>{loadingDone(),n&&n.Success?(window.notie.alert({type:1,text:n.Message,time:4}),setTimeout(function(){getmsgs();$("[id^=LAY_layedit]").contents().find("body").html("")},100)):window.notie.alert({type:3,text:n.Message,time:4})})}function bindReplyBtn(){$(".msg-list article .panel-body a").on("click",function(n){var t,i,r;n.preventDefault();loadingDone();t=JSON.parse(localStorage.getItem("user"));t&&($("[name='NickName']").val(t.NickName),$("[name='Email']").val(t.Email),$("[name='QQorWechat']").val(t.QQorWechat));i=$(this).attr("href");r=i.substring(i.indexOf("uid")+4);$("#uid").val(r);$("#OperatingSystem2").val(DeviceInfo.OS.toString());$("#Browser2").val(DeviceInfo.browserInfo.Name+" "+DeviceInfo.browserInfo.Version);layui.use("layer",function(){var n=layui.layer;n.open({type:1,zIndex:20,title:"回复留言",area:(window.screen.width>540?540:window.screen.width)+"px",content:$("#reply"),end:function(){$("#reply").css("display","none")}})});$(".layui-layer").insertBefore($(".layui-layer-shade"));window.currentEditor=layui.layedit.build("layedit2",{tool:["strong","italic","link","unlink","face"],height:100})})}function loadParentMsgs(n){var r,u;if(loading(),r="",n){var t=Enumerable.From(n.rows).Where(n=>n.ParentId===0).ToArray(),i=n.page,f=n.size,e=Math.ceil(n.total/f);i=i>e?e:i;i=i<1?1:i;u=n.parentTotal-(i-1)*f;for(let i=0;i<t.length;i++)r+=`<li class="msg-list media animated fadeInRight" id='${t[i].Id}'>
 						   <div class="media-body">
 								<article class="panel panel-info">
-									<header class="panel-heading">${u}# ${t[i].IsMaster?`<i class="icon icon-user"></i>`:""}${t[i].NickName}${t[i].IsMaster?`(管理员)`:""}
-										<span class="pull-right" style="font-size: 10px;">${t[i].PostDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(t[i].OperatingSystem)+" | "+GetBrowser(t[i].Browser)}</span></span>
+									<header class="panel-heading">${u}# ${t[i].IsMaster?`<i class="icon icon-user"></i>`:""}${t[i].NickName}${t[i].IsMaster?`(管理员)`:""} | ${t[i].PostDate}
+										<span class="pull-right hidden-sm hidden-xs" style="font-size: 10px;">${GetOperatingSystem(t[i].OperatingSystem)+" | "+GetBrowser(t[i].Browser)}</span>
 									</header>
 									<div class="panel-body">
 										${t[i].Content}
@@ -13,7 +13,7 @@ function submitComment(n){loading();localStorage.setItem("user",JSON.stringify($
 							</div>
 						</li>`}return loadingDone(),r}function loadMsgs(n,t,i,r=0){var f=["info","success","primary","warning","danger"],e=1,u;return r++,u="",Enumerable.From(t).ForEach(t=>{var o=f[r%5];u+=`<article id="${t.Id}" class="panel panel-${o}">
 						<div class="panel-heading">
-							${r}-${e++}# ${t.IsMaster?`<i class="icon icon-user"></i>`:""}${t.NickName}${t.IsMaster?`(管理员)`:""}<span class="pull-right" style="font-size: 10px;">${t.PostDate}<span class="hidden-sm hidden-xs"> | ${GetOperatingSystem(t.OperatingSystem)+" | "+GetBrowser(t.Browser)}</span>
+							${r}-${e++}# ${t.IsMaster?`<i class="icon icon-user"></i>`:""}${t.NickName}${t.IsMaster?`(管理员)`:""} | ${t.PostDate}<span class="pull-right hidden-sm hidden-xs" style="font-size: 10px;">${GetOperatingSystem(t.OperatingSystem)+" | "+GetBrowser(t.Browser)}
 							</span>
 						</div>
 						<div class="panel-body">

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff