Browse Source

路由调整

懒得勤快 4 years ago
parent
commit
d25dbf6ffc

+ 2 - 2
src/Masuit.MyBlogs.Core/Common/ImagebedClient.cs

@@ -54,7 +54,7 @@ namespace Masuit.MyBlogs.Core.Common
             }
 
             file = Path.GetFileName(file);
-            var gitlabs = AppConfig.GitlabConfigs.Where(c => c.FileLimitSize >= stream.Length && !_failedList.Contains(c.ApiUrl)).OrderBy(c => Guid.NewGuid()).ToList();
+            var gitlabs = AppConfig.GitlabConfigs.Where(c => c.FileLimitSize >= stream.Length && !_failedList.Contains(c.ApiUrl)).OrderByRandom().ToList();
             if (gitlabs.Count > 0)
             {
                 var gitlab = gitlabs[0];
@@ -135,7 +135,7 @@ namespace Masuit.MyBlogs.Core.Common
                     using var content = resp.Content;
                     if (resp.IsSuccessStatusCode)
                     {
-                        return (config.RawUrl.Split(',').OrderBy(_ => Guid.NewGuid()).FirstOrDefault() + path, true);
+                        return (config.RawUrl.Split(',').OrderByRandom().FirstOrDefault() + path, true);
                     }
                 }
 

+ 1 - 1
src/Masuit.MyBlogs.Core/Controllers/HomeController.cs

