diff --git a/PlexRequests.Core/SettingModels/PlexRequestSettings.cs b/PlexRequests.Core/SettingModels/PlexRequestSettings.cs index 078798b3e..65afd1559 100644 --- a/PlexRequests.Core/SettingModels/PlexRequestSettings.cs +++ b/PlexRequests.Core/SettingModels/PlexRequestSettings.cs @@ -60,6 +60,9 @@ namespace PlexRequests.Core.SettingModels public bool DisableTvRequestsBySeason { get; set; } public bool SendRecentlyAddedEmail { get; set; } + public string CustomDonationUrl { get; set; } + public bool EnableCustomDonationUrl { get; set; } + public string CustomDonationMessage { get; set; } /// /// The CSS name of the theme we want /// diff --git a/PlexRequests.Services/Jobs/RecentlyAdded.cs b/PlexRequests.Services/Jobs/RecentlyAdded.cs index 3a744bb6b..e5b0cb702 100644 --- a/PlexRequests.Services/Jobs/RecentlyAdded.cs +++ b/PlexRequests.Services/Jobs/RecentlyAdded.cs @@ -197,10 +197,10 @@ namespace PlexRequests.Services.Jobs string.IsNullOrEmpty(parentMetaData.Directory.Summary) ? info.summary : parentMetaData.Directory.Summary); // Episode Summary sb.Append(""); sb.Append("
"); sb.Append("
"); sb.Append("
"); + sb.Append(""); } sb.Append("

"); } diff --git a/PlexRequests.UI/Modules/DonationLinkModule.cs b/PlexRequests.UI/Modules/DonationLinkModule.cs new file mode 100644 index 000000000..9ede62e41 --- /dev/null +++ b/PlexRequests.UI/Modules/DonationLinkModule.cs @@ -0,0 +1,52 @@ +using System; +using System.Threading.Tasks; + +using Nancy; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using NLog; + +using PlexRequests.Core; +using PlexRequests.Core.SettingModels; +using PlexRequests.Helpers; +using PlexRequests.UI.Models; + +namespace PlexRequests.UI.Modules +{ + public class DonationLinkModule : BaseAuthModule + { + public DonationLinkModule(ICacheProvider provider, ISettingsService pr) : base("customDonation", pr) + { + Cache = provider; + + Get["/", true] = async (x, ct) => await GetCustomDonationUrl(pr); + } + + private ICacheProvider Cache { get; } + + private static Logger Log = LogManager.GetCurrentClassLogger(); + + private async Task GetCustomDonationUrl(ISettingsService pr) + { + PlexRequestSettings settings = await pr.GetSettingsAsync(); + try + { + if (settings.EnableCustomDonationUrl) + { + return Response.AsJson(new { url = settings.CustomDonationUrl, message = settings.CustomDonationMessage }); + } + else + { + return Response.AsJson(new { url = settings.CustomDonationUrl, message = settings.CustomDonationMessage }); + } + } + catch (Exception e) + { + Log.Warn("Exception Thrown when attempting to check the custom donation url"); + Log.Warn(e); + return Response.AsJson(new { url = settings.CustomDonationUrl, message = settings.CustomDonationMessage }); + } + } + } + +} diff --git a/PlexRequests.UI/PlexRequests.UI.csproj b/PlexRequests.UI/PlexRequests.UI.csproj index 1df11b208..bd88121f2 100644 --- a/PlexRequests.UI/PlexRequests.UI.csproj +++ b/PlexRequests.UI/PlexRequests.UI.csproj @@ -248,6 +248,7 @@ + diff --git a/PlexRequests.UI/Resources/UI.resx b/PlexRequests.UI/Resources/UI.resx index 4f23fce97..883e20be1 100644 --- a/PlexRequests.UI/Resources/UI.resx +++ b/PlexRequests.UI/Resources/UI.resx @@ -443,4 +443,7 @@ View In Plex + + Donate to Library Maintainer + \ No newline at end of file diff --git a/PlexRequests.UI/Resources/UI1.Designer.cs b/PlexRequests.UI/Resources/UI1.Designer.cs index 6cd282c32..acb53c9bb 100644 --- a/PlexRequests.UI/Resources/UI1.Designer.cs +++ b/PlexRequests.UI/Resources/UI1.Designer.cs @@ -114,6 +114,15 @@ namespace PlexRequests.UI.Resources { } } + /// + /// Looks up a localized string similar to Donate to Library Maintainer. + /// + public static string Custom_Donation_Default { + get { + return ResourceManager.GetString("Custom_Donation_Default", resourceCulture); + } + } + /// /// Looks up a localized string similar to Issue. /// diff --git a/PlexRequests.UI/Views/Admin/Settings.cshtml b/PlexRequests.UI/Views/Admin/Settings.cshtml index 386b209c8..8ed022ee8 100644 --- a/PlexRequests.UI/Views/Admin/Settings.cshtml +++ b/PlexRequests.UI/Views/Admin/Settings.cshtml @@ -273,10 +273,38 @@ } +
+
+ + @if (Model.EnableCustomDonationUrl) + { + + + } + else + { + + } +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ -

A comma separated list of users whose requests do not require approval (These users also do not have a request limit).

+ +

A comma separated list of users whose requests do not require approval (These users also do not have a request limit).

diff --git a/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml b/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml index 6692f6f74..8a1826a07 100644 --- a/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml +++ b/PlexRequests.UI/Views/Shared/Partial/_Navbar.cshtml @@ -1,6 +1,7 @@ @using Nancy.Security @using Nancy.Session @using Nancy; +@using PlexRequests.Core.SettingModels @using PlexRequests.UI.Helpers @using PlexRequests.UI.Models @using PlexRequests.UI.Resources @@ -38,10 +39,11 @@ {
  • } +
    + \ No newline at end of file diff --git a/README.md b/README.md index 7343239f6..b99ba072d 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ Supported notifications: * Pushbullet * Pushover * Slack +* Weekly Recently Added email notification to all of your Plex Users! # Preview diff --git a/appveyor.yml b/appveyor.yml index 6c9824580..7282f9b16 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,9 +3,9 @@ configuration: Release assembly_info: patch: true file: '**\AssemblyInfo.*' - assembly_version: '1.9.2' + assembly_version: '1.9.3' assembly_file_version: '{version}' - assembly_informational_version: '1.9.2' + assembly_informational_version: '1.9.3' before_build: - cmd: appveyor-retry nuget restore build: