feat: 兼容nuget
This commit is contained in:
@@ -8,20 +8,18 @@ namespace Yi.Abp.Tool.Domain
|
|||||||
public class NugetCrawlerManager : ITransientDependency
|
public class NugetCrawlerManager : ITransientDependency
|
||||||
{
|
{
|
||||||
private const string NugetVersionUrl = "https://www.nuget.org/packages/Yi.Abp.Tool#versions-body-tab";
|
private const string NugetVersionUrl = "https://www.nuget.org/packages/Yi.Abp.Tool#versions-body-tab";
|
||||||
|
|
||||||
public NugetCrawlerManager(IDistributedCache<NugetResult> cache)
|
public NugetCrawlerManager(IDistributedCache<NugetResult> cache)
|
||||||
{
|
{
|
||||||
//缓存设置1分钟获取一次结果
|
//缓存设置1分钟获取一次结果
|
||||||
this.NugetResult = cache.GetOrAdd("NugetResult", () =>
|
this.NugetResult = cache.GetOrAdd("NugetResult", () => { return InitData(); }, () =>
|
||||||
{
|
{
|
||||||
return InitData();
|
var options = new DistributedCacheEntryOptions();
|
||||||
}, () =>
|
options.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(1);
|
||||||
{
|
return options;
|
||||||
var options = new DistributedCacheEntryOptions();
|
})!;
|
||||||
options.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(1);
|
|
||||||
return options;
|
|
||||||
})!;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private HtmlDocument HtmlDoc { get; set; }
|
private HtmlDocument HtmlDoc { get; set; }
|
||||||
private NugetResult NugetResult { get; set; } = new NugetResult();
|
private NugetResult NugetResult { get; set; } = new NugetResult();
|
||||||
|
|
||||||
@@ -56,11 +54,12 @@ namespace Yi.Abp.Tool.Domain
|
|||||||
|
|
||||||
foreach (var tr in trDoc)
|
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);
|
versions.Add(version);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return versions;
|
return versions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,8 +69,17 @@ namespace Yi.Abp.Tool.Domain
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private long GetDownloadNumber()
|
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;
|
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);
|
return long.Parse(downLoadNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user