@@ -55,7 +55,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         [HttpGet, ResponseCache(Duration = 600, VaryByHeader = "Cookie", Location = ResponseCacheLocation.Any)]
         public async Task<ActionResult> Index([FromServices] IFastShareService fastShareService)
         {
-            var banners = AdsService.GetsByWeightedPrice(8, AdvertiseType.Banner, Request.Location()).OrderBy(a => Guid.NewGuid()).ToList();
+            var banners = AdsService.GetsByWeightedPrice(8, AdvertiseType.Banner, Request.Location()).OrderByRandom().ToList();
             var fastShares = await fastShareService.GetAllFromCacheAsync(s => s.Sort);
             var postsQuery = PostService.GetQuery(p => p.Status == Status.Published); //准备文章的查询
             var posts = await postsQuery.Where(p => !p.IsFixedTop).OrderBy(OrderBy.ModifyDate.GetDisplay() + " desc").ToCachedPagedListAsync<Post, PostDto>(1, 15, MapperConfig);

+ 2 - 2
src/Masuit.MyBlogs.Core/Controllers/SearchController.cs

@@ -37,7 +37,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// <param name="page"></param>
         /// <param name="size"></param>
         /// <returns></returns>
-        [Route("search/{**wd}"), Route("search", Order = 1), Route("s/{**wd}", Order = 2), Route("s", Order = 3)]
+        [HttpGet("search/{**wd}", Order = 2), HttpGet("search", Order = 2), HttpGet("s/{**wd}", Order = 3), HttpGet("s", Order = 4)]
         public async Task<ActionResult> Search([FromServices] IPostService postService, string wd = "", [Range(1, int.MaxValue, ErrorMessage = "页码必须大于0")] int page = 1, [Range(1, 50, ErrorMessage = "页大小必须在0到50之间")] int size = 15)
         {
             wd = ChineseConverter.Convert(wd?.Trim() ?? "", ChineseConversionDirection.TraditionalToSimplified);
@@ -149,7 +149,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// 热词
         /// </summary>
         /// <returns></returns>
-        [MyAuthorize, HttpPost, ResponseCache(Duration = 600, VaryByHeader = "Cookie")]
+        [MyAuthorize, ResponseCache(Duration = 600, VaryByHeader = "Cookie")]
         public ActionResult HotKey()
         {
             return ResultData(new

+ 17 - 20
src/Masuit.MyBlogs.Core/Controllers/UploadController.cs

@@ -16,6 +16,7 @@ using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
 using OpenXmlPowerTools;
 using System;
+using System.ComponentModel.DataAnnotations;
 using System.IO;
 using System.Linq;
 using System.Text;
@@ -138,24 +139,21 @@ namespace Masuit.MyBlogs.Core.Controllers
             var doc = context.OpenAsync(req => req.Content(html)).Result;
             var body = doc.Body;
             var nodes = body.GetElementsByTagName("img");
-            if (nodes != null)
+            foreach (var img in nodes)
             {
-                foreach (var img in nodes)
-                {
-                    var attr = img.Attributes["src"].Value;
-                    var strs = attr.Split(",");
-                    var base64 = strs[1];
-                    var bytes = Convert.FromBase64String(base64);
-                    var ext = strs[0].Split(";")[0].Split("/")[1];
-                    await using var image = new MemoryStream(bytes);
-                    var imgFile = $"{SnowFlake.NewId}.{ext}";
-                    var path = Path.Combine(HostEnvironment.WebRootPath, CommonHelper.SystemSettings.GetOrAdd("UploadPath", "upload").Trim('/', '\\'), "images", imgFile);
-                    var dir = Path.GetDirectoryName(path);
-                    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("\\", "/");
-                }
+                var attr = img.Attributes["src"].Value;
+                var strs = attr.Split(",");
+                var base64 = strs[1];
+                var bytes = Convert.FromBase64String(base64);
+                var ext = strs[0].Split(";")[0].Split("/")[1];
+                await using var image = new MemoryStream(bytes);
+                var imgFile = $"{SnowFlake.NewId}.{ext}";
+                var path = Path.Combine(HostEnvironment.WebRootPath, CommonHelper.SystemSettings.GetOrAdd("UploadPath", "upload").Trim('/', '\\'), "images", imgFile);
+                var dir = Path.GetDirectoryName(path);
+                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("\\", "/");
             }
 
             return body.InnerHtml.HtmlSantinizerStandard().HtmlSantinizerCustom(attributes: new[] { "dir", "lang" });
@@ -176,9 +174,8 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// </summary>
         /// <param name="path"></param>
         /// <returns></returns>
-        [Route("download")]
-        [Route("download/{**path}")]
-        public ActionResult Download([FromServices] IMimeMapper mimeMapper, string path)
+        [HttpGet("download/{**path}")]
+        public ActionResult Download([FromServices] IMimeMapper mimeMapper, [Required] string path)
         {
             if (string.IsNullOrEmpty(path)) return Content("null");
             var file = Path.Combine(HostEnvironment.WebRootPath, CommonHelper.SystemSettings.GetOrAdd("UploadPath", "upload").Trim('/', '\\'), path.Trim('.', '/', '\\'));

+ 2 - 1
src/Masuit.MyBlogs.Core/Infrastructure/Drive/DriveService.cs

@@ -1,5 +1,6 @@
 using Masuit.MyBlogs.Core.Extensions.DriveHelpers;
 using Masuit.MyBlogs.Core.Models.Drive;
+using Masuit.Tools;
 using Microsoft.Graph;
 using System;
 using System.Collections.Generic;
@@ -166,7 +167,7 @@ namespace Masuit.MyBlogs.Core.Infrastructure.Drive
         {
             if (OneDriveConfiguration.CDNUrls.Length != 0)
             {
-                return OneDriveConfiguration.CDNUrls.Select(item => item.Split(";")).Where(strings => strings.Length > 1).Aggregate(downloadUrl, (current, strings) => current.Replace(strings[0], strings[1..].OrderBy(_ => Guid.NewGuid()).First()));
+                return OneDriveConfiguration.CDNUrls.Select(item => item.Split(";")).Where(strings => strings.Length > 1).Aggregate(downloadUrl, (current, strings) => current.Replace(strings[0], strings[1..].OrderByRandom().First()));
             }
 
             return downloadUrl;

+ 1 - 1
src/Masuit.MyBlogs.Core/Startup.cs

@@ -121,7 +121,7 @@ namespace Masuit.MyBlogs.Core
 
                 return new HttpClientHandler();
             }); //注入HttpClient
-            services.AddHttpClient<ImagebedClient>().AddTransientHttpErrorPolicy(builder => builder.Or<TaskCanceledException>().Or<OperationCanceledException>().Or<TimeoutException>().OrResult(res => !res.IsSuccessStatusCode).RetryAsync(5)); //注入HttpClient
+            services.AddHttpClient<ImagebedClient>().AddTransientHttpErrorPolicy(builder => builder.Or<TaskCanceledException>().Or<OperationCanceledException>().Or<TimeoutException>().OrResult(res => !res.IsSuccessStatusCode).RetryAsync(3)); //注入HttpClient
             services.AddMailSender(Configuration).AddFirewallReporter(Configuration);
             services.AddBundling().UseDefaults(_env).UseNUglify().EnableMinification().EnableChangeDetection().EnableCacheHeader(TimeSpan.FromHours(1));
             services.SetupMiniProfile();

+ 1 - 1
src/Masuit.MyBlogs.Core/Views/Tools/Address.cshtml

@@ -24,7 +24,7 @@
             </p>
         </li>
     </ul>
-    <form method="get">
+    <form method="get" asp-action="Address">
         <div class="input-group">
             <input class="form-control" name="addr" value="@ViewBag.Address" placeholder="请输入有效地理位置" />
             <span class="input-group-btn">

+ 1 - 1
src/Masuit.MyBlogs.Core/Views/Tools/GetIPInfo.cshtml

@@ -23,7 +23,7 @@
             </p>
         </li>
     </ul>
-    <form method="get">
+    <form method="get" asp-action="GetIpInfo">
         <div class="input-group">
             <input class="form-control" name="ip" value="@ViewBag.IP" placeholder="请输入有效的IPv4地址" />
             <span class="input-group-btn">

+ 1 - 1
src/Masuit.MyBlogs.Core/Views/Tools/Position.cshtml

@@ -27,7 +27,7 @@
     </ul>
     @if (Model != null && Model.Status == 0)
     {
-        <form method="get">
+        <form method="get" asp-action="Position">
             <div class="row">
                 <div class="col-md-5">
                     <div class="input-group">

+ 1 - 1
src/Masuit.MyBlogs.Core/wwwroot/ng-views/controllers/analysis.js

@@ -4,7 +4,7 @@
 		$scope.query = "";
 		$scope.currentPage = 1;
 		var _timeout;
-		$http.post("/search/HotKey").then(function(res) {
+		$http.get("/search/HotKey").then(function(res) {
 			if(res.data.Success) {
 				$scope.agg = res.data.Data;
 			} else {