mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-16 02:02:55 -07:00
Finished the newsletter I think !wip
This commit is contained in:
parent
11442e2ea7
commit
a6aac93fe5
3 changed files with 81 additions and 62 deletions
|
@ -38,11 +38,11 @@ namespace Ombi.Notifications
|
||||||
AdditionalInformation = opts?.AdditionalInformation ?? string.Empty;
|
AdditionalInformation = opts?.AdditionalInformation ?? string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetupNewsletter(CustomizationSettings s, string username)
|
public void SetupNewsletter(CustomizationSettings s, OmbiUser username)
|
||||||
{
|
{
|
||||||
ApplicationUrl = (s?.ApplicationUrl.HasValue() ?? false) ? s.ApplicationUrl : string.Empty;
|
ApplicationUrl = (s?.ApplicationUrl.HasValue() ?? false) ? s.ApplicationUrl : string.Empty;
|
||||||
ApplicationName = string.IsNullOrEmpty(s?.ApplicationName) ? "Ombi" : s?.ApplicationName;
|
ApplicationName = string.IsNullOrEmpty(s?.ApplicationName) ? "Ombi" : s?.ApplicationName;
|
||||||
RequestedUser = username;
|
RequestedUser = username.UserName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Setup(NotificationOptions opts, ChildRequests req, CustomizationSettings s)
|
public void Setup(NotificationOptions opts, ChildRequests req, CustomizationSettings s)
|
||||||
|
|
|
@ -115,6 +115,8 @@ namespace Ombi.Schedule.Jobs.Ombi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!test)
|
||||||
|
{
|
||||||
// Get the users to send it to
|
// Get the users to send it to
|
||||||
var users = await _userManager.GetUsersInRoleAsync(OmbiRoles.RecievesNewsletter);
|
var users = await _userManager.GetUsersInRoleAsync(OmbiRoles.RecievesNewsletter);
|
||||||
if (!users.Any())
|
if (!users.Any())
|
||||||
|
@ -129,9 +131,14 @@ namespace Ombi.Schedule.Jobs.Ombi
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var html = LoadTemplate(body, template, customization, user.Alias);
|
var messageContent = ParseTemplate(template, customization, user);
|
||||||
|
var email = new NewsletterTemplate();
|
||||||
|
|
||||||
emailTasks.Add(_email.Send(new NotificationMessage { Message = html, Subject = template.Subject, To = user.Email }, emailSettings));
|
var html = email.LoadTemplate(messageContent.Subject, messageContent.Message, body, customization.Logo);
|
||||||
|
|
||||||
|
emailTasks.Add(_email.Send(
|
||||||
|
new NotificationMessage {Message = html, Subject = messageContent.Subject, To = user.Email},
|
||||||
|
emailSettings));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now add all of this to the Recently Added log
|
// Now add all of this to the Recently Added log
|
||||||
|
@ -191,6 +198,23 @@ namespace Ombi.Schedule.Jobs.Ombi
|
||||||
|
|
||||||
await Task.WhenAll(emailTasks.ToArray());
|
await Task.WhenAll(emailTasks.ToArray());
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var admins = await _userManager.GetUsersInRoleAsync(OmbiRoles.Admin);
|
||||||
|
foreach (var a in admins)
|
||||||
|
{
|
||||||
|
var messageContent = ParseTemplate(template, customization, a);
|
||||||
|
|
||||||
|
var email = new NewsletterTemplate();
|
||||||
|
|
||||||
|
var html = email.LoadTemplate(messageContent.Subject, messageContent.Message, body, customization.Logo);
|
||||||
|
|
||||||
|
await _email.Send(
|
||||||
|
new NotificationMessage { Message = html, Subject = messageContent.Subject, To = a.Email },
|
||||||
|
emailSettings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task Start()
|
public async Task Start()
|
||||||
{
|
{
|
||||||
|
@ -198,20 +222,14 @@ namespace Ombi.Schedule.Jobs.Ombi
|
||||||
await Start(newsletterSettings, false);
|
await Start(newsletterSettings, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string LoadTemplate(string body, NotificationTemplates template, CustomizationSettings settings, string username)
|
private NotificationMessageContent ParseTemplate(NotificationTemplates template, CustomizationSettings settings, OmbiUser username)
|
||||||
{
|
{
|
||||||
var email = new NewsletterTemplate();
|
|
||||||
|
|
||||||
var resolver = new NotificationMessageResolver();
|
var resolver = new NotificationMessageResolver();
|
||||||
var curlys = new NotificationMessageCurlys();
|
var curlys = new NotificationMessageCurlys();
|
||||||
|
|
||||||
curlys.SetupNewsletter(settings, username);
|
curlys.SetupNewsletter(settings, username);
|
||||||
|
|
||||||
var parsed = resolver.ParseMessage(template, curlys);
|
return resolver.ParseMessage(template, curlys);
|
||||||
|
|
||||||
var html = email.LoadTemplate(parsed.Subject, parsed.Message, body, settings.Logo);
|
|
||||||
|
|
||||||
return html;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<string> BuildHtml(IQueryable<PlexServerContent> plexContentToSend, IQueryable<EmbyContent> embyContentToSend)
|
private async Task<string> BuildHtml(IQueryable<PlexServerContent> plexContentToSend, IQueryable<EmbyContent> embyContentToSend)
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import { TesterService } from './../../services/applications/tester.service';
|
|
||||||
import { Component, OnInit } from "@angular/core";
|
import { Component, OnInit } from "@angular/core";
|
||||||
|
|
||||||
import { INewsletterNotificationSettings, NotificationType } from "../../interfaces";
|
import { INewsletterNotificationSettings, NotificationType } from "../../interfaces";
|
||||||
import { NotificationService } from "../../services";
|
import { NotificationService } from "../../services";
|
||||||
import { SettingsService } from "../../services";
|
import { SettingsService } from "../../services";
|
||||||
|
import { TesterService } from "./../../services/applications/tester.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
templateUrl: "./newsletter.component.html",
|
templateUrl: "./newsletter.component.html",
|
||||||
|
@ -28,7 +29,7 @@ export class NewsletterComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
public test() {
|
public test() {
|
||||||
this.testService.testNewsletter(this.settings).subscribe();
|
this.testService.newsletterTest(this.settings).subscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
public onSubmit() {
|
public onSubmit() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue