Files
Readarr/src/NzbDrone.Core/Parser/Model/ReleaseInfo.cs
T
Qstick 1307f8f5b1 New: Use languages from Torznab/Newznab attributes if given
(cherry picked from commit 9c5a07f62a6e32832c10c80813cd3b98c5859989)

Fixes #2517
2023-05-21 20:31:41 +03:00

89 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;
using NzbDrone.Core.Download.Pending;
using NzbDrone.Core.Indexers;
using NzbDrone.Core.Languages;
namespace NzbDrone.Core.Parser.Model
{
public class ReleaseInfo
{
public ReleaseInfo()
{
Languages = new List<Language>();
}
public string Guid { get; set; }
public string Title { get; set; }
public long Size { get; set; }
public string DownloadUrl { get; set; }
public string InfoUrl { get; set; }
public string CommentUrl { get; set; }
public int IndexerId { get; set; }
public string Indexer { get; set; }
public string Author { get; set; }
public string Book { get; set; }
public int IndexerPriority { get; set; }
public DownloadProtocol DownloadProtocol { get; set; }
public DateTime PublishDate { get; set; }
public string Origin { get; set; }
public string Source { get; set; }
public string Container { get; set; }
public string Codec { get; set; }
public List<int> Categories { get; set; }
public List<Language> Languages { get; set; }
// Used to track pending releases that are being reprocessed
[JsonIgnore]
public PendingReleaseReason? PendingReleaseReason { get; set; }
public int Age
{
get { return DateTime.UtcNow.Subtract(PublishDate).Days; }
private set { }
}
public double AgeHours
{
get { return DateTime.UtcNow.Subtract(PublishDate).TotalHours; }
private set { }
}
public double AgeMinutes
{
get { return DateTime.UtcNow.Subtract(PublishDate).TotalMinutes; }
private set { }
}
public override string ToString()
{
return string.Format("[{0}] {1} [{2}]", PublishDate, Title, Size);
}
public virtual string ToString(string format)
{
switch (format.ToUpperInvariant())
{
case "L": // Long format
var stringBuilder = new StringBuilder();
stringBuilder.AppendLine("Guid: " + Guid ?? "Empty");
stringBuilder.AppendLine("Title: " + Title ?? "Empty");
stringBuilder.AppendLine("Size: " + Size ?? "Empty");
stringBuilder.AppendLine("InfoUrl: " + InfoUrl ?? "Empty");
stringBuilder.AppendLine("DownloadUrl: " + DownloadUrl ?? "Empty");
stringBuilder.AppendLine("Indexer: " + Indexer ?? "Empty");
stringBuilder.AppendLine("CommentUrl: " + CommentUrl ?? "Empty");
stringBuilder.AppendLine("DownloadProtocol: " + DownloadProtocol ?? "Empty");
stringBuilder.AppendLine("PublishDate: " + PublishDate ?? "Empty");
return stringBuilder.ToString();
default:
return ToString();
}
}
}
}