The last push before release (#2696)

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
Joe Milazzo 2024-02-07 14:03:30 -06:00 committed by GitHub
parent 2227dc354b
commit 033dc61d54
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 681 additions and 433 deletions

View file

@ -20,10 +20,11 @@ namespace API.Services;
internal class EmailOptionsDto
{
public IList<string> ToEmails { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public IList<KeyValuePair<string, string>> PlaceHolders { get; set; }
public required IList<string> ToEmails { get; set; }
public required string Subject { get; set; }
public required string Body { get; set; }
public required string Preheader { get; set; }
public IList<KeyValuePair<string, string>>? PlaceHolders { get; set; }
/// <summary>
/// Filenames to attach
/// </summary>
@ -81,7 +82,6 @@ public class EmailService : IEmailService
return result;
}
// TODO: Come back and update the template. We can't do it with the v0.8.0 release
var placeholders = new List<KeyValuePair<string, string>>
{
new ("{{Host}}", settings.HostName),
@ -91,8 +91,9 @@ public class EmailService : IEmailService
{
var emailOptions = new EmailOptionsDto()
{
Subject = "KavitaEmail Test",
Subject = "Kavita - Email Test",
Body = UpdatePlaceHolders(await GetEmailBody("EmailTest"), placeholders),
Preheader = "Kavita - Email Test",
ToEmails = new List<string>()
{
adminEmail
@ -127,6 +128,7 @@ public class EmailService : IEmailService
{
Subject = UpdatePlaceHolders("Your email has been changed on {{InvitingUser}}'s Server", placeholders),
Body = UpdatePlaceHolders(await GetEmailBody("EmailChange"), placeholders),
Preheader = UpdatePlaceHolders("Your email has been changed on {{InvitingUser}}'s Server", placeholders),
ToEmails = new List<string>()
{
data.EmailAddress
@ -182,6 +184,7 @@ public class EmailService : IEmailService
{
Subject = UpdatePlaceHolders("You've been invited to join {{InvitingUser}}'s Server", placeholders),
Body = UpdatePlaceHolders(await GetEmailBody("EmailConfirm"), placeholders),
Preheader = UpdatePlaceHolders("You've been invited to join {{InvitingUser}}'s Server", placeholders),
ToEmails = new List<string>()
{
data.EmailAddress
@ -207,6 +210,7 @@ public class EmailService : IEmailService
{
Subject = UpdatePlaceHolders("A password reset has been requested", placeholders),
Body = UpdatePlaceHolders(await GetEmailBody("EmailPasswordReset"), placeholders),
Preheader = "A password reset has been requested",
ToEmails = new List<string>()
{
dto.EmailAddress
@ -225,6 +229,7 @@ public class EmailService : IEmailService
var emailOptions = new EmailOptionsDto()
{
Subject = "Send file from Kavita",
Preheader = "File(s) sent from Kavita",
ToEmails = new List<string>()
{
data.DestinationEmail
@ -249,7 +254,8 @@ public class EmailService : IEmailService
// Inject the body into the base template
var fullBody = UpdatePlaceHolders(await GetEmailBody("base"), new List<KeyValuePair<string, string>>()
{
new ("{{Body}}", userEmailOptions.Body)
new ("{{Body}}", userEmailOptions.Body),
new ("{{Preheader}}", userEmailOptions.Preheader),
});
var body = new BodyBuilder
@ -320,7 +326,7 @@ public class EmailService : IEmailService
return body;
}
private static string UpdatePlaceHolders(string text, IList<KeyValuePair<string, string>> keyValuePairs)
private static string UpdatePlaceHolders(string text, IList<KeyValuePair<string, string>>? keyValuePairs)
{
if (string.IsNullOrEmpty(text) || keyValuePairs == null) return text;

View file

@ -531,8 +531,24 @@ public class ReaderService : IReaderService
if (!await _unitOfWork.AppUserProgressRepository.AnyUserProgressForSeriesAsync(seriesId, userId))
{
// I think i need a way to sort volumes last
return volumes.OrderBy(v => v.MinNumber.ToString(CultureInfo.InvariantCulture).AsDouble(), _chapterSortComparer).First().Chapters
.OrderBy(c => c.Number.AsFloat()).First();
var chapters = volumes.OrderBy(v => v.MinNumber, _chapterSortComparer).First().Chapters
.OrderBy(c => c.Number.AsFloat())
.ToList();
// If there are specials, then return the first Non-special
if (chapters.Exists(c => c.IsSpecial))
{
var firstChapter = chapters.FirstOrDefault(c => !c.IsSpecial);
if (firstChapter == null)
{
// If there is no non-special chapter, then return first chapter
return chapters[0];
}
return firstChapter;
}
// Else use normal logic
return chapters[0];
}
// Loop through all chapters that are not in volume 0

View file

@ -130,7 +130,7 @@ public class VersionUpdaterService : IVersionUpdaterService
{
if (update == null) return;
var updateVersion = new Version(update.CurrentVersion);
var updateVersion = new Version(update.UpdateVersion);
if (BuildInfo.Version < updateVersion)
{
@ -138,12 +138,6 @@ public class VersionUpdaterService : IVersionUpdaterService
await _eventHub.SendMessageAsync(MessageFactory.UpdateAvailable, MessageFactory.UpdateVersionEvent(update),
true);
}
else if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == Environments.Development)
{
_logger.LogWarning("Server is up to date. Current: {CurrentVersion}", BuildInfo.Version);
await _eventHub.SendMessageAsync(MessageFactory.UpdateAvailable, MessageFactory.UpdateVersionEvent(update),
true);
}
}