mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-16 02:02:55 -07:00
commit
47c0c0daf0
15 changed files with 151 additions and 59 deletions
|
@ -32,9 +32,11 @@ namespace PlexRequests.Api.Interfaces
|
||||||
{
|
{
|
||||||
public interface ISickRageApi
|
public interface ISickRageApi
|
||||||
{
|
{
|
||||||
SickRageTvAdd AddSeries(int tvdbId, bool latest, string quality, string apiKey,
|
SickRageTvAdd AddSeries(int tvdbId, int seasoncount, int[] seasons, string quality, string apiKey,
|
||||||
Uri baseUrl);
|
Uri baseUrl);
|
||||||
|
|
||||||
SickRagePing Ping(string apiKey, Uri baseUrl);
|
SickRagePing Ping(string apiKey, Uri baseUrl);
|
||||||
|
|
||||||
|
SickRageTvAdd AddSeason(int tvdbId, int season, string apiKey, Uri baseUrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -36,7 +36,7 @@ namespace PlexRequests.Api.Interfaces
|
||||||
List<SonarrProfile> GetProfiles(string apiKey, Uri baseUrl);
|
List<SonarrProfile> GetProfiles(string apiKey, Uri baseUrl);
|
||||||
|
|
||||||
SonarrAddSeries AddSeries(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath,
|
SonarrAddSeries AddSeries(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath,
|
||||||
bool episodes, string apiKey, Uri baseUrl);
|
int seasonCount, int[] seasons, string apiKey, Uri baseUrl);
|
||||||
|
|
||||||
SystemStatus SystemStatus(string apiKey, Uri baseUrl);
|
SystemStatus SystemStatus(string apiKey, Uri baseUrl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
<Compile Include="Sonarr\SystemStatus.cs" />
|
<Compile Include="Sonarr\SystemStatus.cs" />
|
||||||
<Compile Include="Tv\Authentication.cs" />
|
<Compile Include="Tv\Authentication.cs" />
|
||||||
<Compile Include="Tv\TvMazeSearch.cs" />
|
<Compile Include="Tv\TvMazeSearch.cs" />
|
||||||
|
<Compile Include="Tv\TvMazeSeasons.cs" />
|
||||||
<Compile Include="Tv\TVMazeShow.cs" />
|
<Compile Include="Tv\TVMazeShow.cs" />
|
||||||
<Compile Include="Tv\TvSearchResult.cs" />
|
<Compile Include="Tv\TvSearchResult.cs" />
|
||||||
<Compile Include="Tv\TvShow.cs" />
|
<Compile Include="Tv\TvShow.cs" />
|
||||||
|
|
|
@ -23,5 +23,6 @@ namespace PlexRequests.Api.Models.Tv
|
||||||
public string summary { get; set; }
|
public string summary { get; set; }
|
||||||
public int updated { get; set; }
|
public int updated { get; set; }
|
||||||
public Links _links { get; set; }
|
public Links _links { get; set; }
|
||||||
|
public int seasonCount { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
13
PlexRequests.Api.Models/Tv/TvMazeSeasons.cs
Normal file
13
PlexRequests.Api.Models/Tv/TvMazeSeasons.cs
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace PlexRequests.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class TvMazeSeasons : TvMazeShow
|
||||||
|
{
|
||||||
|
public int number { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -43,7 +43,7 @@ namespace PlexRequests.Api.Mocks
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SonarrAddSeries AddSeries(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath, bool episodes,
|
public SonarrAddSeries AddSeries(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath, int seasonCount, int[] seasons,
|
||||||
string apiKey, Uri baseUrl)
|
string apiKey, Uri baseUrl)
|
||||||
{
|
{
|
||||||
var json = MockApiData.Sonarr_AddSeriesResult;
|
var json = MockApiData.Sonarr_AddSeriesResult;
|
||||||
|
|
|
@ -28,9 +28,11 @@
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
using PlexRequests.Api.Interfaces;
|
using PlexRequests.Api.Interfaces;
|
||||||
using PlexRequests.Api.Models.SickRage;
|
using PlexRequests.Api.Models.SickRage;
|
||||||
|
using PlexRequests.Helpers;
|
||||||
using RestSharp;
|
using RestSharp;
|
||||||
|
|
||||||
namespace PlexRequests.Api
|
namespace PlexRequests.Api
|
||||||
|
@ -47,13 +49,11 @@ namespace PlexRequests.Api
|
||||||
private ApiRequest Api { get; }
|
private ApiRequest Api { get; }
|
||||||
|
|
||||||
|
|
||||||
public SickRageTvAdd AddSeries(int tvdbId, bool latest, string quality, string apiKey,
|
public SickRageTvAdd AddSeries(int tvdbId, int seasonCount, int[] seasons, string quality, string apiKey,
|
||||||
Uri baseUrl)
|
Uri baseUrl)
|
||||||
{
|
{
|
||||||
string status;
|
var futureStatus = seasons.Length > 0 && !seasons.Any(x => x == seasonCount) ? SickRageStatus.Skipped : SickRageStatus.Wanted;
|
||||||
var futureStatus = SickRageStatus.Wanted;
|
var status = seasons.Length > 0 ? SickRageStatus.Skipped : SickRageStatus.Wanted;
|
||||||
|
|
||||||
status = latest ? SickRageStatus.Skipped : SickRageStatus.Wanted;
|
|
||||||
|
|
||||||
var request = new RestRequest
|
var request = new RestRequest
|
||||||
{
|
{
|
||||||
|
@ -71,6 +71,17 @@ namespace PlexRequests.Api
|
||||||
|
|
||||||
var obj = Api.Execute<SickRageTvAdd>(request, baseUrl);
|
var obj = Api.Execute<SickRageTvAdd>(request, baseUrl);
|
||||||
|
|
||||||
|
if (seasons.Length > 0 && obj.result != "failure")
|
||||||
|
{
|
||||||
|
//handle the seasons requested
|
||||||
|
foreach (int s in seasons)
|
||||||
|
{
|
||||||
|
var result = AddSeason(tvdbId, s, apiKey, baseUrl);
|
||||||
|
Log.Trace("SickRage adding season results: ");
|
||||||
|
Log.Trace(result.DumpJson());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,5 +98,22 @@ namespace PlexRequests.Api
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SickRageTvAdd AddSeason(int tvdbId, int season, string apiKey, Uri baseUrl)
|
||||||
|
{
|
||||||
|
var request = new RestRequest
|
||||||
|
{
|
||||||
|
Resource = "/api/{apiKey}/?cmd=episode.setstatus",
|
||||||
|
Method = Method.GET
|
||||||
|
};
|
||||||
|
request.AddUrlSegment("apiKey", apiKey);
|
||||||
|
request.AddQueryParameter("tvdbid", tvdbId.ToString());
|
||||||
|
request.AddQueryParameter("season", season.ToString());
|
||||||
|
request.AddQueryParameter("status", SickRageStatus.Wanted);
|
||||||
|
|
||||||
|
var obj = Api.Execute<SickRageTvAdd>(request, baseUrl);
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -26,7 +26,7 @@
|
||||||
#endregion
|
#endregion
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
using PlexRequests.Api.Interfaces;
|
using PlexRequests.Api.Interfaces;
|
||||||
using PlexRequests.Api.Models.Sonarr;
|
using PlexRequests.Api.Models.Sonarr;
|
||||||
|
@ -54,7 +54,7 @@ namespace PlexRequests.Api
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SonarrAddSeries AddSeries(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath, bool episodes, string apiKey, Uri baseUrl)
|
public SonarrAddSeries AddSeries(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath, int seasonCount, int[] seasons, string apiKey, Uri baseUrl)
|
||||||
{
|
{
|
||||||
|
|
||||||
var request = new RestRequest
|
var request = new RestRequest
|
||||||
|
@ -64,24 +64,28 @@ namespace PlexRequests.Api
|
||||||
};
|
};
|
||||||
|
|
||||||
var options = new SonarrAddSeries();
|
var options = new SonarrAddSeries();
|
||||||
if (episodes)
|
|
||||||
{
|
|
||||||
options.addOptions = new AddOptions
|
//I'm fairly certain we won't need this logic anymore since we're manually adding the seasons
|
||||||
{
|
//if (seasons.Length == 0)
|
||||||
ignoreEpisodesWithFiles = true,
|
//{
|
||||||
ignoreEpisodesWithoutFiles = true,
|
// options.addOptions = new AddOptions
|
||||||
searchForMissingEpisodes = false
|
// {
|
||||||
};
|
// ignoreEpisodesWithFiles = true,
|
||||||
}
|
// ignoreEpisodesWithoutFiles = true,
|
||||||
else
|
// searchForMissingEpisodes = false
|
||||||
{
|
// };
|
||||||
options.addOptions = new AddOptions
|
//}
|
||||||
{
|
//else
|
||||||
ignoreEpisodesWithFiles = false,
|
//{
|
||||||
searchForMissingEpisodes = true,
|
// options.addOptions = new AddOptions
|
||||||
ignoreEpisodesWithoutFiles = false
|
// {
|
||||||
};
|
// ignoreEpisodesWithFiles = false,
|
||||||
}
|
// ignoreEpisodesWithoutFiles = false,
|
||||||
|
// searchForMissingEpisodes = true
|
||||||
|
// };
|
||||||
|
//}
|
||||||
|
|
||||||
options.seasonFolder = seasonFolders;
|
options.seasonFolder = seasonFolders;
|
||||||
options.title = title;
|
options.title = title;
|
||||||
options.qualityProfileId = qualityId;
|
options.qualityProfileId = qualityId;
|
||||||
|
@ -90,6 +94,15 @@ namespace PlexRequests.Api
|
||||||
options.seasons = new List<Season>();
|
options.seasons = new List<Season>();
|
||||||
options.rootFolderPath = rootPath;
|
options.rootFolderPath = rootPath;
|
||||||
|
|
||||||
|
for (var i = 1; i <= seasonCount; i++)
|
||||||
|
{
|
||||||
|
var season = new Season
|
||||||
|
{
|
||||||
|
seasonNumber = i,
|
||||||
|
monitored = seasons.Length == 0 || seasons.Any(x => x == i)
|
||||||
|
};
|
||||||
|
options.seasons.Add(season);
|
||||||
|
}
|
||||||
|
|
||||||
request.AddHeader("X-Api-Key", apiKey);
|
request.AddHeader("X-Api-Key", apiKey);
|
||||||
request.AddJsonBody(options);
|
request.AddJsonBody(options);
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#endregion
|
#endregion
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
|
|
||||||
using PlexRequests.Api.Models.Tv;
|
using PlexRequests.Api.Models.Tv;
|
||||||
|
@ -79,7 +79,25 @@ namespace PlexRequests.Api
|
||||||
request.AddUrlSegment("id", theTvDbId.ToString());
|
request.AddUrlSegment("id", theTvDbId.ToString());
|
||||||
request.AddHeader("Content-Type", "application/json");
|
request.AddHeader("Content-Type", "application/json");
|
||||||
|
|
||||||
return Api.Execute<TvMazeShow>(request, new Uri(Uri));
|
var obj = Api.Execute<TvMazeShow>(request, new Uri(Uri));
|
||||||
|
obj.seasonCount = GetSeasonCount(obj.id);
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetSeasonCount(int id)
|
||||||
|
{
|
||||||
|
var request = new RestRequest
|
||||||
|
{
|
||||||
|
Method = Method.GET,
|
||||||
|
Resource = "shows/{id}/seasons"
|
||||||
|
};
|
||||||
|
request.AddUrlSegment("id", id.ToString());
|
||||||
|
request.AddHeader("Content-Type", "application/json");
|
||||||
|
|
||||||
|
var obj = Api.Execute<List<TvMazeSeasons>>(request, new Uri(Uri));
|
||||||
|
var seasons = obj.Select(x => x.number > 0);
|
||||||
|
return seasons.Count();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,6 @@ namespace PlexRequests.Core
|
||||||
Available = r.Available,
|
Available = r.Available,
|
||||||
ImdbId = show.externals.imdb,
|
ImdbId = show.externals.imdb,
|
||||||
Issues = r.Issues,
|
Issues = r.Issues,
|
||||||
LatestTv = r.LatestTv,
|
|
||||||
OtherMessage = r.OtherMessage,
|
OtherMessage = r.OtherMessage,
|
||||||
Overview = show.summary.RemoveHtml(),
|
Overview = show.summary.RemoveHtml(),
|
||||||
RequestedBy = r.RequestedBy,
|
RequestedBy = r.RequestedBy,
|
||||||
|
|
|
@ -23,8 +23,9 @@ namespace PlexRequests.Store
|
||||||
public bool Available { get; set; }
|
public bool Available { get; set; }
|
||||||
public IssueState Issues { get; set; }
|
public IssueState Issues { get; set; }
|
||||||
public string OtherMessage { get; set; }
|
public string OtherMessage { get; set; }
|
||||||
public bool LatestTv { get; set; }
|
|
||||||
public string AdminNote { get; set; }
|
public string AdminNote { get; set; }
|
||||||
|
public int[] SeasonList { get; set; }
|
||||||
|
public int SeasonCount { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum RequestType
|
public enum RequestType
|
||||||
|
|
|
@ -39,9 +39,14 @@ $(document).on("click", ".dropdownTv", function (e) {
|
||||||
var $form = $('#form' + buttonId);
|
var $form = $('#form' + buttonId);
|
||||||
var data = $form.serialize();
|
var data = $form.serialize();
|
||||||
var seasons = $(this).attr("season-select");
|
var seasons = $(this).attr("season-select");
|
||||||
if (seasons === "1") {
|
if (seasons === "2") {
|
||||||
// Send over the latest
|
// Send over the latest
|
||||||
data = data + "&latest=true";
|
data = data + "&seasons=latest";
|
||||||
|
}
|
||||||
|
if (seasons === "1") {
|
||||||
|
// Send over the first season
|
||||||
|
data = data + "&seasons=first";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var type = $form.prop('method');
|
var type = $form.prop('method');
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace PlexRequests.UI.Helpers
|
||||||
int qualityProfile;
|
int qualityProfile;
|
||||||
int.TryParse(sonarrSettings.QualityProfile, out qualityProfile);
|
int.TryParse(sonarrSettings.QualityProfile, out qualityProfile);
|
||||||
var result = SonarrApi.AddSeries(model.ProviderId, model.Title, qualityProfile,
|
var result = SonarrApi.AddSeries(model.ProviderId, model.Title, qualityProfile,
|
||||||
sonarrSettings.SeasonFolders, sonarrSettings.RootPath, model.LatestTv, sonarrSettings.ApiKey,
|
sonarrSettings.SeasonFolders, sonarrSettings.RootPath, model.SeasonCount, model.SeasonList, sonarrSettings.ApiKey,
|
||||||
sonarrSettings.FullUri);
|
sonarrSettings.FullUri);
|
||||||
|
|
||||||
Log.Trace("Sonarr Add Result: ");
|
Log.Trace("Sonarr Add Result: ");
|
||||||
|
@ -65,7 +65,7 @@ namespace PlexRequests.UI.Helpers
|
||||||
|
|
||||||
public SickRageTvAdd SendToSickRage(SickRageSettings sickRageSettings, RequestedModel model)
|
public SickRageTvAdd SendToSickRage(SickRageSettings sickRageSettings, RequestedModel model)
|
||||||
{
|
{
|
||||||
var result = SickrageApi.AddSeries(model.ProviderId, model.LatestTv, sickRageSettings.QualityProfile,
|
var result = SickrageApi.AddSeries(model.ProviderId, model.SeasonCount, model.SeasonList, sickRageSettings.QualityProfile,
|
||||||
sickRageSettings.ApiKey, sickRageSettings.FullUri);
|
sickRageSettings.ApiKey, sickRageSettings.FullUri);
|
||||||
|
|
||||||
Log.Trace("SickRage Add Result: ");
|
Log.Trace("SickRage Add Result: ");
|
||||||
|
|
|
@ -79,7 +79,7 @@ namespace PlexRequests.UI.Modules
|
||||||
Get["movie/playing"] = parameters => CurrentlyPlayingMovies();
|
Get["movie/playing"] = parameters => CurrentlyPlayingMovies();
|
||||||
|
|
||||||
Post["request/movie"] = parameters => RequestMovie((int)Request.Form.movieId);
|
Post["request/movie"] = parameters => RequestMovie((int)Request.Form.movieId);
|
||||||
Post["request/tv"] = parameters => RequestTvShow((int)Request.Form.tvId, (bool)Request.Form.latest);
|
Post["request/tv"] = parameters => RequestTvShow((int)Request.Form.tvId, (string)Request.Form.seasons);
|
||||||
}
|
}
|
||||||
private TheMovieDbApi MovieApi { get; }
|
private TheMovieDbApi MovieApi { get; }
|
||||||
private INotificationService NotificationService { get; }
|
private INotificationService NotificationService { get; }
|
||||||
|
@ -263,7 +263,7 @@ namespace PlexRequests.UI.Modules
|
||||||
/// <param name="showId">The show identifier.</param>
|
/// <param name="showId">The show identifier.</param>
|
||||||
/// <param name="latest">if set to <c>true</c> [latest].</param>
|
/// <param name="latest">if set to <c>true</c> [latest].</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private Response RequestTvShow(int showId, bool latest)
|
private Response RequestTvShow(int showId, string seasons)
|
||||||
{
|
{
|
||||||
if (RequestService.CheckRequest(showId))
|
if (RequestService.CheckRequest(showId))
|
||||||
{
|
{
|
||||||
|
@ -289,7 +289,6 @@ namespace PlexRequests.UI.Modules
|
||||||
|
|
||||||
DateTime firstAir;
|
DateTime firstAir;
|
||||||
DateTime.TryParse(showInfo.premiered, out firstAir);
|
DateTime.TryParse(showInfo.premiered, out firstAir);
|
||||||
|
|
||||||
var model = new RequestedModel
|
var model = new RequestedModel
|
||||||
{
|
{
|
||||||
ProviderId = showInfo.externals?.thetvdb ?? 0,
|
ProviderId = showInfo.externals?.thetvdb ?? 0,
|
||||||
|
@ -303,10 +302,21 @@ namespace PlexRequests.UI.Modules
|
||||||
Approved = false,
|
Approved = false,
|
||||||
RequestedBy = Session[SessionKeys.UsernameKey].ToString(),
|
RequestedBy = Session[SessionKeys.UsernameKey].ToString(),
|
||||||
Issues = IssueState.None,
|
Issues = IssueState.None,
|
||||||
LatestTv = latest,
|
ImdbId = showInfo.externals?.imdb ?? string.Empty,
|
||||||
ImdbId = showInfo.externals?.imdb ?? string.Empty
|
SeasonCount = showInfo.seasonCount
|
||||||
};
|
};
|
||||||
|
var seasonsList = new List<int>();
|
||||||
|
switch (seasons)
|
||||||
|
{
|
||||||
|
case "first":
|
||||||
|
seasonsList.Add(1);
|
||||||
|
break;
|
||||||
|
case "latest":
|
||||||
|
seasonsList.Add(model.SeasonCount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
model.SeasonList = seasonsList.ToArray();
|
||||||
|
|
||||||
var settings = PrService.GetSettings();
|
var settings = PrService.GetSettings();
|
||||||
if (!settings.RequireApproval)
|
if (!settings.RequireApproval)
|
||||||
|
@ -361,23 +371,23 @@ namespace PlexRequests.UI.Modules
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Response SendToSickRage(SickRageSettings sickRageSettings, RequestedModel model)
|
//private Response SendToSickRage(SickRageSettings sickRageSettings, RequestedModel model)
|
||||||
{
|
//{
|
||||||
var result = SickrageApi.AddSeries(model.ProviderId, model.LatestTv, sickRageSettings.QualityProfile,
|
// var result = SickrageApi.AddSeries(model.ProviderId, model.SeasonCount, model.SeasonList, sickRageSettings.QualityProfile,
|
||||||
sickRageSettings.ApiKey, sickRageSettings.FullUri);
|
// sickRageSettings.ApiKey, sickRageSettings.FullUri);
|
||||||
|
|
||||||
Log.Trace("SickRage Result: ");
|
// Log.Trace("SickRage Result: ");
|
||||||
Log.Trace(result.DumpJson());
|
// Log.Trace(result.DumpJson());
|
||||||
|
|
||||||
if (result?.result == "success")
|
// if (result?.result == "success")
|
||||||
{
|
// {
|
||||||
model.Approved = true;
|
// model.Approved = true;
|
||||||
Log.Debug("Adding tv to database requests (No approval required & SickRage)");
|
// Log.Debug("Adding tv to database requests (No approval required & SickRage)");
|
||||||
RequestService.AddRequest(model);
|
// RequestService.AddRequest(model);
|
||||||
|
|
||||||
return Response.AsJson(new JsonResponseModel { Result = true });
|
// return Response.AsJson(new JsonResponseModel { Result = true });
|
||||||
}
|
// }
|
||||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Something went wrong adding the movie to SickRage! Please check your settings." });
|
// return Response.AsJson(new JsonResponseModel { Result = false, Message = "Something went wrong adding the movie to SickRage! Please check your settings." });
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -84,7 +84,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2 col-sm-push-3">
|
<div class="col-sm-2 col-sm-push-3">
|
||||||
<form method="POST" action="/search/request/{{type}}" id="form{{id}}">
|
<form method="POST" action="/search/request/{{type}}" id="form{{id}}">
|
||||||
<input name="{{type}}Id" type="text" value="{{id}}" hidden="hidden" />
|
<input name="{{type}}Id" type="text" value="{{id}}" hidden="hidden" />
|
||||||
{{#if_eq type "movie"}}
|
{{#if_eq type "movie"}}
|
||||||
<button id="{{id}}" style="text-align: right" class="btn btn-primary-outline requestMovie" type="submit"><i class="fa fa-plus"></i> Request</button>
|
<button id="{{id}}" style="text-align: right" class="btn btn-primary-outline requestMovie" type="submit"><i class="fa fa-plus"></i> Request</button>
|
||||||
{{/if_eq}}
|
{{/if_eq}}
|
||||||
|
@ -96,7 +96,8 @@
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
|
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
|
||||||
<li><a id="{{id}}" season-select="0" class="dropdownTv " href="#">All Seasons</a></li>
|
<li><a id="{{id}}" season-select="0" class="dropdownTv " href="#">All Seasons</a></li>
|
||||||
<li><a id="{{id}}" season-select="1" class="dropdownTv" href="#">Latest Season</a></li>
|
<li><a id="{{id}}" season-select="1" class="dropdownTv" href="#">First Season</a></li>
|
||||||
|
<li><a id="{{id}}" season-select="2" class="dropdownTv" href="#">Latest Season</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{{/if_eq}}
|
{{/if_eq}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue