From d72436437a30b748ea22bed2b20077f905036cf2 Mon Sep 17 00:00:00 2001 From: "Jamie.Rees" Date: Fri, 13 Jan 2017 16:27:17 +0000 Subject: [PATCH 1/3] Added a netflix api --- Ombi.Api.Interfaces/INetflixApi.cs | 36 +++++++++++ .../Ombi.Api.Interfaces.csproj | 1 + Ombi.Api.Models/Netflix/NetflixMovieResult.cs | 62 +++++++++++++++++++ Ombi.Api.Models/Ombi.Api.Models.csproj | 1 + Ombi.Api/NetflixRouletteApi.cs | 59 ++++++++++++++++++ Ombi.Api/Ombi.Api.csproj | 1 + 6 files changed, 160 insertions(+) create mode 100644 Ombi.Api.Interfaces/INetflixApi.cs create mode 100644 Ombi.Api.Models/Netflix/NetflixMovieResult.cs create mode 100644 Ombi.Api/NetflixRouletteApi.cs diff --git a/Ombi.Api.Interfaces/INetflixApi.cs b/Ombi.Api.Interfaces/INetflixApi.cs new file mode 100644 index 000000000..ebdb169fe --- /dev/null +++ b/Ombi.Api.Interfaces/INetflixApi.cs @@ -0,0 +1,36 @@ +#region Copyright +// /************************************************************************ +// Copyright (c) 2017 Jamie Rees +// File: INetflixApi.cs +// Created By: Jamie Rees +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// ************************************************************************/ +#endregion + +using Ombi.Api.Models.Netflix; + +namespace Ombi.Api.Interfaces +{ + public interface INetflixApi + { + NetflixMovieResult GetMovies(string movieName, string year = null) + } +} \ No newline at end of file diff --git a/Ombi.Api.Interfaces/Ombi.Api.Interfaces.csproj b/Ombi.Api.Interfaces/Ombi.Api.Interfaces.csproj index c33bbf0c2..201d97b71 100644 --- a/Ombi.Api.Interfaces/Ombi.Api.Interfaces.csproj +++ b/Ombi.Api.Interfaces/Ombi.Api.Interfaces.csproj @@ -49,6 +49,7 @@ + diff --git a/Ombi.Api.Models/Netflix/NetflixMovieResult.cs b/Ombi.Api.Models/Netflix/NetflixMovieResult.cs new file mode 100644 index 000000000..71007d34f --- /dev/null +++ b/Ombi.Api.Models/Netflix/NetflixMovieResult.cs @@ -0,0 +1,62 @@ +#region Copyright +// /************************************************************************ +// Copyright (c) 2017 Jamie Rees +// File: NetflixMovieResult.cs +// Created By: Jamie Rees +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// ************************************************************************/ +#endregion + +using Newtonsoft.Json; + +namespace Ombi.Api.Models.Netflix +{ + public class NetflixMovieResult + { + [JsonProperty(PropertyName= "unit")] + public int Unit { get; set; } + + [JsonProperty(PropertyName = "show_id")] + public int ShowId { get; set; } + + [JsonProperty(PropertyName = "show_title")] + public string Title { get; set; } + + [JsonProperty(PropertyName = "release_year")] + public string ReleaseYear { get; set; } + [JsonProperty(PropertyName = "rating")] + public string Rating { get; set; } + [JsonProperty(PropertyName = "Category")] + public string Category { get; set; } + [JsonProperty(PropertyName = "show_cast")] + public string ShowCast { get; set; } + [JsonProperty(PropertyName = "director")] + public string Director { get; set; } + [JsonProperty(PropertyName = "summary")] + public string Summary { get; set; } + [JsonProperty(PropertyName = "poster")] + public string Poster { get; set; } + [JsonProperty(PropertyName = "mediatype")] + public string Mediatype { get; set; } + [JsonProperty(PropertyName = "runtime")] + public string Runtime { get; set; } + } +} \ No newline at end of file diff --git a/Ombi.Api.Models/Ombi.Api.Models.csproj b/Ombi.Api.Models/Ombi.Api.Models.csproj index 025115c83..32a55c507 100644 --- a/Ombi.Api.Models/Ombi.Api.Models.csproj +++ b/Ombi.Api.Models/Ombi.Api.Models.csproj @@ -61,6 +61,7 @@ + diff --git a/Ombi.Api/NetflixRouletteApi.cs b/Ombi.Api/NetflixRouletteApi.cs new file mode 100644 index 000000000..ee556a410 --- /dev/null +++ b/Ombi.Api/NetflixRouletteApi.cs @@ -0,0 +1,59 @@ +#region Copyright +// /************************************************************************ +// Copyright (c) 2017 Jamie Rees +// File: NetflixRouletteApi.cs +// Created By: Jamie Rees +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// ************************************************************************/ +#endregion + +using System; +using Newtonsoft.Json; +using Ombi.Api.Interfaces; +using Ombi.Api.Models.Netflix; +using RestSharp; + +namespace Ombi.Api +{ + public class NetflixRouletteApi : INetflixApi + { + public NetflixRouletteApi(IApiRequest req) + { + Api = req; + } + + private IApiRequest Api { get; } + private Uri Endpoint => new Uri("http://netflixroulette.net/api/api.php"); + + public NetflixMovieResult GetMovies(string movieName, string year = null) + { + var request = new RestRequest(); + request.AddQueryParameter("title", movieName); + if (!string.IsNullOrEmpty(year)) + { + request.AddQueryParameter("year", year); + } + var result = Api.Execute(request, Endpoint); + + return JsonConvert.DeserializeObject(result.Content); + } + } +} \ No newline at end of file diff --git a/Ombi.Api/Ombi.Api.csproj b/Ombi.Api/Ombi.Api.csproj index 615f5ac3a..b9151ca5d 100644 --- a/Ombi.Api/Ombi.Api.csproj +++ b/Ombi.Api/Ombi.Api.csproj @@ -69,6 +69,7 @@ + From 18b12f1a97916d2b91fb2e0b9435f5c9f6f0d615 Mon Sep 17 00:00:00 2001 From: "Jamie.Rees" Date: Mon, 16 Jan 2017 08:03:42 +0000 Subject: [PATCH 2/3] Fixed #934 --- Ombi.Api.Interfaces/INetflixApi.cs | 2 +- Ombi.UI/Content/search.js | 2 +- Ombi.UI/Views/Search/Index.cshtml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Ombi.Api.Interfaces/INetflixApi.cs b/Ombi.Api.Interfaces/INetflixApi.cs index ebdb169fe..9e1a02b6b 100644 --- a/Ombi.Api.Interfaces/INetflixApi.cs +++ b/Ombi.Api.Interfaces/INetflixApi.cs @@ -31,6 +31,6 @@ namespace Ombi.Api.Interfaces { public interface INetflixApi { - NetflixMovieResult GetMovies(string movieName, string year = null) + NetflixMovieResult GetMovies(string movieName, string year = null); } } \ No newline at end of file diff --git a/Ombi.UI/Content/search.js b/Ombi.UI/Content/search.js index 443b1c050..674660b11 100644 --- a/Ombi.UI/Content/search.js +++ b/Ombi.UI/Content/search.js @@ -83,7 +83,7 @@ $(function () { }); // Click TV dropdown option - $(document).on("click", ".requestTv", function (e) { + $(document).on("click", ".dropdownTv", function (e) { e.preventDefault(); var buttonId = e.target.id; if ($("#" + buttonId).attr('disabled')) { diff --git a/Ombi.UI/Views/Search/Index.cshtml b/Ombi.UI/Views/Search/Index.cshtml index 8dc8fb4c2..1ec29775f 100644 --- a/Ombi.UI/Views/Search/Index.cshtml +++ b/Ombi.UI/Views/Search/Index.cshtml @@ -176,7 +176,7 @@
{{else}} {{#if_eq enableTvRequestsForOnlySeries true}} - + {{else}}