core: remove automapper

Co-authored-by: ngosang <ngosang@hotmail.es>
This commit is contained in:
Bogdan 2024-02-25 03:35:42 +02:00
parent dc58f07811
commit 4752dcdda4
7 changed files with 79 additions and 64 deletions

View File

@ -661,7 +661,7 @@ namespace Jackett.Common.Indexers
break;
}
await DoFollowIfRedirect(response, referrer, overrideRedirectUrl, overrideCookies, accumulateCookies);
response = await DoFollowIfRedirect(response, referrer, overrideRedirectUrl, overrideCookies, accumulateCookies);
if (accumulateCookies)
{
@ -701,7 +701,7 @@ namespace Jackett.Common.Indexers
}
}
private async Task DoFollowIfRedirect(WebResult incomingResponse, string referrer = null, string overrideRedirectUrl = null, string overrideCookies = null, bool accumulateCookies = false)
private async Task<WebResult> DoFollowIfRedirect(WebResult incomingResponse, string referrer = null, string overrideRedirectUrl = null, string overrideCookies = null, bool accumulateCookies = false)
{
if (incomingResponse.IsRedirect)
{
@ -722,8 +722,11 @@ namespace Jackett.Common.Indexers
Cookies = redirRequestCookies,
Encoding = Encoding
});
MapperUtil.Mapper.Map(redirectedResponse, incomingResponse);
return redirectedResponse;
}
return incomingResponse;
}
protected List<string> GetAllTrackerCategories() =>

View File

@ -13,7 +13,6 @@
<PackageReference Include="AngleSharp" Version="1.1.2" />
<PackageReference Include="AngleSharp.Xml" Version="1.0.0" />
<PackageReference Include="Autofac" Version="6.5.0" />
<PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="BencodeNET" Version="4.0.0" />
<PackageReference Include="FlareSolverrSharp" Version="3.0.7" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />

View File

@ -1,4 +1,5 @@
using System;
using System.Linq;
namespace Jackett.Common.Models
{
@ -10,5 +11,52 @@ namespace Jackett.Common.Models
public string TrackerType { get; set; }
public string CategoryDesc { get; set; }
public Uri BlackholeLink { get; set; }
public TrackerCacheResult(ReleaseInfo releaseInfo)
{
Title = releaseInfo.Title;
Guid = releaseInfo.Guid;
Link = releaseInfo.Link;
Details = releaseInfo.Details;
PublishDate = releaseInfo.PublishDate;
Category = releaseInfo.Category;
Size = releaseInfo.Size;
Files = releaseInfo.Files;
Grabs = releaseInfo.Grabs;
Description = releaseInfo.Description;
RageID = releaseInfo.RageID;
TVDBId = releaseInfo.TVDBId;
Imdb = releaseInfo.Imdb;
TMDb = releaseInfo.TMDb;
TVMazeId = releaseInfo.TVMazeId;
TraktId = releaseInfo.TraktId;
DoubanId = releaseInfo.DoubanId;
Genres = releaseInfo.Genres;
Year = releaseInfo.Year;
Author = releaseInfo.Author;
BookTitle = releaseInfo.BookTitle;
Publisher = releaseInfo.Publisher;
Artist = releaseInfo.Artist;
Album = releaseInfo.Album;
Label = releaseInfo.Label;
Track = releaseInfo.Track;
Seeders = releaseInfo.Seeders;
Peers = releaseInfo.Peers;
Poster = releaseInfo.Poster;
InfoHash = releaseInfo.InfoHash;
MagnetUri = releaseInfo.MagnetUri;
MinimumRatio = releaseInfo.MinimumRatio;
MinimumSeedTime = releaseInfo.MinimumSeedTime;
DownloadVolumeFactor = releaseInfo.DownloadVolumeFactor;
UploadVolumeFactor = releaseInfo.UploadVolumeFactor;
CategoryDesc = "";
if (Category != null)
CategoryDesc = string.Join(
", ", Category.Select(TorznabCatType.GetCatDesc).Where(x => !string.IsNullOrEmpty(x)));
// Use peers as leechers
Peers -= Seeders;
}
}
}

View File

@ -69,7 +69,7 @@ namespace Jackett.Common.Services
var trackerCacheQuery = new TrackerCacheQuery
{
Created = DateTime.Now,
Results = releases
Results = releases.Select(r => (ReleaseInfo)r.Clone()).ToList()
};
var trackerCache = _cache[indexer.Id];
@ -123,27 +123,23 @@ namespace Jackett.Common.Services
PruneCacheByTtl(); // remove expired results
var results = new List<TrackerCacheResult>();
foreach (var trackerCache in _cache.Values)
{
var trackerResults = new List<TrackerCacheResult>();
foreach (var query in trackerCache.Queries.Values.OrderByDescending(q => q.Created)) // newest first
{
foreach (var release in query.Results)
{
var item = MapperUtil.Mapper.Map<TrackerCacheResult>(release);
item.FirstSeen = query.Created;
item.Tracker = trackerCache.TrackerName;
item.TrackerId = trackerCache.TrackerId;
item.TrackerType = trackerCache.TrackerType;
item.Peers -= item.Seeders; // Use peers as leechers
trackerResults.Add(item);
}
}
trackerResults = trackerResults.GroupBy(r => r.Guid).Select(y => y.First()).Take(300).ToList();
results.AddRange(trackerResults);
}
var result = results.OrderByDescending(i => i.PublishDate).Take(3000).ToList();
var result = _cache.Values.SelectMany(
trackerCache => trackerCache.Queries.Values
.OrderByDescending(q => q.Created)
.SelectMany(
query => query.Results.Select(release =>
new TrackerCacheResult(release)
{
FirstSeen = query.Created,
Tracker = trackerCache.TrackerName,
TrackerId = trackerCache.TrackerId,
TrackerType = trackerCache.TrackerType
}))
.GroupBy(r => r.Guid)
.Select(y => y.First())
.Take(300))
.OrderByDescending(i => i.PublishDate)
.Take(3000).ToList();
_logger.Debug($"CACHE GetCachedResults / Results: {result.Count} (cache may contain more results)");
PrintCacheStatus();

View File

@ -1,26 +0,0 @@
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

@ -308,14 +308,11 @@ namespace Jackett.Server.Controllers
var searchResults = t.Result.Releases;
var indexer = t.Result.Indexer;
return searchResults.Select(result =>
return searchResults.Select(result => new TrackerCacheResult(result)
{
var item = MapperUtil.Mapper.Map<TrackerCacheResult>(result);
item.Tracker = indexer.Name;
item.TrackerId = indexer.Id;
item.TrackerType = indexer.Type;
item.Peers = item.Peers - item.Seeders; // Use peers as leechers
return item;
Tracker = indexer.Name,
TrackerId = indexer.Id,
TrackerType = indexer.Type
});
}).OrderByDescending(d => d.PublishDate).ToList();
@ -447,7 +444,7 @@ namespace Jackett.Server.Controllers
Link = new Uri(CurrentIndexer.SiteLink)
});
var proxiedReleases = result.Releases.Select(r => MapperUtil.Mapper.Map<ReleaseInfo>(r)).Select(r =>
var proxiedReleases = result.Releases.Select(r =>
{
r.Link = serverService.ConvertToProxyLink(r.Link, serverUrl, r.Origin.Id, "dl", r.Title);
r.Poster = serverService.ConvertToProxyLink(r.Poster, serverUrl, r.Origin.Id, "img", "poster");
@ -568,9 +565,8 @@ namespace Jackett.Server.Controllers
logger.Info($"Potato search in {CurrentIndexer.Name} for {CurrentQuery.GetQueryString()} => Found {result.Releases.Count()} releases{cacheStr}");
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(release =>
{
var release = MapperUtil.Mapper.Map<ReleaseInfo>(r);
release.Link = serverService.ConvertToProxyLink(release.Link, serverUrl, CurrentIndexer.Id, "dl", release.Title);
// Poster is not used in Potato response
//release.Poster = serverService.ConvertToProxyLink(release.Poster, serverUrl, CurrentIndexer.Id, "img", "poster");
@ -589,7 +585,7 @@ namespace Jackett.Server.Controllers
size = (long)release.Size / (1024 * 1024), // This is in MB
leechers = (release.Peers ?? -1) - (release.Seeders ?? 0),
seeders = release.Seeders ?? -1,
publish_date = r.PublishDate == DateTime.MinValue ? null : release.PublishDate.ToUniversalTime().ToString("s")
publish_date = release.PublishDate == DateTime.MinValue ? null : release.PublishDate.ToUniversalTime().ToString("s")
};
return item;
});

View File

@ -55,7 +55,6 @@
<ItemGroup>
<PackageReference Include="Autofac" Version="6.5.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="Mono.Posix" Version="7.1.0-final.1.21458.1" />
<PackageReference Include="NLog" Version="5.1.2" />