do not attempt to de-pluralize if you don't have to. e.g., the currency ILS

This commit is contained in:
Adam R Grey 2023-04-15 08:06:03 -04:00
parent f975beb6e9
commit 94ae81909b
2 changed files with 18 additions and 10 deletions

View File

@ -16,7 +16,11 @@ namespace silverworker_discord.Conversion
{
public static class Converter
{
public static string DebugInfo(){
var convertibles = knownConversions.Select(kc => kc.Item1).Union(knownConversions.Select(kc => kc.Item2)).Union(
knownAliases.Keys.SelectMany(k => k)).Distinct();
return $"{convertibles.Count()} convertibles; {string.Join(", ", convertibles)}";
}
private delegate decimal Convert1Way(decimal input);
private static string currencyPath;
private static ExchangePairs currencyConf = null;
@ -82,6 +86,7 @@ namespace silverworker_discord.Conversion
{
knownAliases.Add(new List<string>() { rate.Key.ToLower() }, rate.Key);
AddLinearPair(currencyConf.Base, rate.Key, rate.Value);
Console.WriteLine($"{rate.Key.ToLower()} alias of {rate.Key}");
}
}
}
@ -133,15 +138,9 @@ namespace silverworker_discord.Conversion
}
private static string normalizeUnit(string unit)
{
if(string.IsNullOrWhiteSpace(unit))
return null;
var normalizedUnit = unit.ToLower();
if (normalizedUnit.EndsWith("es"))
{
normalizedUnit = normalizedUnit.Substring(0, normalizedUnit.Length - 2);
}
else if (normalizedUnit.EndsWith('s'))
{
normalizedUnit = normalizedUnit.Substring(0, normalizedUnit.Length - 1);
}
if (knownConversions.FirstOrDefault(c => c.Item1 == normalizedUnit || c.Item2 == normalizedUnit) != null)
{
return normalizedUnit;
@ -154,6 +153,14 @@ namespace silverworker_discord.Conversion
return knownAliases[key];
}
}
if (normalizedUnit.EndsWith("es"))
{
return normalizeUnit(normalizedUnit.Substring(0, normalizedUnit.Length - 2));
}
else if (normalizedUnit.EndsWith('s'))
{
return normalizeUnit(normalizedUnit.Substring(0, normalizedUnit.Length - 1));
}
return null;
}
private static IEnumerable<string> exhaustiveBreadthFirst(string dest, IEnumerable<string> currentPath)

View File

@ -211,7 +211,8 @@ namespace silverworker_discord
}
if (Regex.IsMatch(msgText, "!pulse ?check\\b"))
{
message.Channel.SendFileAsync("assets/ekgblip.png");
//message.Channel.SendFileAsync("assets/ekgblip.png");
Console.WriteLine(Conversion.Converter.DebugInfo());
}
if (msgText.Contains("cognitive dissonance") == true)
{