In simple words, when you make a request in Jackett, the results are saved in memory (cache). The next request will return results form the cache improving response time and making fewer requests to the sites.
* We assume all indexers/sites are stateless, the same request return the same response. If you change the search term, categories or something in the query Jackett has to make a live request to the indexer.
* There are some situations when we don't want to use the cache:
** When we are testing the indexers => if query.IsTest results are not cached
** When the user updates the configuration of one indexer => We call CleanIndexerCache to remove cached results before testing the configuration
** When there is some error/exception in the indexer => The results are not cached so we can retry in the next request
* We want to limit the memory usage, so we try to remove elements from cache ASAP:
** Each indexer can have a maximum number of results in memory. If the limit is exceeded we remove old results
** Cached results expire after some time
* Users can configure the cache or even disable it
* Update to .NET 5
.NET 5 brings many performance (especially regex) improvements
https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
Can look at bringing the packages upto date and using a single file executable in a future PR if the maintainers are interested
* Dotnet restore before building
* Restore on Windows only
* Out of ideas
* Update framework for windows specific apps
* Don't upgrade Microsoft.Extensions.Configuration
* drop mono from the dotnet linux build instructions
* Fix logic to get app runtime
* readme: add windows .net prereq link
* Update README.md
* azure-pipeline: bump minorversion to 17
Co-authored-by: garfield69 <garfieldsixtynine@gmail.com>
Co-authored-by: Diego Heras <ngosang@hotmail.es>
Co-authored-by: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
core: allow renaming & merging of trackers with config (part 1 #8355) (#8608)
* rename site field to id in yaml indexers
* add id field in c# indexers
* use id field instead of class name in c#
* test: add unit test to validate all cardigann definitions
Error while parsing Cardigann definition 4thd.yml
YamlDotNet.Core.YamlException: (Line: 13, Col: 9, Idx: 240) - (Line: 13, Col: 9, Idx: 240): Exception during deserialization
---> System.Runtime.Serialization.SerializationException: Property 'dec' not found on type 'Jackett.Common.Models.CategorymappingBlock'.
* Remove COM reference for .NET Core
Removing only COM reference to get closer to having Jackett to run on .NET Core for Windows
* Handle resources
https://github.com/microsoft/msbuild/issues/4704
* Remove GenerateResourceUsePreserializedResources
* Remove System.Resources.Extensions
4 packages updated -> Jackett is now using the latest version of all packages except for AutoMapper -> Will have a go at that another day -> There is a few changes needed
-Minor code changes made to support newer version of YamlDotNet and BencodeNET
-Logic update for AssemblyName as I've been experiencing restore 'weirdness' https://stackoverflow.com/questions/208084/how-to-use-a-different-assembly-name-for-different-configurations
* Update to .NET Core 3.0
Updated Jackett so that it runs on .NET Core 3.0 now
.NET Core 3.0 brings the following benefits https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/
One of the benefits is the ability to create single file executables. I haven't enabled this yet, but its only a one line change to turn it on (would likely also require some changes to the updater).
This means that builds for LinuxAMDx64, LinuxARM32, LinuxARM64 and macOS will now run on .NET Core 3.0 instead of 2.2. Windows and Mono remain on full framework. Once .NET Core 3.1 is released (November) I'll look to moving Windows over to .NET Core as well
Tested on
-Windows 10 x64
-Debian running Jackett with Mono
-Debian running Jackett standalone (.NET Core)
* now Microsoft log (Microsoft.*) are correctly supported by Nlog
* Microsoft log are now not logged under level info if tracing is not enabled.
* remove unused prefix NLog.
* Revert "Microsoft log are now not logged under level info if tracing is not enabled."
This reverts commit 00e94204e0.
* microsoft logs in console are preserved.
Only service log is clean of microsoft logs when tracing is not enabled.
* change loglevel min to debug
* Microsoft logs can be reactivate when Enhanced logging is set to true.
* adjust min & max level of serviceMicrosoftRule
* clean Microsoft logs in all NLog targets