Make the EmojiConverter static

This commit is contained in:
Daan Boerlage 2021-11-13 16:26:14 +01:00
parent df6672305d
commit 5d6e5cf2ad
Signed by: daan
GPG key ID: FCE070E1E4956606
9 changed files with 20 additions and 56 deletions

View file

@ -1,9 +1,6 @@
using System;
using System.Threading.Tasks;
using Discord.Commands; using Discord.Commands;
using Geekbot.Bot.CommandPreconditions; using Geekbot.Bot.CommandPreconditions;
using Geekbot.Core; using Geekbot.Core;
using Geekbot.Core.Converters;
using Geekbot.Core.Database; using Geekbot.Core.Database;
using Geekbot.Core.ErrorHandling; using Geekbot.Core.ErrorHandling;
using Geekbot.Core.GuildSettingsManager; using Geekbot.Core.GuildSettingsManager;
@ -13,15 +10,13 @@ namespace Geekbot.Bot.Commands.User
{ {
public class Rank : GeekbotCommandBase public class Rank : GeekbotCommandBase
{ {
private readonly IEmojiConverter _emojiConverter;
private readonly IHighscoreManager _highscoreManager; private readonly IHighscoreManager _highscoreManager;
private readonly DatabaseContext _database; private readonly DatabaseContext _database;
public Rank(DatabaseContext database, IErrorHandler errorHandler, IEmojiConverter emojiConverter, IHighscoreManager highscoreManager, IGuildSettingsManager guildSettingsManager) public Rank(DatabaseContext database, IErrorHandler errorHandler, IHighscoreManager highscoreManager, IGuildSettingsManager guildSettingsManager)
: base(errorHandler, guildSettingsManager) : base(errorHandler, guildSettingsManager)
{ {
_database = database; _database = database;
_emojiConverter = emojiConverter;
_highscoreManager = highscoreManager; _highscoreManager = highscoreManager;
} }
@ -35,7 +30,7 @@ namespace Geekbot.Bot.Commands.User
{ {
try try
{ {
var res = new Geekbot.Commands.Rank(_database, _emojiConverter, _highscoreManager) var res = new Geekbot.Commands.Rank(_database, _highscoreManager)
.Run(typeUnformated, amount, season, Context.Guild.Id, Context.Guild.Name); .Run(typeUnformated, amount, season, Context.Guild.Id, Context.Guild.Name);
await ReplyAsync(res); await ReplyAsync(res);
} }

View file

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks;
using Discord; using Discord;
using Discord.Commands; using Discord.Commands;
using Geekbot.Core; using Geekbot.Core;
@ -16,11 +12,9 @@ namespace Geekbot.Bot.Commands.Utils.Corona
{ {
public class CoronaStats : GeekbotCommandBase public class CoronaStats : GeekbotCommandBase
{ {
private readonly IEmojiConverter _emojiConverter;
public CoronaStats(IErrorHandler errorHandler, IGuildSettingsManager guildSettingsManager, IEmojiConverter emojiConverter) : base(errorHandler, guildSettingsManager) public CoronaStats(IErrorHandler errorHandler, IGuildSettingsManager guildSettingsManager) : base(errorHandler, guildSettingsManager)
{ {
_emojiConverter = emojiConverter;
} }
[Command("corona", RunMode = RunMode.Async)] [Command("corona", RunMode = RunMode.Async)]
@ -54,7 +48,7 @@ namespace Geekbot.Bot.Commands.Utils.Corona
if (!string.IsNullOrEmpty(summary.Country)) if (!string.IsNullOrEmpty(summary.Country))
{ {
embedTitleBuilder.Append(" - "); embedTitleBuilder.Append(" - ");
embedTitleBuilder.Append(_emojiConverter.CountryCodeToEmoji(summary.Country)); embedTitleBuilder.Append(EmojiConverter.CountryCodeToEmoji(summary.Country));
} }
var eb = new EmbedBuilder var eb = new EmbedBuilder

View file

@ -1,6 +1,4 @@
using System; using Discord.Commands;
using System.Threading.Tasks;
using Discord.Commands;
using Geekbot.Core; using Geekbot.Core;
using Geekbot.Core.Converters; using Geekbot.Core.Converters;
using Geekbot.Core.ErrorHandling; using Geekbot.Core.ErrorHandling;
@ -9,13 +7,11 @@ namespace Geekbot.Bot.Commands.Utils
{ {
public class Emojify : TransactionModuleBase public class Emojify : TransactionModuleBase
{ {
private readonly IEmojiConverter _emojiConverter;
private readonly IErrorHandler _errorHandler; private readonly IErrorHandler _errorHandler;
public Emojify(IErrorHandler errorHandler, IEmojiConverter emojiConverter) public Emojify(IErrorHandler errorHandler)
{ {
_errorHandler = errorHandler; _errorHandler = errorHandler;
_emojiConverter = emojiConverter;
} }
[Command("emojify", RunMode = RunMode.Async)] [Command("emojify", RunMode = RunMode.Async)]
@ -24,7 +20,7 @@ namespace Geekbot.Bot.Commands.Utils
{ {
try try
{ {
var emojis = _emojiConverter.TextToEmoji(text); var emojis = EmojiConverter.TextToEmoji(text);
if (emojis.Length > 1999) if (emojis.Length > 1999)
{ {
await ReplyAsync("I can't take that much at once!"); await ReplyAsync("I can't take that much at once!");

View file

@ -1,6 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
using Geekbot.Core.Converters; using Geekbot.Core.Converters;
using Geekbot.Core.Database; using Geekbot.Core.Database;
@ -13,13 +10,11 @@ namespace Geekbot.Commands
public class Rank public class Rank
{ {
private readonly DatabaseContext _database; private readonly DatabaseContext _database;
private readonly IEmojiConverter _emojiConverter;
private readonly IHighscoreManager _highscoreManager; private readonly IHighscoreManager _highscoreManager;
public Rank(DatabaseContext database, IEmojiConverter emojiConverter, IHighscoreManager highscoreManager) public Rank(DatabaseContext database, IHighscoreManager highscoreManager)
{ {
_database = database; _database = database;
_emojiConverter = emojiConverter;
_highscoreManager = highscoreManager; _highscoreManager = highscoreManager;
} }
@ -84,7 +79,7 @@ namespace Geekbot.Commands
foreach (var (user, value) in highscoreUsers) foreach (var (user, value) in highscoreUsers)
{ {
replyBuilder.Append(highscorePlace < 11 replyBuilder.Append(highscorePlace < 11
? $"{_emojiConverter.NumberToEmoji(highscorePlace)} " ? $"{EmojiConverter.NumberToEmoji(highscorePlace)} "
: $"`{highscorePlace}.` "); : $"`{highscorePlace}.` ");
replyBuilder.Append(user.Username != null replyBuilder.Append(user.Username != null

View file

@ -1,12 +1,11 @@
using System.Collections; using System.Collections;
using System.Net.NetworkInformation;
using System.Text; using System.Text;
namespace Geekbot.Core.Converters namespace Geekbot.Core.Converters
{ {
public class EmojiConverter : IEmojiConverter public static class EmojiConverter
{ {
private readonly string[] NumberEmojiMap = private static readonly string[] NumberEmojiMap =
{ {
":zero:", ":zero:",
":one:", ":one:",
@ -20,7 +19,7 @@ namespace Geekbot.Core.Converters
":nine:" ":nine:"
}; };
public string NumberToEmoji(int number) public static string NumberToEmoji(int number)
{ {
if (number == 10) if (number == 10)
{ {
@ -36,7 +35,7 @@ namespace Geekbot.Core.Converters
return returnString.ToString(); return returnString.ToString();
} }
private readonly Hashtable TextEmojiMap = new Hashtable private static readonly Hashtable TextEmojiMap = new Hashtable
{ {
['A'] = ":regional_indicator_a: ", ['A'] = ":regional_indicator_a: ",
['B'] = ":b: ", ['B'] = ":b: ",
@ -82,7 +81,7 @@ namespace Geekbot.Core.Converters
[' '] = "" [' '] = ""
}; };
public string TextToEmoji(string text) public static string TextToEmoji(string text)
{ {
var letters = text.ToUpper().ToCharArray(); var letters = text.ToUpper().ToCharArray();
var returnString = new StringBuilder(); var returnString = new StringBuilder();
@ -94,7 +93,7 @@ namespace Geekbot.Core.Converters
return returnString.ToString(); return returnString.ToString();
} }
private readonly Hashtable RegionalIndicatorMap = new Hashtable() private static readonly Hashtable RegionalIndicatorMap = new Hashtable()
{ {
['A'] = new Rune(0x1F1E6), ['A'] = new Rune(0x1F1E6),
['B'] = new Rune(0x1F1E7), ['B'] = new Rune(0x1F1E7),
@ -124,7 +123,7 @@ namespace Geekbot.Core.Converters
['Z'] = new Rune(0x1F1FF) ['Z'] = new Rune(0x1F1FF)
}; };
public string CountryCodeToEmoji(string countryCode) public static string CountryCodeToEmoji(string countryCode)
{ {
var letters = countryCode.ToUpper().ToCharArray(); var letters = countryCode.ToUpper().ToCharArray();
var returnString = new StringBuilder(); var returnString = new StringBuilder();

View file

@ -1,9 +0,0 @@
namespace Geekbot.Core.Converters
{
public interface IEmojiConverter
{
string NumberToEmoji(int number);
string TextToEmoji(string text);
string CountryCodeToEmoji(string countryCode);
}
}

View file

@ -92,7 +92,6 @@ ServiceCollection RegisterServices()
var guildSettingsManager = new GuildSettingsManager(databaseInitializer.Initialize()); var guildSettingsManager = new GuildSettingsManager(databaseInitializer.Initialize());
var fortunes = new FortunesProvider(logger); var fortunes = new FortunesProvider(logger);
var levelCalc = new LevelCalc(); var levelCalc = new LevelCalc();
var emojiConverter = new EmojiConverter();
var mtgManaConverter = new MtgManaConverter(); var mtgManaConverter = new MtgManaConverter();
var wikipediaClient = new WikipediaClient(); var wikipediaClient = new WikipediaClient();
var randomNumberGenerator = new RandomNumberGenerator(); var randomNumberGenerator = new RandomNumberGenerator();
@ -104,7 +103,6 @@ ServiceCollection RegisterServices()
services.AddSingleton<IUserRepository>(userRepository); services.AddSingleton<IUserRepository>(userRepository);
services.AddSingleton<IGeekbotLogger>(logger); services.AddSingleton<IGeekbotLogger>(logger);
services.AddSingleton<ILevelCalc>(levelCalc); services.AddSingleton<ILevelCalc>(levelCalc);
services.AddSingleton<IEmojiConverter>(emojiConverter);
services.AddSingleton<IFortunesProvider>(fortunes); services.AddSingleton<IFortunesProvider>(fortunes);
services.AddSingleton<IMediaProvider>(mediaProvider); services.AddSingleton<IMediaProvider>(mediaProvider);
services.AddSingleton<IMtgManaConverter>(mtgManaConverter); services.AddSingleton<IMtgManaConverter>(mtgManaConverter);

View file

@ -11,13 +11,11 @@ namespace Geekbot.Web.Commands;
public class Rank : InteractionBase public class Rank : InteractionBase
{ {
private readonly DatabaseContext _database; private readonly DatabaseContext _database;
private readonly IEmojiConverter _emojiConverter;
private readonly IHighscoreManager _highscoreManager; private readonly IHighscoreManager _highscoreManager;
public Rank(DatabaseContext database, IEmojiConverter emojiConverter, IHighscoreManager highscoreManager) public Rank(DatabaseContext database, IHighscoreManager highscoreManager)
{ {
_database = database; _database = database;
_emojiConverter = emojiConverter;
_highscoreManager = highscoreManager; _highscoreManager = highscoreManager;
} }
@ -75,7 +73,7 @@ public class Rank : InteractionBase
var amountOption = interaction.Data.Options.Find(o => o.Name == Options.Amount); var amountOption = interaction.Data.Options.Find(o => o.Name == Options.Amount);
var seasonOption = interaction.Data.Options.Find(o => o.Name == Options.Season); var seasonOption = interaction.Data.Options.Find(o => o.Name == Options.Season);
var res = new Geekbot.Commands.Rank(_database, _emojiConverter, _highscoreManager) var res = new Geekbot.Commands.Rank(_database, _highscoreManager)
.Run( .Run(
counterTypeOption?.Value.GetString() ?? HighscoreTypes.messages.ToString(), counterTypeOption?.Value.GetString() ?? HighscoreTypes.messages.ToString(),
amountOption?.Value.GetInt32() ?? 10, amountOption?.Value.GetInt32() ?? 10,

View file

@ -51,8 +51,7 @@ namespace Tests.Core.Converters
[Theory, MemberData(nameof(NumberToEmojiTestData))] [Theory, MemberData(nameof(NumberToEmojiTestData))]
public void NumberToEmoji(string testName, NumberToEmojiTestDto testData) public void NumberToEmoji(string testName, NumberToEmojiTestDto testData)
{ {
var emojiConverter = new EmojiConverter(); var result = EmojiConverter.NumberToEmoji(testData.Number);
var result = emojiConverter.NumberToEmoji(testData.Number);
Assert.Equal(result, testData.Expected); Assert.Equal(result, testData.Expected);
} }
@ -86,8 +85,7 @@ namespace Tests.Core.Converters
[Theory, MemberData(nameof(TextToEmojiTestData))] [Theory, MemberData(nameof(TextToEmojiTestData))]
public void TextToEmoji(string testName, TextToEmojiTestDto testData) public void TextToEmoji(string testName, TextToEmojiTestDto testData)
{ {
var emojiConverter = new EmojiConverter(); var result = EmojiConverter.TextToEmoji(testData.Text);
var result = emojiConverter.TextToEmoji(testData.Text);
Assert.Equal(result, testData.Expected); Assert.Equal(result, testData.Expected);
} }
} }