Skip to content

Commit

Permalink
animebytes: new option for more fine-grain synonymn selections (#9484)
Browse files Browse the repository at this point in the history
  • Loading branch information
seeyabye committed Sep 13, 2020
1 parent 679b015 commit b437e0d
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 6 deletions.
31 changes: 27 additions & 4 deletions src/Jackett.Common/Indexers/AnimeBytes.cs
Expand Up @@ -24,7 +24,9 @@ public class AnimeBytes : BaseCachingWebIndexer
private string ScrapeUrl => SiteLink + "scrape.php";
public bool AllowRaws => configData.IncludeRaw.Value;
public bool PadEpisode => configData.PadEpisode != null && configData.PadEpisode.Value;
public bool AddSynonyms => configData.AddSynonyms.Value;
public bool AddJapaneseTitle => configData.AddJapaneseTitle.Value;
public bool AddRomajiTitle => configData.AddRomajiTitle.Value;
public bool AddAlternativeTitles => configData.AddAlternativeTitles.Value;
public bool FilterSeasonEpisode => configData.FilterSeasonEpisode.Value;

private new ConfigurationDataAnimeBytes configData
Expand Down Expand Up @@ -208,10 +210,31 @@ private async Task<IEnumerable<ReleaseInfo>> GetResults(TorznabQuery query, stri
mainTitle = SeriesName;

synonyms.Add(mainTitle);
if (AddSynonyms)

if (group["Synonymns"].HasValues)
{
foreach (string synonym in group["Synonymns"])
synonyms.Add(synonym);
if (group["Synonymns"] is JArray)
{
List<string> allSyonyms = group["Synonymns"].ToObject<List<string>>();

if (AddJapaneseTitle && allSyonyms.Count >= 1)
synonyms.Add(allSyonyms[0]);
if (AddRomajiTitle && allSyonyms.Count >= 2)
synonyms.Add(allSyonyms[1]);
if (AddAlternativeTitles && allSyonyms.Count >= 3)
synonyms.AddRange(allSyonyms[2].Split(',').Select(t => t.Trim()));
} else
{
Dictionary<int, string> allSynonyms = group["Synonymns"].ToObject<Dictionary<int, string>>();

if (AddJapaneseTitle && allSynonyms.ContainsKey(0))
synonyms.Add(allSynonyms[0]);
if (AddRomajiTitle && allSynonyms.ContainsKey(1))
synonyms.Add(allSynonyms[1]);
if (AddAlternativeTitles && allSynonyms.ContainsKey(2)) {
synonyms.AddRange(allSynonyms[2].Split(',').Select(t => t.Trim()));
}
}
}

List<int> Category = null;
Expand Down
Expand Up @@ -5,7 +5,9 @@ internal class ConfigurationDataAnimeBytes : ConfigurationDataUserPasskey
public BoolItem IncludeRaw { get; private set; }
//public DisplayItem DateWarning { get; private set; }
public BoolItem PadEpisode { get; private set; }
public BoolItem AddSynonyms { get; private set; }
public BoolItem AddJapaneseTitle { get; private set; }
public BoolItem AddRomajiTitle { get; private set; }
public BoolItem AddAlternativeTitles { get; private set; }
public BoolItem FilterSeasonEpisode { get; private set; }

public ConfigurationDataAnimeBytes(string instructionMessageOptional = null)
Expand All @@ -14,7 +16,9 @@ public ConfigurationDataAnimeBytes(string instructionMessageOptional = null)
IncludeRaw = new BoolItem() { Name = "IncludeRaw", Value = false };
//DateWarning = new DisplayItem("This tracker does not supply upload dates so they are based off year of release.") { Name = "DateWarning" };
PadEpisode = new BoolItem() { Name = "Pad episode number for Sonarr compatability", Value = false };
AddSynonyms = new BoolItem() { Name = "Add releases for each synonym title", Value = true };
AddJapaneseTitle = new BoolItem() { Name = "Add releases for Japanese Title", Value = false };
AddRomajiTitle = new BoolItem() { Name = "Add releases for Romaji Title", Value = false };
AddAlternativeTitles = new BoolItem() { Name = "Add releases for Alternative Title(s)", Value = false };
FilterSeasonEpisode = new BoolItem() { Name = "Filter results by season/episode", Value = false };
Instructions = new DisplayItem(instructionMessageOptional) { Name = "" };
}
Expand Down

0 comments on commit b437e0d

Please sign in to comment.