* Hotfix categories Also roll back RTN to 0.1.8 as regression introduced in 0.2 * bump version
98 lines
2.8 KiB
C#
98 lines
2.8 KiB
C#
namespace SharedContracts.Python.RTN;
|
|
|
|
public class RtnResponse
|
|
{
|
|
[JsonPropertyName("raw_title")]
|
|
public string? RawTitle { get; set; }
|
|
|
|
[JsonPropertyName("parsed_title")]
|
|
public string? ParsedTitle { get; set; }
|
|
|
|
[JsonPropertyName("fetch")]
|
|
public bool Fetch { get; set; }
|
|
|
|
[JsonPropertyName("is_4k")]
|
|
public bool Is4K { get; set; }
|
|
|
|
[JsonPropertyName("is_multi_audio")]
|
|
public bool IsMultiAudio { get; set; }
|
|
|
|
[JsonPropertyName("is_multi_subtitle")]
|
|
public bool IsMultiSubtitle { get; set; }
|
|
|
|
[JsonPropertyName("is_complete")]
|
|
public bool IsComplete { get; set; }
|
|
|
|
[JsonPropertyName("year")]
|
|
public int Year { get; set; }
|
|
|
|
[JsonPropertyName("resolution")]
|
|
public List<string>? Resolution { get; set; }
|
|
|
|
[JsonPropertyName("quality")]
|
|
public List<string>? Quality { get; set; }
|
|
|
|
[JsonPropertyName("season")]
|
|
public List<int>? Season { get; set; }
|
|
|
|
[JsonPropertyName("episode")]
|
|
public List<int>? Episode { get; set; }
|
|
|
|
[JsonPropertyName("codec")]
|
|
public List<string>? Codec { get; set; }
|
|
|
|
[JsonPropertyName("audio")]
|
|
public List<string>? Audio { get; set; }
|
|
|
|
[JsonPropertyName("subtitles")]
|
|
public List<string>? Subtitles { get; set; }
|
|
|
|
[JsonPropertyName("language")]
|
|
public List<string>? Language { get; set; }
|
|
|
|
[JsonPropertyName("bit_depth")]
|
|
public List<int>? BitDepth { get; set; }
|
|
|
|
[JsonPropertyName("hdr")]
|
|
public string? Hdr { get; set; }
|
|
|
|
[JsonPropertyName("proper")]
|
|
public bool Proper { get; set; }
|
|
|
|
[JsonPropertyName("repack")]
|
|
public bool Repack { get; set; }
|
|
|
|
[JsonPropertyName("remux")]
|
|
public bool Remux { get; set; }
|
|
|
|
[JsonPropertyName("upscaled")]
|
|
public bool Upscaled { get; set; }
|
|
|
|
[JsonPropertyName("remastered")]
|
|
public bool Remastered { get; set; }
|
|
|
|
[JsonPropertyName("directors_cut")]
|
|
public bool DirectorsCut { get; set; }
|
|
|
|
[JsonPropertyName("extended")]
|
|
public bool Extended { get; set; }
|
|
|
|
// [JsonPropertyName("is_show")]
|
|
// public bool IsTvShow { get; set; }
|
|
//
|
|
// [JsonPropertyName("is_movie")]
|
|
// public bool IsMovie { get; set; }
|
|
|
|
public string ToJson() => this.AsJson();
|
|
|
|
public bool IsMovie => !TvRegexes.Any(regex => regex.IsMatch(RawTitle)) && Season?.Count == 0 && Episode?.Count == 0;
|
|
|
|
private static List<Regex> TvRegexes { get; set; } =
|
|
[
|
|
new(@"[se]\d\d", RegexOptions.IgnoreCase),
|
|
new(@"\b(tv|complete)\b", RegexOptions.IgnoreCase),
|
|
new(@"\b(saisons?|stages?|seasons?).?\d", RegexOptions.IgnoreCase),
|
|
new(@"[a-z]\s?\-\s?\d{2,4}\b", RegexOptions.IgnoreCase),
|
|
new(@"\d{2,4}\s?\-\s?\d{2,4}\b", RegexOptions.IgnoreCase),
|
|
];
|
|
} |