Browse Source

只有一条搜索结果并且内容和搜索词全匹配的时候再直接跳转

懒得勤快 2 years ago
parent
commit
e881b76d9b

+ 5 - 5
src/Masuit.MyBlogs.Core/Controllers/BaseController.cs

@@ -114,11 +114,11 @@ public class BaseController : Controller
         ViewBag.Desc = CommonHelper.SystemSettings["Description"];
         var user = filterContext.HttpContext.Session.Get<UserInfoDto>(SessionKey.UserInfo);
 #if DEBUG
-		if (HttpContext.Connection.RemoteIpAddress.IsPrivateIP())
-		{
-			user = Mapper.Map<UserInfoDto>(UserInfoService.GetByUsername("masuit"));
-			filterContext.HttpContext.Session.Set(SessionKey.UserInfo, user);
-		}
+        if (HttpContext.Connection.RemoteIpAddress.IsPrivateIP())
+        {
+            user = Mapper.Map<UserInfoDto>(UserInfoService.GetByUsername("masuit"));
+            filterContext.HttpContext.Session.Set(SessionKey.UserInfo, user);
+        }
 #endif
         if (CommonHelper.SystemSettings.GetOrAdd("CloseSite", "false") == "true" && user?.IsAdmin != true)
         {

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

@@ -263,7 +263,7 @@ public sealed class FileController : AdminController
 	public ActionResult Handle(string path, string[] items, string toFilename)
 	{
 		path = path?.TrimStart('\\', '/') ?? "";
-		var token = Guid.NewGuid().ToString().MDString(Guid.NewGuid().ToString()).FromBinaryBig(16).ToBinary(62);
+		var token = Guid.NewGuid().ToString().MDString(Guid.NewGuid().ToString()).FromBaseBig(16).ToBase(62);
 		RedisClient.Set("FileManager:Token:" + token, "1");
 		RedisClient.Expire("FileManager:Token:" + token, TimeSpan.FromDays(1));
 		return RedirectToAction("Download", "File", new { path, items, toFilename, token });
@@ -299,4 +299,4 @@ public sealed class FileController : AdminController
 
 		throw new NotFoundException("文件未找到");
 	}
-}
+}

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

@@ -66,7 +66,7 @@ public sealed class SearchController : BaseController
 				HttpContext.Session.Set("search:" + wd, wd);
 			}
 
-			if (page == 1 && posts.Results.Count == 1)
+			if (page == 1 && posts.Results.Count == 1 && (posts.Results[0].Title.Contains(wd) || posts.Results[0].Content.Contains(wd)))
 			{
 				return RedirectToAction("Details", "Post", new { id = posts.Results[0].Id, kw = wd });
 			}
@@ -119,4 +119,4 @@ public sealed class SearchController : BaseController
 		bool b = await SearchDetailsService.DeleteByIdAsync(id) > 0;
 		return ResultData(null, b, b ? "删除成功!" : "删除失败!");
 	}
-}
+}

+ 3 - 2
src/Masuit.MyBlogs.Core/Controllers/ShortController.cs

@@ -8,11 +8,12 @@ namespace Masuit.MyBlogs.Core.Controllers;
 public sealed class ShortController : Controller
 {
 	public IRedisClient RedisHelper { get; set; }
+
 	[HttpGet("short"), MyAuthorize, AllowAccessFirewall]
 	public IActionResult Short(string key, string url, int? expire)
 	{
 		expire ??= -1;
-		var id = string.IsNullOrEmpty(key) ? url.Crc32().FromBinary(16).ToBinary(62) : key;
+		var id = string.IsNullOrEmpty(key) ? url.Crc32().FromBase(16).ToBase(62) : key;
 		RedisHelper.Set("shorturl:" + id, url, expire.Value);
 		return Ok(id);
 	}
@@ -23,4 +24,4 @@ public sealed class ShortController : Controller
 		var url = RedisHelper.Get("shorturl:" + key) ?? throw new NotFoundException("链接未找到");
 		return Redirect(url);
 	}
-}
+}

+ 1 - 1
src/Masuit.MyBlogs.Core/Masuit.MyBlogs.Core.csproj

@@ -58,7 +58,7 @@
         <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.1" />
         <PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="7.0.1" />
         <PackageReference Include="Microsoft.Extensions.Http.Polly" Version="7.0.1" />
-        <PackageReference Include="Microsoft.Graph" Version="4.49.0" />
+        <PackageReference Include="Microsoft.Graph" Version="4.50.0" />
         <PackageReference Include="Microsoft.Graph.Auth" Version="1.0.0-preview.7" />
         <PackageReference Include="Microsoft.NETCore.Platforms" Version="7.0.0" />
         <PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.22" />

+ 2 - 2
src/Masuit.MyBlogs.Core/Program.cs

@@ -36,7 +36,7 @@ Host.CreateDefaultBuilder(args).UseServiceProviderFactory(new AutofacServiceProv
 	var config = opt.ApplicationServices.GetService<IConfiguration>();
 	var port = config["Port"] ?? "5000";
 	var sslport = config["Https:Port"] ?? "5001";
-	opt.ListenAnyIP(port.ToInt32());
+	opt.ListenAnyIP(port.ToInt32(), options => options.Protocols = HttpProtocols.Http1AndHttp2AndHttp3);
 	if (bool.Parse(config["Https:Enabled"]))
 	{
 		opt.ListenAnyIP(sslport.ToInt32(), s =>
@@ -70,4 +70,4 @@ static void InitOneDrive()
 		Console.WriteLine("数据初始化成功");
 		Console.WriteLine($"请登录 {OneDriveConfiguration.BaseUri}/#/admin 进行身份及其他配置");
 	}
-}
+}

+ 1 - 1
src/Masuit.MyBlogs.Core/Views/Home/Index.cshtml

@@ -13,7 +13,7 @@
     Layout = "~/Views/Shared/_Layout.cshtml";
     PooledList<FastShare> shares = ViewBag.FastShare;
     Context.Request.Path = new PathString("/posts");
-    var sliderid = Stopwatch.GetTimestamp().ToBinary(62);
+    var sliderid = Stopwatch.GetTimestamp().ToBase(62);
 }
 <link href="~/Assets/banner/bootstrap-touch-slider.css" rel="stylesheet" />
 @if (Model.Banner.Any())