Skip to content

Commit

Permalink
Fixed the mass email, it was only being set to users with the newslet…
Browse files Browse the repository at this point in the history
…ter feature #358
  • Loading branch information
tidusjar committed Feb 3, 2017
1 parent 29c8b45 commit 425522e
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 18 deletions.
2 changes: 1 addition & 1 deletion Ombi.Services/Interfaces/IRecentlyAdded.cs
Expand Up @@ -6,6 +6,6 @@ public interface IRecentlyAdded
{
void Execute(IJobExecutionContext context);
void RecentlyAddedAdminTest();
void Start();
void StartNewsLetter();
}
}
73 changes: 57 additions & 16 deletions Ombi.Services/Jobs/RecentlyAdded.cs
Expand Up @@ -67,8 +67,6 @@ public class RecentlyAdded : HtmlTemplateGenerator, IJob, IRecentlyAdded, IMassE
private IPlexApi Api { get; }
private TvMazeApi TvApi = new TvMazeApi();
private readonly TheMovieDbApi _movieApi = new TheMovieDbApi();
private const int MetadataTypeTv = 4;
private const int MetadataTypeMovie = 1;
private ISettingsService<PlexSettings> PlexSettings { get; }
private ISettingsService<EmailNotificationSettings> EmailSettings { get; }
private ISettingsService<NewletterSettings> NewsletterSettings { get; }
Expand All @@ -78,7 +76,7 @@ public class RecentlyAdded : HtmlTemplateGenerator, IJob, IRecentlyAdded, IMassE

private static readonly Logger Log = LogManager.GetCurrentClassLogger();

public void Start()
public void StartNewsLetter()
{
try
{
Expand All @@ -88,7 +86,7 @@ public void Start()
return;
}
JobRecord.SetRunning(true, JobNames.RecentlyAddedEmail);
Start(settings);
StartNewsLetter(settings);
}
catch (Exception e)
{
Expand All @@ -102,35 +100,33 @@ public void Start()
}
public void Execute(IJobExecutionContext context)
{
Start();
StartNewsLetter();
}

public void RecentlyAddedAdminTest()
{
Log.Debug("Starting Recently Added Newsletter Test");
var settings = NewsletterSettings.GetSettings();
Start(settings, true);
StartNewsLetter(settings, true);
}

public void MassEmailAdminTest(string html, string subject)
{
Log.Debug("Starting Mass Email Test");
var settings = NewsletterSettings.GetSettings();
var plexSettings = PlexSettings.GetSettings();
var template = new MassEmailTemplate();
var body = template.LoadTemplate(html);
Send(settings, body, plexSettings, true, subject);
SendMassEmail(body, subject, true);
}

public void SendMassEmail(string html, string subject)
{
Log.Debug("Starting Mass Email Test");
var settings = NewsletterSettings.GetSettings();
var plexSettings = PlexSettings.GetSettings();
var template = new MassEmailTemplate();
var body = template.LoadTemplate(html);
Send(settings, body, plexSettings, false, subject);
SendMassEmail(body, subject, false);
}

private void Start(NewletterSettings newletterSettings, bool testEmail = false)
private void StartNewsLetter(NewletterSettings newletterSettings, bool testEmail = false)
{
var sb = new StringBuilder();
var plexSettings = PlexSettings.GetSettings();
Expand Down Expand Up @@ -222,7 +218,7 @@ private void Start(NewletterSettings newletterSettings, bool testEmail = false)

string escapedHtml = new string(html.Where(c => !char.IsControl(c)).ToArray());
Log.Debug(escapedHtml);
Send(newletterSettings, escapedHtml, plexSettings, testEmail);
SendNewsletter(newletterSettings, escapedHtml, plexSettings, testEmail);
}

private void GenerateMovieHtml(List<RecentlyAddedChild> movies, PlexSettings plexSettings, StringBuilder sb)
Expand Down Expand Up @@ -457,9 +453,49 @@ private void GenerateTvHtml(List<Metadata> tv, PlexSettings plexSettings, String
sb.Append("</table><br /><br />");
}

private void Send(NewletterSettings newletterSettings, string html, PlexSettings plexSettings, bool testEmail = false, string subject = "New Content on Plex!")

private void SendMassEmail(string html, string subject, bool testEmail)
{
var settings = EmailSettings.GetSettings();

if (!settings.Enabled || string.IsNullOrEmpty(settings.EmailHost))
{
return;
}

var body = new BodyBuilder { HtmlBody = html, TextBody = "This email is only available on devices that support HTML." };

var message = new MimeMessage
{
Body = body.ToMessageBody(),
Subject = subject
};
Log.Debug("Created Plain/HTML MIME body");

if (!testEmail)
{
var users = UserHelper.GetUsers(); // Get all users
if (users != null)
{
foreach (var user in users)
{
if (!string.IsNullOrEmpty(user.EmailAddress))
{
message.Bcc.Add(new MailboxAddress(user.Username, user.EmailAddress)); // BCC everyone
}
}
}
}
message.Bcc.Add(new MailboxAddress(settings.EmailUsername, settings.RecipientEmail)); // Include the admin

message.From.Add(new MailboxAddress(settings.EmailUsername, settings.EmailSender));
SendMail(settings, message);
}

// TODO Emby
private void SendNewsletter(NewletterSettings newletterSettings, string html, bool testEmail = false, string subject = "New Content on Plex!")
{
Log.Debug("Entering Send");
Log.Debug("Entering SendNewsletter");
var settings = EmailSettings.GetSettings();

if (!settings.Enabled || string.IsNullOrEmpty(settings.EmailHost))
Expand Down Expand Up @@ -506,6 +542,11 @@ private void Send(NewletterSettings newletterSettings, string html, PlexSettings
message.Bcc.Add(new MailboxAddress(settings.EmailUsername, settings.RecipientEmail)); // Include the admin

message.From.Add(new MailboxAddress(settings.EmailUsername, settings.EmailSender));
SendMail(settings, message);
}

private void SendMail(EmailNotificationSettings settings, MimeMessage message)
{
try
{
using (var client = new SmtpClient())
Expand Down
2 changes: 1 addition & 1 deletion Ombi.UI/Modules/Admin/ScheduledJobsRunnerModule.cs
Expand Up @@ -142,7 +142,7 @@ private async Task<Response> ScheduleRun(string key)
}
if (key.Equals(JobNames.RecentlyAddedEmail, StringComparison.CurrentCultureIgnoreCase))
{
RecentlyAdded.Start();
RecentlyAdded.StartNewsLetter();
}
if (key.Equals(JobNames.FaultQueueHandler, StringComparison.CurrentCultureIgnoreCase))
{
Expand Down

0 comments on commit 425522e

Please sign in to comment.