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? Resolution { get; set; } [JsonPropertyName("quality")] public List? Quality { get; set; } [JsonPropertyName("season")] public List? Season { get; set; } [JsonPropertyName("episode")] public List? Episode { get; set; } [JsonPropertyName("codec")] public List? Codec { get; set; } [JsonPropertyName("audio")] public List? Audio { get; set; } [JsonPropertyName("subtitles")] public List? Subtitles { get; set; } [JsonPropertyName("language")] public List? Language { get; set; } [JsonPropertyName("bit_depth")] public List? 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 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), ]; }