From ae163167b6289c94f9ed8ea68b8203be263db9d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Wed, 18 Sep 2024 22:17:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=BC=E5=AE=B9nuget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Yi.Abp.Tool.Domain/NugetCrawlerManager.cs | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/Yi.Abp.Net8/tool/Yi.Abp.Tool.Domain/NugetCrawlerManager.cs b/Yi.Abp.Net8/tool/Yi.Abp.Tool.Domain/NugetCrawlerManager.cs index f325054d..f8dd2f44 100644 --- a/Yi.Abp.Net8/tool/Yi.Abp.Tool.Domain/NugetCrawlerManager.cs +++ b/Yi.Abp.Net8/tool/Yi.Abp.Tool.Domain/NugetCrawlerManager.cs @@ -8,20 +8,18 @@ namespace Yi.Abp.Tool.Domain public class NugetCrawlerManager : ITransientDependency { private const string NugetVersionUrl = "https://www.nuget.org/packages/Yi.Abp.Tool#versions-body-tab"; + public NugetCrawlerManager(IDistributedCache cache) { //缓存设置1分钟获取一次结果 - this.NugetResult = cache.GetOrAdd("NugetResult", () => - { - return InitData(); - }, () => - { - var options = new DistributedCacheEntryOptions(); - options.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(1); - return options; - })!; - + this.NugetResult = cache.GetOrAdd("NugetResult", () => { return InitData(); }, () => + { + var options = new DistributedCacheEntryOptions(); + options.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(1); + return options; + })!; } + private HtmlDocument HtmlDoc { get; set; } private NugetResult NugetResult { get; set; } = new NugetResult(); @@ -56,11 +54,12 @@ namespace Yi.Abp.Tool.Domain foreach (var tr in trDoc) { - var version = tr.ChildNodes.Where(x => x.Name == "td").First().ChildNodes.Where(x => x.Name == "a").First().GetAttributes("title").First().Value; + var version = tr.ChildNodes.Where(x => x.Name == "td").First().ChildNodes.Where(x => x.Name == "a") + .First().GetAttributes("title").First().Value; versions.Add(version); - } + return versions; } @@ -70,8 +69,17 @@ namespace Yi.Abp.Tool.Domain /// private long GetDownloadNumber() { - var spanDoc = HtmlDoc.DocumentNode.SelectNodes("//*[@id=\"skippedToContent\"]/section/div/aside/div[1]/div[2]/div[1]/span[2]"); + var spanDoc = + HtmlDoc.DocumentNode.SelectNodes( + "//*[@id=\"skippedToContent\"]/section/div/aside/div[1]/div[2]/div[1]/span[2]"); var downLoadNumber = spanDoc.First().InnerText; + if (downLoadNumber.Contains("K")) + { + downLoadNumber = downLoadNumber.TrimEnd('K'); + return (long)Math.Round(decimal.Parse(downLoadNumber) * 1000); + } + + return long.Parse(downLoadNumber); } } @@ -82,4 +90,4 @@ namespace Yi.Abp.Tool.Domain public long DownloadNumber { get; set; } public List Versions { get; set; } } -} +} \ No newline at end of file