diff --git a/RequestPlex.Core/RequestPlex.Core.csproj b/RequestPlex.Core/RequestPlex.Core.csproj index 958a2fed9..b105c28e8 100644 --- a/RequestPlex.Core/RequestPlex.Core.csproj +++ b/RequestPlex.Core/RequestPlex.Core.csproj @@ -64,6 +64,9 @@ + + + diff --git a/RequestPlex.Core/SettingModels/CouchPotatoSettings.cs b/RequestPlex.Core/SettingModels/CouchPotatoSettings.cs new file mode 100644 index 000000000..ffa6c5896 --- /dev/null +++ b/RequestPlex.Core/SettingModels/CouchPotatoSettings.cs @@ -0,0 +1,10 @@ +namespace RequestPlex.Core.SettingModels +{ + public class CouchPotatoSettings : Settings + { + public string Ip { get; set; } + public int Port { get; set; } + public string ApiKey { get; set; } + public bool Enabled { get; set; } + } +} \ No newline at end of file diff --git a/RequestPlex.Core/SettingModels/RequestPlexSettings.cs b/RequestPlex.Core/SettingModels/RequestPlexSettings.cs index c28c933f0..0e603b91a 100644 --- a/RequestPlex.Core/SettingModels/RequestPlexSettings.cs +++ b/RequestPlex.Core/SettingModels/RequestPlexSettings.cs @@ -31,5 +31,9 @@ namespace RequestPlex.Core.SettingModels public int Port { get; set; } public bool UserAuthentication { get; set; } public string PlexAuthToken { get; set; } + public bool SearchForMovies { get; set; } + public bool SearchForTvShows { get; set; } + public bool RequireApprovial { get; set; } + public int WeeklyRequestLimit { get; set; } } } diff --git a/RequestPlex.Core/SettingModels/SickRageSettings.cs b/RequestPlex.Core/SettingModels/SickRageSettings.cs new file mode 100644 index 000000000..be1dd6d85 --- /dev/null +++ b/RequestPlex.Core/SettingModels/SickRageSettings.cs @@ -0,0 +1,10 @@ +namespace RequestPlex.Core.SettingModels +{ + public class SickRageSettings : Settings + { + public string Ip { get; set; } + public int Port { get; set; } + public string ApiKey { get; set; } + public bool Enabled { get; set; } + } +} \ No newline at end of file diff --git a/RequestPlex.Core/SettingModels/SonarrSettings.cs b/RequestPlex.Core/SettingModels/SonarrSettings.cs new file mode 100644 index 000000000..fb6f8ecfa --- /dev/null +++ b/RequestPlex.Core/SettingModels/SonarrSettings.cs @@ -0,0 +1,10 @@ +namespace RequestPlex.Core.SettingModels +{ + public class SonarrSettings : Settings + { + public string Ip { get; set; } + public int Port { get; set; } + public string ApiKey { get; set; } + public bool Enabled { get; set; } + } +} \ No newline at end of file diff --git a/RequestPlex.Helpers/AssemblyHelper.cs b/RequestPlex.Helpers/AssemblyHelper.cs new file mode 100644 index 000000000..fe6a281b8 --- /dev/null +++ b/RequestPlex.Helpers/AssemblyHelper.cs @@ -0,0 +1,15 @@ +using System.Diagnostics; +using System.Reflection; + +namespace RequestPlex.Helpers +{ + public class AssemblyHelper + { + public static string GetAssemblyVersion() + { + var assembly = Assembly.GetExecutingAssembly(); + var fvi = FileVersionInfo.GetVersionInfo(assembly.Location); + return fvi.FileVersion; + } + } +} \ No newline at end of file diff --git a/RequestPlex.Helpers/RequestPlex.Helpers.csproj b/RequestPlex.Helpers/RequestPlex.Helpers.csproj index 4fd02c8e9..271cce512 100644 --- a/RequestPlex.Helpers/RequestPlex.Helpers.csproj +++ b/RequestPlex.Helpers/RequestPlex.Helpers.csproj @@ -45,6 +45,7 @@ + diff --git a/RequestPlex.Store/RequestedModel.cs b/RequestPlex.Store/RequestedModel.cs index d62cd9b7c..afadebcd0 100644 --- a/RequestPlex.Store/RequestedModel.cs +++ b/RequestPlex.Store/RequestedModel.cs @@ -16,6 +16,10 @@ namespace RequestPlex.Store public DateTime ReleaseDate { get; set; } public RequestType Type { get; set; } public string Status { get; set; } + public string RequestedStatus { get; set; } + public string RequestedBy { get; set; } + public DateTime RequestedDate { get; set; } + } public enum RequestType diff --git a/RequestPlex.Store/SqlTables.sql b/RequestPlex.Store/SqlTables.sql index 820a090f7..97e1e053e 100644 --- a/RequestPlex.Store/SqlTables.sql +++ b/RequestPlex.Store/SqlTables.sql @@ -26,7 +26,12 @@ CREATE TABLE IF NOT EXISTS Requested Title varchar(50) NOT NULL, PosterPath varchar(50) NOT NULL, ReleaseDate varchar(50) NOT NULL, - Status varchar(50) NOT NULL + Status varchar(50) NOT NULL, + RequestStatus varchar(50) NOT NULL, + RequestedBy varchar(50) NOT NULL, + RequestedDate varchar(50) NOT NULL, + Available varchar(50) NOT NULL + ); CREATE TABLE IF NOT EXISTS GlobalSettings diff --git a/RequestPlex.UI/Modules/AdminModule.cs b/RequestPlex.UI/Modules/AdminModule.cs index ef549580f..7e7709d54 100644 --- a/RequestPlex.UI/Modules/AdminModule.cs +++ b/RequestPlex.UI/Modules/AdminModule.cs @@ -30,6 +30,7 @@ using System.Web.UI; using Nancy; using Nancy.Extensions; using Nancy.ModelBinding; +using Nancy.Responses.Negotiation; using Nancy.Security; using RequestPlex.Api; @@ -60,19 +61,12 @@ namespace RequestPlex.UI.Modules } - private Response Admin() + private Negotiator Admin() { dynamic model = new ExpandoObject(); - model.Errored = Request.Query.error.HasValue; - model.Port = null; - var settings = Service.GetSettings(); - if (settings != null) - { - model.Port = settings.Port; - model.PlexAuthToken = settings.PlexAuthToken; - } + model = settings; return View["/Admin/Settings", model]; } @@ -112,7 +106,7 @@ namespace RequestPlex.UI.Modules Service.SaveSettings(newModel); } - return Context.GetRedirect("~/admin"); + return Response.AsJson(new {Result = true, AuthToken = model.user.authentication_token}); } diff --git a/RequestPlex.UI/Program.cs b/RequestPlex.UI/Program.cs index 1d863eee8..5f24c7767 100644 --- a/RequestPlex.UI/Program.cs +++ b/RequestPlex.UI/Program.cs @@ -1,11 +1,9 @@ using System; - +using System.Diagnostics; using Microsoft.Owin.Hosting; using Mono.Data.Sqlite; -using Nancy.Hosting.Self; - using RequestPlex.Core; using RequestPlex.Core.SettingModels; using RequestPlex.Helpers; @@ -18,6 +16,8 @@ namespace RequestPlex.UI { static void Main(string[] args) { + var assemblyVer = AssemblyHelper.GetAssemblyVersion(); + Console.WriteLine($"Version: {assemblyVer}"); var uri = "http://localhost:3579/"; var s = new Setup(); s.SetupDb(); @@ -32,8 +32,8 @@ namespace RequestPlex.UI using (WebApp.Start(uri)) { - Console.WriteLine("Running on {0}", uri); - Console.WriteLine("Press enter to exit"); + Console.WriteLine($"Request Plex is running on {uri}"); + Console.WriteLine("Press any key to exit"); Console.ReadLine(); } } diff --git a/RequestPlex.UI/Views/Admin/Settings.cshtml b/RequestPlex.UI/Views/Admin/Settings.cshtml index 0661fe84e..d128cc31c 100644 --- a/RequestPlex.UI/Views/Admin/Settings.cshtml +++ b/RequestPlex.UI/Views/Admin/Settings.cshtml @@ -19,6 +19,7 @@ { authToken = Model.PlexAuthToken; } + }
@@ -26,10 +27,52 @@ Request Plex Settings
+
+ You will have to restart after changing the port. +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
@@ -39,7 +82,7 @@
- +
@@ -55,15 +98,30 @@
-
- +
+
- Current users that are allowed to authenticate: - - +
+
+ Current users that are allowed to authenticate: +
+
+ +
+
+
+
@@ -74,7 +132,6 @@

- Please note, you will have to restart after changing these settings.
@@ -87,19 +144,11 @@
-@if (Model.Errored) -{ -
- - Please enter in a correct port number -
-} -