Update AutoMapper dependency (#12568)

This commit is contained in:
Diego Heras
2021-11-16 19:17:10 +01:00
committed by GitHub
parent cc749530de
commit 2b1f138d6f
7 changed files with 36 additions and 50 deletions

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using AutoMapper;
using Jackett.Common.Models; using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig; using Jackett.Common.Models.IndexerConfig;
using Jackett.Common.Services.Interfaces; using Jackett.Common.Services.Interfaces;
@@ -706,7 +705,7 @@ namespace Jackett.Common.Indexers
Cookies = redirRequestCookies, Cookies = redirRequestCookies,
Encoding = Encoding Encoding = Encoding
}); });
Mapper.Map(redirectedResponse, incomingResponse); MapperUtil.Mapper.Map(redirectedResponse, incomingResponse);
} }
} }

View File

@@ -12,7 +12,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="AngleSharp" Version="0.14.0" /> <PackageReference Include="AngleSharp" Version="0.14.0" />
<PackageReference Include="Autofac" Version="5.2.0" /> <PackageReference Include="Autofac" Version="5.2.0" />
<PackageReference Include="AutoMapper" Version="8.1.1" /> <PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="BencodeNET" Version="3.1.4" /> <PackageReference Include="BencodeNET" Version="3.1.4" />
<PackageReference Include="FlareSolverrSharp" Version="2.0.0" /> <PackageReference Include="FlareSolverrSharp" Version="2.0.0" />
<PackageReference Include="CommandLineParser" Version="2.8.0" /> <PackageReference Include="CommandLineParser" Version="2.8.0" />

View File

@@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
using AutoMapper;
using Jackett.Common.Indexers; using Jackett.Common.Indexers;
using Jackett.Common.Models; using Jackett.Common.Models;
using Jackett.Common.Models.Config; using Jackett.Common.Models.Config;
using Jackett.Common.Services.Interfaces; using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils;
using NLog; using NLog;
namespace Jackett.Common.Services namespace Jackett.Common.Services
@@ -129,7 +129,7 @@ namespace Jackett.Common.Services
{ {
foreach (var release in query.Results) foreach (var release in query.Results)
{ {
var item = Mapper.Map<TrackerCacheResult>(release); var item = MapperUtil.Mapper.Map<TrackerCacheResult>(release);
item.FirstSeen = query.Created; item.FirstSeen = query.Created;
item.Tracker = trackerCache.TrackerName; item.Tracker = trackerCache.TrackerName;
item.TrackerId = trackerCache.TrackerId; item.TrackerId = trackerCache.TrackerId;

View File

@@ -0,0 +1,26 @@
using System.Linq;
using AutoMapper;
using Jackett.Common.Models;
using Jackett.Common.Utils.Clients;
namespace Jackett.Common.Utils
{
public static class MapperUtil
{
public static Mapper Mapper = new Mapper(
new MapperConfiguration(
cfg =>
{
cfg.CreateMap<WebResult, WebResult>();
cfg.CreateMap<ReleaseInfo, ReleaseInfo>();
cfg.CreateMap<ReleaseInfo, TrackerCacheResult>().AfterMap((r, t) =>
{
t.CategoryDesc = r.Category != null
? string.Join(", ", r.Category.Select(x => TorznabCatType.GetCatDesc(x)).Where(x => !string.IsNullOrEmpty(x)))
: "";
});
}));
}
}

View File

@@ -279,7 +279,7 @@ namespace Jackett.Server.Controllers
return searchResults.Select(result => return searchResults.Select(result =>
{ {
var item = AutoMapper.Mapper.Map<TrackerCacheResult>(result); var item = MapperUtil.Mapper.Map<TrackerCacheResult>(result);
item.Tracker = indexer.DisplayName; item.Tracker = indexer.DisplayName;
item.TrackerId = indexer.Id; item.TrackerId = indexer.Id;
item.Peers = item.Peers - item.Seeders; // Use peers as leechers item.Peers = item.Peers - item.Seeders; // Use peers as leechers
@@ -411,7 +411,7 @@ namespace Jackett.Server.Controllers
Link = new Uri(CurrentIndexer.SiteLink) Link = new Uri(CurrentIndexer.SiteLink)
}); });
var proxiedReleases = result.Releases.Select(r => AutoMapper.Mapper.Map<ReleaseInfo>(r)).Select(r => var proxiedReleases = result.Releases.Select(r => MapperUtil.Mapper.Map<ReleaseInfo>(r)).Select(r =>
{ {
r.Link = serverService.ConvertToProxyLink(r.Link, serverUrl, r.Origin.Id, "dl", r.Title); r.Link = serverService.ConvertToProxyLink(r.Link, serverUrl, r.Origin.Id, "dl", r.Title);
return r; return r;
@@ -496,7 +496,7 @@ namespace Jackett.Server.Controllers
var serverUrl = serverService.GetServerUrl(Request); var serverUrl = serverService.GetServerUrl(Request);
var potatoReleases = result.Releases.Where(r => r.Link != null || r.MagnetUri != null).Select(r => var potatoReleases = result.Releases.Where(r => r.Link != null || r.MagnetUri != null).Select(r =>
{ {
var release = AutoMapper.Mapper.Map<ReleaseInfo>(r); var release = MapperUtil.Mapper.Map<ReleaseInfo>(r);
release.Link = serverService.ConvertToProxyLink(release.Link, serverUrl, CurrentIndexer.Id, "dl", release.Title); release.Link = serverService.ConvertToProxyLink(release.Link, serverUrl, CurrentIndexer.Id, "dl", release.Title);
// IMPORTANT: We can't use Uri.ToString(), because it generates URLs without URL encode (links with unicode // IMPORTANT: We can't use Uri.ToString(), because it generates URLs without URL encode (links with unicode
// characters are broken). We must use Uri.AbsoluteUri instead that handles encoding correctly // characters are broken). We must use Uri.AbsoluteUri instead that handles encoding correctly

View File

@@ -1,11 +1,6 @@
using System.Linq;
using System.Text;
using Autofac; using Autofac;
using AutoMapper;
using Jackett.Common.Models;
using Jackett.Common.Models.Config; using Jackett.Common.Models.Config;
using Jackett.Common.Services.Interfaces; using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils.Clients;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using NLog; using NLog;
#if !NET461 #if !NET461
@@ -17,7 +12,6 @@ namespace Jackett.Server
public static class Helper public static class Helper
{ {
public static IContainer ApplicationContainer { get; set; } public static IContainer ApplicationContainer { get; set; }
private static bool _automapperInitialised = false;
#if NET461 #if NET461
public static IApplicationLifetime applicationLifetime; public static IApplicationLifetime applicationLifetime;
@@ -27,14 +21,6 @@ namespace Jackett.Server
public static void Initialize() public static void Initialize()
{ {
if (_automapperInitialised == false)
{
//Automapper only likes being initialized once per app domain.
//Since we can restart Jackett from the command line it's possible that we'll build the container more than once. (tests do this too)
InitAutomapper();
_automapperInitialised = true;
}
//Load the indexers //Load the indexers
ServerService.Initalize(); ServerService.Initalize();
@@ -67,31 +53,6 @@ namespace Jackett.Server
public static Logger Logger => ApplicationContainer.Resolve<Logger>(); public static Logger Logger => ApplicationContainer.Resolve<Logger>();
private static void InitAutomapper()
{
#pragma warning disable 612, 618
// TODO: fix deprecation warning (remove #pragma to see the build warning)
Mapper.Initialize(cfg =>
{
cfg.CreateMap<WebResult, WebResult>();
cfg.CreateMap<ReleaseInfo, ReleaseInfo>();
cfg.CreateMap<ReleaseInfo, TrackerCacheResult>().AfterMap((r, t) =>
{
if (r.Category != null)
{
t.CategoryDesc = string.Join(", ", r.Category.Select(x => TorznabCatType.GetCatDesc(x)).Where(x => !string.IsNullOrEmpty(x)));
}
else
{
t.CategoryDesc = "";
}
});
});
#pragma warning restore 612, 618
}
public static void SetupLogging(ContainerBuilder builder) => public static void SetupLogging(ContainerBuilder builder) =>
builder?.RegisterInstance(LogManager.GetCurrentClassLogger()).SingleInstance(); builder?.RegisterInstance(LogManager.GetCurrentClassLogger()).SingleInstance();

View File

@@ -55,7 +55,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Autofac" Version="5.2.0" /> <PackageReference Include="Autofac" Version="5.2.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" /> <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" />
<PackageReference Include="AutoMapper" Version="8.1.1" /> <PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="CommandLineParser" Version="2.8.0" /> <PackageReference Include="CommandLineParser" Version="2.8.0" />
<PackageReference Include="NLog" Version="4.7.5" /> <PackageReference Include="NLog" Version="4.7.5" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" /> <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />