EventEarlyNotification timestamp bugfix and other changes (#84)

This PR fixes EventEarlyNotification timestamp not displaying correctly
and also has some other changes:
- Add xmldocs for `/settingslist`'s `page` option in
SettingsCommandGroup.cs
- Add option description for `index` for `/delreminder`
- Some corrections of grammatical errors in Messages.tt-ru.resx
- Fix `ArgumentOutOfRangeException` in `/settingslist` that appears if
the user uses a negative integer in `page`

---------

Signed-off-by: Macintosh II <95250141+mctaylors@users.noreply.github.com>
Co-authored-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
Macintxsh 2023-08-12 23:19:07 +03:00 committed by GitHub
parent d0d663d2bb
commit 87dbb07dec
Signed by: GitHub
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 20 deletions

View file

@ -253,10 +253,10 @@
<value>оъмъомоъемъъео((((</value>
</data>
<data name="EventCancelled" xml:space="preserve">
<value>движуха "{0}" отменен!</value>
<value>движуха "{0}" отменена!</value>
</data>
<data name="EventCompleted" xml:space="preserve">
<value>движуха "{0}" завершен!</value>
<value>движуха "{0}" завершена!</value>
</data>
<data name="Ever" xml:space="preserve">
<value>всегда</value>

View file

@ -153,7 +153,9 @@ public class RemindCommandGroup : CommandGroup
[RequireContext(ChannelContext.Guild)]
[UsedImplicitly]
public async Task<Result> ExecuteDeleteReminderAsync(
[MinValue(0)] int index)
[Description("Index of reminder to delete")]
[MinValue(0)]
int index)
{
if (!_context.TryGetContextIDs(out var guildId, out _, out var userId))
{

View file

@ -62,8 +62,9 @@ public class SettingsCommandGroup : CommandGroup
}
/// <summary>
/// A slash command that lists current per-guild GuildSettings.
/// A slash command that sends a page from the list of current GuildSettings.
/// </summary>
/// <param name="page">The number of the page to send.</param>
/// <returns>
/// A feedback sending result which may or may not have succeeded.
/// </returns>
@ -75,7 +76,9 @@ public class SettingsCommandGroup : CommandGroup
[Description("Shows settings list for this server")]
[UsedImplicitly]
public async Task<Result> ExecuteSettingsListAsync(
[Description("Settings list page")] int page)
[Description("Settings list page")]
[MinValue(1)]
int page)
{
if (!_context.TryGetContextIDs(out var guildId, out _, out _))
{

View file

@ -19,18 +19,15 @@ public sealed class ScheduledEventUpdateService : BackgroundService
private readonly IDiscordRestGuildScheduledEventAPI _eventApi;
private readonly GuildDataService _guildData;
private readonly ILogger<ScheduledEventUpdateService> _logger;
private readonly IDiscordRestUserAPI _userApi;
private readonly UtilityService _utility;
public ScheduledEventUpdateService(IDiscordRestChannelAPI channelApi, IDiscordRestGuildScheduledEventAPI eventApi,
GuildDataService guildData, ILogger<ScheduledEventUpdateService> logger, IDiscordRestUserAPI userApi,
UtilityService utility)
GuildDataService guildData, ILogger<ScheduledEventUpdateService> logger, UtilityService utility)
{
_channelApi = channelApi;
_eventApi = eventApi;
_guildData = guildData;
_logger = logger;
_userApi = userApi;
_utility = utility;
}
@ -345,12 +342,6 @@ public sealed class ScheduledEventUpdateService : BackgroundService
private async Task<Result> SendEarlyEventNotificationAsync(
IGuildScheduledEvent scheduledEvent, GuildData data, CancellationToken ct)
{
var currentUserResult = await _userApi.GetCurrentUserAsync(ct);
if (!currentUserResult.IsDefined(out var currentUser))
{
return Result.FromError(currentUserResult);
}
var contentResult = await _utility.GetEventNotificationMentions(
scheduledEvent, data.Settings, ct);
if (!contentResult.IsDefined(out var content))
@ -359,11 +350,10 @@ public sealed class ScheduledEventUpdateService : BackgroundService
}
var earlyResult = new EmbedBuilder()
.WithSmallTitle(
.WithDescription(
string.Format(Messages.EventEarlyNotification, scheduledEvent.Name,
Markdown.Timestamp(scheduledEvent.ScheduledStartTime, TimestampStyle.RelativeTime)), currentUser)
Markdown.Timestamp(scheduledEvent.ScheduledStartTime, TimestampStyle.RelativeTime)))
.WithColour(ColorsList.Default)
.WithCurrentTimestamp()
.Build();
if (!earlyResult.IsDefined(out var earlyBuilt))