diff --git a/src/Jackett.Common/Definitions/animeworld-api.yml b/src/Jackett.Common/Definitions/animeworld-api.yml index 2ba24039b..c8a319a4b 100644 --- a/src/Jackett.Common/Definitions/animeworld-api.yml +++ b/src/Jackett.Common/Definitions/animeworld-api.yml @@ -84,7 +84,7 @@ search: # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6 api_token: "{{ .Config.apikey }}" name: "{{ .Keywords }}" - $raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}" + $raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[*]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}" sortField: "{{ .Config.sort }}" sortDirection: "{{ .Config.type }}" perPage: 100 diff --git a/src/Jackett.Common/Indexers/CardigannIndexer.cs b/src/Jackett.Common/Indexers/CardigannIndexer.cs index 8499154d9..17b3c0b48 100644 --- a/src/Jackett.Common/Indexers/CardigannIndexer.cs +++ b/src/Jackett.Common/Indexers/CardigannIndexer.cs @@ -468,12 +468,21 @@ namespace Jackett.Common.Indexers var variable = RangeRegexMatches.Groups[1].Value; var prefix = RangeRegexMatches.Groups[2].Value; var postfix = RangeRegexMatches.Groups[3].Value; + var hasArrayIndex = prefix.Contains("[*]"); + var arrayIndex = -1; + if (hasArrayIndex) + prefix = prefix.Replace("[*]", "[-1]"); foreach (var value in (ICollection)variables[variable]) { var newvalue = value; if (modifier != null) newvalue = modifier(newvalue); + if (hasArrayIndex) + { + prefix = prefix.Replace("[" + arrayIndex.ToString() + "]", "[" + (arrayIndex + 1).ToString() + "]"); + arrayIndex++; + } expanded += prefix + newvalue + postfix; } template = template.Replace(all, expanded);