Feature/netcore preparation (#2072)

* Use platform detection that works on mono 4.6+

* Move to use package reference for restoring nuget packages.

* DateTimeRoutines does not have Nuget packages that support .NET Standard (and therefore .NET Core). We will have to include them for now until we can get rid of this dependency.

* Start spliting some interfaces into their own files - this will help by allowing us to split them out in the future into a seperate project so the actual implementations can stay within their respective architectures when required

* Move out common libraries

* Few more tidy up tasks to get things working with .NET Standard

* Restructure the solution layout

* Encoding work to reduce rework later on platforms without Windows codepages (or require compliance with RFC1345)

* Move folder structure around to have more natural layout of the solutions

* DI server configuration to get rid of "temporary" hack and dependency circle for serverservice

* Make all encoding consistent to match the expected encoding casing for earlier versions of mono.
This commit is contained in:
Nathan Holland
2017-11-05 22:42:03 +13:00
committed by flightlevel
parent 47a2ffa313
commit 571c52a0f2
235 changed files with 967 additions and 1001 deletions

View File

@@ -0,0 +1,48 @@
using System.Collections.Generic;
using System.Linq;
using Jackett.Indexers;
namespace Jackett.Models.DTO
{
public class Capability
{
public string ID { get; set; }
public string Name { get; set; }
}
public class Indexer
{
public string id { get; private set; }
public string name { get; private set; }
public string description { get; private set; }
public string type { get; private set; }
public bool configured { get; private set; }
public string site_link { get; private set; }
public IEnumerable<string> alternativesitelinks { get; private set; }
public string language { get; private set; }
public string last_error { get; private set; }
public bool potatoenabled { get; private set; }
public IEnumerable<Capability> caps { get; private set; }
public Indexer(IIndexer indexer)
{
id = indexer.ID;
name = indexer.DisplayName;
description = indexer.DisplayDescription;
type = indexer.Type;
configured = indexer.IsConfigured;
site_link = indexer.SiteLink;
language = indexer.Language;
last_error = indexer.LastError;
potatoenabled = indexer.TorznabCaps.Categories.Any(i => TorznabCatType.Movies.Contains(i));
alternativesitelinks = indexer.AlternativeSiteLinks;
caps = indexer.TorznabCaps.Categories.Select(c => new Capability
{
ID = c.ID.ToString(),
Name = c.Name
});
}
}
}