feat(newsletter): Started to localize the newsletter (#4485)

* Abstract media servers content into interfaces

* Media server entities into abstract classes

* Abstract media server content repository

* First pass at newsletter refactoring

* Minor code clean up

* Attempt at abstracting repositories (WIP)

* Fixed cast issue

* Corrected the other properties

* A step towards newsletter refactoring

* Clean up leftovers

* Fix broken episodes db interaction

* Save absolute URL for Plex content

Let's be consistent with Emby and Jellyfin

* Fix broken integration with Plex libraries

* Fix error when multiple media servers configured

* Fix newsletter being sent if no movies or episodes

* Fix broken tests

* Remove unneccesary logs

* Allow for newsletter localization

* Generate file in English

* Fix unsubscribe text unlocalized by messy merge

* Fix indentation

Co-authored-by: tidusjar <tidusjar@gmail.com>
This commit is contained in:
sephrat 2022-02-01 21:32:13 +01:00 committed by GitHub
commit b5ec556243
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 496 additions and 11 deletions

View file

@ -18,6 +18,7 @@
<ItemGroup>
<ProjectReference Include="..\Ombi.Helpers\Ombi.Helpers.csproj" />
<ProjectReference Include="..\Ombi.I18n\Ombi.I18n.csproj" />
<ProjectReference Include="..\Ombi.Store\Ombi.Store.csproj" />
</ItemGroup>

View file

@ -1,7 +1,10 @@
namespace Ombi.Settings.Settings.Models
using Ombi.I18n.Resources;
using System.Globalization;
namespace Ombi.Settings.Settings.Models
{
public class OmbiSettings : Settings
{
private string defaultLanguageCode = "en";
public string BaseUrl { get; set; }
public bool CollectAnalyticData { get; set; }
public bool Wizard { get; set; }
@ -9,7 +12,14 @@
public bool DoNotSendNotificationsForAutoApprove { get; set; }
public bool HideRequestsUsers { get; set; }
public bool DisableHealthChecks { get; set; }
public string DefaultLanguageCode { get; set; } = "en";
public string DefaultLanguageCode
{
get => defaultLanguageCode;
set {
defaultLanguageCode = value;
Texts.Culture = new CultureInfo(value);
}
}
public bool AutoDeleteAvailableRequests { get; set; }
public int AutoDeleteAfterDays { get; set; }
public Branch Branch { get; set; }