mirror of https://github.com/Jackett/Jackett
core: enable genre queries (#13394)
Co-authored-by: garfield69 <garfieldsixtynine@gmail.com> Co-authored-by: garfield69 <garfield69@outlook.com>
This commit is contained in:
parent
507f2f22f7
commit
75ae674998
|
@ -88,8 +88,13 @@ search:
|
||||||
poster:
|
poster:
|
||||||
selector: img
|
selector: img
|
||||||
attribute: src
|
attribute: src
|
||||||
description:
|
genre:
|
||||||
selector: div.short_game_genre
|
selector: div.short_game_genre
|
||||||
|
filters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\s+/\\s+", ", "]
|
||||||
|
description:
|
||||||
|
text: "{{ .Result.genre }}"
|
||||||
date:
|
date:
|
||||||
text: now
|
text: now
|
||||||
seeders:
|
seeders:
|
||||||
|
|
|
@ -177,8 +177,7 @@ search:
|
||||||
year_desc:
|
year_desc:
|
||||||
optional: true
|
optional: true
|
||||||
selector: year
|
selector: year
|
||||||
genre_desc:
|
genre:
|
||||||
optional: true
|
|
||||||
selector: genres
|
selector: genres
|
||||||
_tagline_desc:
|
_tagline_desc:
|
||||||
optional: true
|
optional: true
|
||||||
|
@ -222,5 +221,5 @@ search:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: "(.+?), $"
|
args: "(.+?), $"
|
||||||
description:
|
description:
|
||||||
text: "{{ if .Result.title_desc }}Title: {{ .Result.title_desc }}</br>{{ else }}{{ end }}{{ if .Result.year_desc }}Year: {{ .Result.year_desc }}</br>{{ else }}{{ end }}{{ if .Result.genre_desc }}Genres: {{ .Result.genre_desc }}</br>{{ else }}{{ end }}{{ if .Result._tagline_desc }}Tagline: {{ .Result._tagline_desc }}</br>{{ else }}{{ end }}{{ if .Result._cast_desc }}Cast: {{ .Result._cast_desc }}</br>{{ else }}{{ end }}{{ if .Result._rating_desc }}Rating: {{ .Result._rating_desc }}</br>{{ else }}{{ end }}{{ if .Result._tag_desc }}Tags: {{ .Result._tag_desc }}</br>{{ else }}{{ end }}{{ if .Result._predate_desc }}PRE: {{ .Result._predate_desc }}</br>{{ else }}{{ end }}{{ if .Result._section_desc }}Section: {{ .Result._section_desc }}{{ else }}{{ end }}"
|
text: "{{ if .Result.title_desc }}Title: {{ .Result.title_desc }}</br>{{ else }}{{ end }}{{ if .Result.year_desc }}Year: {{ .Result.year_desc }}</br>{{ else }}{{ end }}{{ if .Result.genre }}Genres: {{ .Result.genre }}</br>{{ else }}{{ end }}{{ if .Result._tagline_desc }}Tagline: {{ .Result._tagline_desc }}</br>{{ else }}{{ end }}{{ if .Result._cast_desc }}Cast: {{ .Result._cast_desc }}</br>{{ else }}{{ end }}{{ if .Result._rating_desc }}Rating: {{ .Result._rating_desc }}</br>{{ else }}{{ end }}{{ if .Result._tag_desc }}Tags: {{ .Result._tag_desc }}</br>{{ else }}{{ end }}{{ if .Result._predate_desc }}PRE: {{ .Result._predate_desc }}</br>{{ else }}{{ end }}{{ if .Result._section_desc }}Section: {{ .Result._section_desc }}{{ else }}{{ end }}"
|
||||||
# json rartracker api v1
|
# json rartracker api v1
|
||||||
|
|
|
@ -36,7 +36,7 @@ caps:
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
tv-search: [q, season, ep]
|
tv-search: [q, season, ep]
|
||||||
movie-search: [q]
|
movie-search: [q, genre]
|
||||||
music-search: [q]
|
music-search: [q]
|
||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ search:
|
||||||
# 0 name, 1 performer, 2 director
|
# 0 name, 1 performer, 2 director
|
||||||
miben: 0
|
miben: 0
|
||||||
# genre
|
# genre
|
||||||
cimke: ""
|
cimke: "{{ .Query.Genre }}"
|
||||||
# does not support imdbid search and does not return imdb link in results
|
# does not support imdbid search and does not return imdb link in results
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
|
@ -153,9 +153,13 @@ search:
|
||||||
case:
|
case:
|
||||||
img[src="pic/dupla_up.png"]: 2
|
img[src="pic/dupla_up.png"]: 2
|
||||||
"*": 1
|
"*": 1
|
||||||
|
genre:
|
||||||
|
selector: div i
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "\\((.+?)\\)"
|
||||||
description:
|
description:
|
||||||
selector: div:nth-child(2)
|
text: "{{ .Result.genre }}"
|
||||||
remove: a
|
|
||||||
minimumratio:
|
minimumratio:
|
||||||
text: 1.0
|
text: 1.0
|
||||||
minimumseedtime:
|
minimumseedtime:
|
||||||
|
|
|
@ -26,8 +26,8 @@ caps:
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
tv-search: [q, season, ep, imdbid]
|
tv-search: [q, season, ep, imdbid]
|
||||||
movie-search: [q, imdbid]
|
movie-search: [q, imdbid, genre]
|
||||||
music-search: [q]
|
music-search: [q, genre]
|
||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
@ -97,8 +97,8 @@ search:
|
||||||
scene: 0
|
scene: 0
|
||||||
# 0 all, 1 Polish, 2 non-Polish, 4 subtitled
|
# 0 all, 1 Polish, 2 non-Polish, 4 subtitled
|
||||||
pl: 0
|
pl: 0
|
||||||
# subcat blank=all
|
# genre blank=all
|
||||||
sub: ""
|
sub: "{{ .Query.Genre }}"
|
||||||
# title, both, nfo
|
# title, both, nfo
|
||||||
search_in: "{{ if .Query.IMDBID }}nfo{{ else }}title{{ end }}"
|
search_in: "{{ if .Query.IMDBID }}nfo{{ else }}title{{ end }}"
|
||||||
sort: "{{ .Config.sort }}"
|
sort: "{{ .Config.sort }}"
|
||||||
|
@ -131,20 +131,14 @@ search:
|
||||||
download:
|
download:
|
||||||
selector: a[href^="downloadssl.php?id="]
|
selector: a[href^="downloadssl.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
_genre:
|
genre:
|
||||||
optional: true
|
|
||||||
selector: td:nth-child(2) > small
|
selector: td:nth-child(2) > small
|
||||||
filters:
|
|
||||||
- name: prepend
|
|
||||||
args: "Genre: "
|
|
||||||
- name: append
|
|
||||||
args: "\n<br>"
|
|
||||||
_language:
|
_language:
|
||||||
optional: true
|
optional: true
|
||||||
selector: img[src="pic/pl.png"]
|
selector: img[src="pic/pl.png"]
|
||||||
filters:
|
filters:
|
||||||
- name: append
|
- name: append
|
||||||
args: "Language: polish\n<br>"
|
args: "Language: Polish\n<br>"
|
||||||
_subbed:
|
_subbed:
|
||||||
optional: true
|
optional: true
|
||||||
selector: img[src="pic/napisy.png"]
|
selector: img[src="pic/napisy.png"]
|
||||||
|
@ -152,7 +146,7 @@ search:
|
||||||
- name: append
|
- name: append
|
||||||
args: "Subbed\n<br>"
|
args: "Subbed\n<br>"
|
||||||
description:
|
description:
|
||||||
text: "{{ .Result._genre }}{{ .Result._language }}{{ .Result._subbed }}"
|
text: "Genre: {{ .Result.genre }}\n<br>{{ .Result._language }}{{ .Result._subbed }}"
|
||||||
imdbid:
|
imdbid:
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
date:
|
date:
|
||||||
|
|
|
@ -96,8 +96,8 @@ search:
|
||||||
inputs:
|
inputs:
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||||
search: "{{ .Keywords }}"
|
search: "{{ .Keywords }}"
|
||||||
# 0 name & desc, 1 name, 2 desc, 3 genre
|
# 0 any sub, 2 RO sub
|
||||||
incldesc: 1
|
inclrosub: 0
|
||||||
# 0 active, 1 incldead, 2 onlydead
|
# 0 active, 1 incldead, 2 onlydead
|
||||||
incldead: 1
|
incldead: 1
|
||||||
# 0 inclfree, 1 notfree, 2 onlyfree
|
# 0 inclfree, 1 notfree, 2 onlyfree
|
||||||
|
@ -128,6 +128,9 @@ search:
|
||||||
download:
|
download:
|
||||||
selector: a[href^="download.php?id="]
|
selector: a[href^="download.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
|
imdbid:
|
||||||
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
|
attribute: href
|
||||||
size:
|
size:
|
||||||
selector: td:nth-child(4)
|
selector: td:nth-child(4)
|
||||||
date:
|
date:
|
||||||
|
@ -152,6 +155,13 @@ search:
|
||||||
case:
|
case:
|
||||||
img[src="images/t_extern.png"]: 0
|
img[src="images/t_extern.png"]: 0
|
||||||
"*": 1
|
"*": 1
|
||||||
|
genre:
|
||||||
|
selector: td div
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "Genre: (.+?)$"
|
||||||
|
description:
|
||||||
|
text: "{{ .Result.genre }}"
|
||||||
minimumratio:
|
minimumratio:
|
||||||
text: 1.0
|
text: 1.0
|
||||||
# TorrentTrader-Ro 3.0
|
# TorrentTrader-Ro 3.0
|
||||||
|
|
|
@ -184,7 +184,7 @@
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["q", "imdbid", "tmdbid", "traktid", "doubanid"]
|
"enum": ["q", "imdbid", "tmdbid", "traktid", "doubanid", "genre"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music-search": {
|
"music-search": {
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["q", "album", "artist", "label", "track", "year"]
|
"enum": ["q", "album", "artist", "label", "track", "year", "genre"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"book-search": {
|
"book-search": {
|
||||||
|
|
|
@ -178,8 +178,7 @@ search:
|
||||||
year_desc:
|
year_desc:
|
||||||
optional: true
|
optional: true
|
||||||
selector: year
|
selector: year
|
||||||
genre_desc:
|
genre:
|
||||||
optional: true
|
|
||||||
selector: genres
|
selector: genres
|
||||||
_tagline_desc:
|
_tagline_desc:
|
||||||
optional: true
|
optional: true
|
||||||
|
@ -263,5 +262,5 @@ search:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: "(.+?), $"
|
args: "(.+?), $"
|
||||||
description:
|
description:
|
||||||
text: "{{ if .Result.title_desc }}Title: {{ .Result.title_desc }}</br>{{ else }}{{ end }}{{ if .Result.year_desc }}Year: {{ .Result.year_desc }}</br>{{ else }}{{ end }}{{ if .Result.genre_desc }}Genres: {{ .Result.genre_desc }}</br>{{ else }}{{ end }}{{ if .Result._tagline_desc }}Tagline: {{ .Result._tagline_desc }}</br>{{ else }}{{ end }}{{ if .Result._cast_desc }}Cast: {{ .Result._cast_desc }}</br>{{ else }}{{ end }}{{ if .Result._rating_desc }}Rating: {{ .Result._rating_desc }}</br>{{ else }}{{ end }}{{ if .Result._plot_desc }}Plot: {{ .Result._plot_desc }}</br>{{ else }}{{ end }}{{ if .Result._tag_desc }}Tags: {{ .Result._tag_desc }}</br>{{ else }}{{ end }}{{ if .Result._predate_desc }}PRE: {{ .Result._predate_desc }}</br>{{ else }}{{ end }}{{ if .Result._section_desc }}Section: {{ .Result._section_desc }}{{ else }}{{ end }}"
|
text: "{{ if .Result.title_desc }}Title: {{ .Result.title_desc }}</br>{{ else }}{{ end }}{{ if .Result.year_desc }}Year: {{ .Result.year_desc }}</br>{{ else }}{{ end }}{{ if .Result.genre }}Genres: {{ .Result.genre }}</br>{{ else }}{{ end }}{{ if .Result._tagline_desc }}Tagline: {{ .Result._tagline_desc }}</br>{{ else }}{{ end }}{{ if .Result._cast_desc }}Cast: {{ .Result._cast_desc }}</br>{{ else }}{{ end }}{{ if .Result._rating_desc }}Rating: {{ .Result._rating_desc }}</br>{{ else }}{{ end }}{{ if .Result._plot_desc }}Plot: {{ .Result._plot_desc }}</br>{{ else }}{{ end }}{{ if .Result._tag_desc }}Tags: {{ .Result._tag_desc }}</br>{{ else }}{{ end }}{{ if .Result._predate_desc }}PRE: {{ .Result._predate_desc }}</br>{{ else }}{{ end }}{{ if .Result._section_desc }}Section: {{ .Result._section_desc }}{{ else }}{{ end }}"
|
||||||
# json rartracker api v1
|
# json rartracker api v1
|
||||||
|
|
|
@ -48,7 +48,7 @@ caps:
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
tv-search: [q, season, ep]
|
tv-search: [q, season, ep]
|
||||||
movie-search: [q]
|
movie-search: [q, genre]
|
||||||
music-search: [q]
|
music-search: [q]
|
||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ search:
|
||||||
# 0 active, 1 all, 2 dead, 3 recomended, 4 double, 5 free, 6 MZ releases, 7 Race torrents
|
# 0 active, 1 all, 2 dead, 3 recomended, 4 double, 5 free, 6 MZ releases, 7 Race torrents
|
||||||
# note: option 4 and 5 do not actually filter. everything is returned.
|
# note: option 4 and 5 do not actually filter. everything is returned.
|
||||||
incldead: "{{ if .Config.freeleech }}5{{ else }}1{{ end }}"
|
incldead: "{{ if .Config.freeleech }}5{{ else }}1{{ end }}"
|
||||||
genre: 0
|
genre: "{{ .Query.Genre }}"
|
||||||
# 0 name, 1 descr, 2 both
|
# 0 name, 1 descr, 2 both
|
||||||
blah: 0
|
blah: 0
|
||||||
sort: "{{ .Config.sort }}"
|
sort: "{{ .Config.sort }}"
|
||||||
|
@ -171,6 +171,13 @@ search:
|
||||||
case:
|
case:
|
||||||
"font[color=\"#2A821E\"]:contains(\"x2\")": 2
|
"font[color=\"#2A821E\"]:contains(\"x2\")": 2
|
||||||
"*": 1
|
"*": 1
|
||||||
|
genre:
|
||||||
|
selector: td.torrent:nth-child(2)
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "\\((.+?)\\)"
|
||||||
|
description:
|
||||||
|
text: "{{ .Result.genre }}"
|
||||||
minimumratio:
|
minimumratio:
|
||||||
text: 1.0
|
text: 1.0
|
||||||
minimumseedtime:
|
minimumseedtime:
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace Jackett.Common.Indexers
|
||||||
set => base.configData = value;
|
set => base.configData = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected readonly string[] OptionalFields = { "imdb", "imdbid", "tmdbid", "rageid", "tvdbid", "tvmazeid", "traktid", "doubanid", "poster", "description" };
|
protected readonly string[] OptionalFields = { "imdb", "imdbid", "tmdbid", "rageid", "tvdbid", "tvmazeid", "traktid", "doubanid", "poster", "genre", "description" };
|
||||||
|
|
||||||
private static readonly string[] _SupportedLogicFunctions =
|
private static readonly string[] _SupportedLogicFunctions =
|
||||||
{
|
{
|
||||||
|
@ -1307,7 +1307,7 @@ namespace Jackett.Common.Indexers
|
||||||
variables[".Query.Artist"] = query.Artist;
|
variables[".Query.Artist"] = query.Artist;
|
||||||
variables[".Query.Label"] = query.Label;
|
variables[".Query.Label"] = query.Label;
|
||||||
variables[".Query.Track"] = query.Track;
|
variables[".Query.Track"] = query.Track;
|
||||||
//variables[".Query.Genre"] = query.Genre ?? new List<string>();
|
variables[".Query.Genre"] = query.Genre;
|
||||||
variables[".Query.Episode"] = query.GetEpisodeSearchString();
|
variables[".Query.Episode"] = query.GetEpisodeSearchString();
|
||||||
variables[".Query.Author"] = query.Author;
|
variables[".Query.Author"] = query.Author;
|
||||||
variables[".Query.Title"] = query.Title;
|
variables[".Query.Title"] = query.Title;
|
||||||
|
@ -2080,8 +2080,10 @@ namespace Jackett.Common.Indexers
|
||||||
value = release.DoubanId.ToString();
|
value = release.DoubanId.ToString();
|
||||||
break;
|
break;
|
||||||
case "genre":
|
case "genre":
|
||||||
|
if (release.Genres == null)
|
||||||
|
release.Genres = new List<string>();
|
||||||
release.Genres = release.Genres.Union(value.Split(',')).ToList();
|
release.Genres = release.Genres.Union(value.Split(',')).ToList();
|
||||||
value = release.Genres.ToString();
|
// value = release.Genres.ToString();
|
||||||
break;
|
break;
|
||||||
case "year":
|
case "year":
|
||||||
release.Year = ReleaseInfo.GetBytes(value);
|
release.Year = ReleaseInfo.GetBytes(value);
|
||||||
|
|
|
@ -94,7 +94,7 @@ namespace Jackett.Common.Models.DTO
|
||||||
if (!string.IsNullOrWhiteSpace(request.year))
|
if (!string.IsNullOrWhiteSpace(request.year))
|
||||||
query.Year = int.Parse(request.year);
|
query.Year = int.Parse(request.year);
|
||||||
if (!string.IsNullOrWhiteSpace(request.genre))
|
if (!string.IsNullOrWhiteSpace(request.genre))
|
||||||
query.Genre = request.genre.Split(',');
|
query.Genre = request.genre;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(request.title))
|
if (!string.IsNullOrWhiteSpace(request.title))
|
||||||
query.Title = request.title;
|
query.Title = request.title;
|
||||||
|
|
|
@ -25,7 +25,8 @@ namespace Jackett.Common.Models
|
||||||
ImdbId,
|
ImdbId,
|
||||||
TmdbId,
|
TmdbId,
|
||||||
TraktId,
|
TraktId,
|
||||||
DoubanId
|
DoubanId,
|
||||||
|
Genre
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum MusicSearchParam
|
public enum MusicSearchParam
|
||||||
|
@ -35,7 +36,8 @@ namespace Jackett.Common.Models
|
||||||
Artist,
|
Artist,
|
||||||
Label,
|
Label,
|
||||||
Track,
|
Track,
|
||||||
Year
|
Year,
|
||||||
|
Genre
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum BookSearchParam
|
public enum BookSearchParam
|
||||||
|
@ -72,6 +74,7 @@ namespace Jackett.Common.Models
|
||||||
public bool MovieSearchTmdbAvailable => (MovieSearchParams.Contains(MovieSearchParam.TmdbId));
|
public bool MovieSearchTmdbAvailable => (MovieSearchParams.Contains(MovieSearchParam.TmdbId));
|
||||||
public bool MovieSearchTraktAvailable => (MovieSearchParams.Contains(MovieSearchParam.TraktId));
|
public bool MovieSearchTraktAvailable => (MovieSearchParams.Contains(MovieSearchParam.TraktId));
|
||||||
public bool MovieSearchDoubanAvailable => (MovieSearchParams.Contains(MovieSearchParam.DoubanId));
|
public bool MovieSearchDoubanAvailable => (MovieSearchParams.Contains(MovieSearchParam.DoubanId));
|
||||||
|
public bool MovieSearchGenreAvailable => (MovieSearchParams.Contains(MovieSearchParam.Genre));
|
||||||
|
|
||||||
public List<MusicSearchParam> MusicSearchParams;
|
public List<MusicSearchParam> MusicSearchParams;
|
||||||
public bool MusicSearchAvailable => (MusicSearchParams.Count > 0);
|
public bool MusicSearchAvailable => (MusicSearchParams.Count > 0);
|
||||||
|
@ -80,6 +83,7 @@ namespace Jackett.Common.Models
|
||||||
public bool MusicSearchLabelAvailable => (MusicSearchParams.Contains(MusicSearchParam.Label));
|
public bool MusicSearchLabelAvailable => (MusicSearchParams.Contains(MusicSearchParam.Label));
|
||||||
public bool MusicSearchTrackAvailable => (MusicSearchParams.Contains(MusicSearchParam.Track));
|
public bool MusicSearchTrackAvailable => (MusicSearchParams.Contains(MusicSearchParam.Track));
|
||||||
public bool MusicSearchYearAvailable => (MusicSearchParams.Contains(MusicSearchParam.Year));
|
public bool MusicSearchYearAvailable => (MusicSearchParams.Contains(MusicSearchParam.Year));
|
||||||
|
public bool MusicSearchGenreAvailable => (MusicSearchParams.Contains(MusicSearchParam.Genre));
|
||||||
|
|
||||||
public List<BookSearchParam> BookSearchParams;
|
public List<BookSearchParam> BookSearchParams;
|
||||||
public bool BookSearchAvailable => (BookSearchParams.Count > 0);
|
public bool BookSearchAvailable => (BookSearchParams.Count > 0);
|
||||||
|
@ -219,6 +223,8 @@ namespace Jackett.Common.Models
|
||||||
parameters.Add("traktid");
|
parameters.Add("traktid");
|
||||||
if (MovieSearchDoubanAvailable)
|
if (MovieSearchDoubanAvailable)
|
||||||
parameters.Add("doubanid");
|
parameters.Add("doubanid");
|
||||||
|
if (MovieSearchGenreAvailable)
|
||||||
|
parameters.Add("genre");
|
||||||
return string.Join(",", parameters);
|
return string.Join(",", parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,6 +241,8 @@ namespace Jackett.Common.Models
|
||||||
parameters.Add("track");
|
parameters.Add("track");
|
||||||
if (MusicSearchYearAvailable)
|
if (MusicSearchYearAvailable)
|
||||||
parameters.Add("year");
|
parameters.Add("year");
|
||||||
|
if (MusicSearchGenreAvailable)
|
||||||
|
parameters.Add("genre");
|
||||||
return string.Join(",", parameters);
|
return string.Join(",", parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ namespace Jackett.Common.Models
|
||||||
public string Label { get; set; }
|
public string Label { get; set; }
|
||||||
public string Track { get; set; }
|
public string Track { get; set; }
|
||||||
public int? Year { get; set; }
|
public int? Year { get; set; }
|
||||||
public ICollection<string> Genre { get; set; }
|
public string Genre { get; set; }
|
||||||
|
|
||||||
public string Author { get; set; }
|
public string Author { get; set; }
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
|
@ -141,6 +141,7 @@ namespace Jackett.Common.Models
|
||||||
Artist = Artist,
|
Artist = Artist,
|
||||||
Label = Label,
|
Label = Label,
|
||||||
Track = Track,
|
Track = Track,
|
||||||
|
Genre = Genre,
|
||||||
Year = Year,
|
Year = Year,
|
||||||
Author = Author,
|
Author = Author,
|
||||||
Title = Title,
|
Title = Title,
|
||||||
|
|
Loading…
Reference in New Issue