Format dates in the !anime and !manga commands with the correct culture info
This commit is contained in:
parent
7ef0b6a319
commit
ed7748833a
1 changed files with 21 additions and 10 deletions
|
@ -1,24 +1,25 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using Discord;
|
using Discord;
|
||||||
using Discord.Commands;
|
using Discord.Commands;
|
||||||
|
using Geekbot.Core;
|
||||||
using Geekbot.Core.ErrorHandling;
|
using Geekbot.Core.ErrorHandling;
|
||||||
using Geekbot.Core.Extensions;
|
using Geekbot.Core.Extensions;
|
||||||
|
using Geekbot.Core.GuildSettingsManager;
|
||||||
using JikanDotNet;
|
using JikanDotNet;
|
||||||
|
|
||||||
namespace Geekbot.Bot.Commands.Integrations
|
namespace Geekbot.Bot.Commands.Integrations
|
||||||
{
|
{
|
||||||
public class Mal : ModuleBase
|
public class Mal : GeekbotCommandBase
|
||||||
{
|
{
|
||||||
private readonly IErrorHandler _errorHandler;
|
|
||||||
private readonly IJikan _client;
|
private readonly IJikan _client;
|
||||||
|
|
||||||
public Mal(IErrorHandler errorHandler)
|
public Mal(IErrorHandler errorHandler, IGuildSettingsManager guildSettingsManager) : base(errorHandler, guildSettingsManager)
|
||||||
{
|
{
|
||||||
_client = new Jikan();
|
_client = new Jikan();
|
||||||
_errorHandler = errorHandler;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("anime", RunMode = RunMode.Async)]
|
[Command("anime", RunMode = RunMode.Async)]
|
||||||
|
@ -41,8 +42,8 @@ namespace Geekbot.Bot.Commands.Integrations
|
||||||
eb.Title = anime.Title;
|
eb.Title = anime.Title;
|
||||||
eb.Description = description;
|
eb.Description = description;
|
||||||
eb.ImageUrl = anime.ImageURL;
|
eb.ImageUrl = anime.ImageURL;
|
||||||
eb.AddInlineField("Premiered", $"{anime.StartDate.Value.ToShortDateString()}");
|
eb.AddInlineField("Premiered", FormatDate(anime.StartDate));
|
||||||
eb.AddInlineField("Ended", anime.Airing ? "Present" : anime.EndDate.Value.ToShortDateString());
|
eb.AddInlineField("Ended", anime.Airing ? "Present" : FormatDate(anime.EndDate));
|
||||||
eb.AddInlineField("Episodes", anime.Episodes);
|
eb.AddInlineField("Episodes", anime.Episodes);
|
||||||
eb.AddInlineField("MAL Score", anime.Score);
|
eb.AddInlineField("MAL Score", anime.Score);
|
||||||
eb.AddInlineField("Type", anime.Type);
|
eb.AddInlineField("Type", anime.Type);
|
||||||
|
@ -57,7 +58,7 @@ namespace Geekbot.Bot.Commands.Integrations
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
await _errorHandler.HandleCommandException(e, Context);
|
await ErrorHandler.HandleCommandException(e, Context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,8 +82,8 @@ namespace Geekbot.Bot.Commands.Integrations
|
||||||
eb.Title = manga.Title;
|
eb.Title = manga.Title;
|
||||||
eb.Description = description;
|
eb.Description = description;
|
||||||
eb.ImageUrl = manga.ImageURL;
|
eb.ImageUrl = manga.ImageURL;
|
||||||
eb.AddInlineField("Premiered", $"{manga.StartDate.Value.ToShortDateString()}");
|
eb.AddInlineField("Premiered", FormatDate(manga.StartDate));
|
||||||
eb.AddInlineField("Ended", manga.Publishing ? "Present" : manga.EndDate.Value.ToShortDateString());
|
eb.AddInlineField("Ended", manga.Publishing ? "Present" : FormatDate(manga.EndDate));
|
||||||
eb.AddInlineField("Volumes", manga.Volumes);
|
eb.AddInlineField("Volumes", manga.Volumes);
|
||||||
eb.AddInlineField("Chapters", manga.Chapters);
|
eb.AddInlineField("Chapters", manga.Chapters);
|
||||||
eb.AddInlineField("MAL Score", manga.Score);
|
eb.AddInlineField("MAL Score", manga.Score);
|
||||||
|
@ -97,8 +98,18 @@ namespace Geekbot.Bot.Commands.Integrations
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
await _errorHandler.HandleCommandException(e, Context);
|
await ErrorHandler.HandleCommandException(e, Context);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string FormatDate(DateTime? dateTime)
|
||||||
|
{
|
||||||
|
if (!dateTime.HasValue)
|
||||||
|
{
|
||||||
|
return DateTime.MinValue.ToString("d", Thread.CurrentThread.CurrentUICulture);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dateTime.Value.ToString("d", Thread.CurrentThread.CurrentUICulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue