Skip to content

Commit

Permalink
New: Use languages from Torznab/Newznab attributes if given
Browse files Browse the repository at this point in the history
(cherry picked from commit 9c5a07f62a6e32832c10c80813cd3b98c5859989)
  • Loading branch information
Qstick authored and mynameisbogdan committed May 21, 2023
1 parent ec40761 commit 1fc79f9
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 0 deletions.
Expand Up @@ -126,6 +126,28 @@ protected override ICollection<IndexerCategory> GetCategory(XElement item)
return results;
}

protected override List<string> GetLanguages(XElement item)
{
var languges = TryGetMultipleNewznabAttributes(item, "language");
var results = new List<string>();

// Try to find <language> elements for some indexers that suck at following the rules.
if (languges.Count == 0)
{
languges = item.Elements("language").Select(e => e.Value).ToList();
}

foreach (var language in languges)
{
if (language.IsNotNullOrWhiteSpace())
{
results.Add(language);
}
}

return results;
}

protected override long GetSize(XElement item)
{
long size;
Expand Down
22 changes: 22 additions & 0 deletions src/NzbDrone.Core/Indexers/Definitions/Newznab/NewznabRssParser.cs
Expand Up @@ -154,6 +154,28 @@ protected override ICollection<IndexerCategory> GetCategory(XElement item)
return results;
}

protected override List<string> GetLanguages(XElement item)
{
var languges = TryGetMultipleNewznabAttributes(item, "language");
var results = new List<string>();

// Try to find <language> elements for some indexers that suck at following the rules.
if (languges.Count == 0)
{
languges = item.Elements("language").Select(e => e.Value).ToList();
}

foreach (var language in languges)
{
if (language.IsNotNullOrWhiteSpace())
{
results.Add(language);
}
}

return results;
}

protected override long GetSize(XElement item)
{
long size;
Expand Down
22 changes: 22 additions & 0 deletions src/NzbDrone.Core/Indexers/Definitions/Torznab/TorznabRssParser.cs
Expand Up @@ -125,6 +125,28 @@ protected override string GetCommentUrl(XElement item)
return ParseUrl(item.TryGetValue("comments"));
}

protected override List<string> GetLanguages(XElement item)
{
var languges = TryGetMultipleTorznabAttributes(item, "language");
var results = new List<string>();

// Try to find <language> elements for some indexers that suck at following the rules.
if (languges.Count == 0)
{
languges = item.Elements("language").Select(e => e.Value).ToList();
}

foreach (var language in languges)
{
if (language.IsNotNullOrWhiteSpace())
{
results.Add(language);
}
}

return results;
}

protected override long GetSize(XElement item)
{
long size;
Expand Down
6 changes: 6 additions & 0 deletions src/NzbDrone.Core/Indexers/RssParser.cs
Expand Up @@ -166,6 +166,7 @@ protected virtual ReleaseInfo ProcessItem(XElement item, ReleaseInfo releaseInfo
releaseInfo.InfoUrl = GetInfoUrl(item);
releaseInfo.CommentUrl = GetCommentUrl(item);
releaseInfo.Categories = GetCategory(item);
releaseInfo.Languages = GetLanguages(item);

try
{
Expand Down Expand Up @@ -237,6 +238,11 @@ protected virtual string GetCommentUrl(XElement item)
return ParseUrl((string)item.Element("comments"));
}

protected virtual List<string> GetLanguages(XElement item)
{
return new List<string>();
}

protected virtual long GetSize(XElement item)
{
if (UseEnclosureLength)
Expand Down

0 comments on commit 1fc79f9

Please sign in to comment.