namespace Nuuru.Server.Constants
{
///
/// Built-in emote names for reactions and BBCode parsing.
///
public static class Emotes
{
public static readonly IReadOnlyList Valid = new List
{
"thumbsup", "thumbsdown", "gem", "coal",
"wholesome", "sad", "neutral", "informative", "cool", "looking", "brainlet", "concerned", "nailbiter", "fact", "tsmt",
"holdit", "horny", "coomer", "irritated", "itsover", "disgusted", "sick", "marge", "meds", "schizo", "slf", "projecting",
"smug", "sob", "flushed", "pleading", "cheeky", "heartbroken", "yum", "spade", "keyed", "locked", "soyboy", "fruity", "surprised", "suspicious", "thinking", "unamused", "tired", "sleeping", "jamming", "tism", "turk", "snca",
"zany", "kaching", "cat", "dog", "hot", "cold", "true", "false", "ack", "poon", "rage", "fuming", "chang",
"mexi", "mutt", "euro", "esl", "kumar", "tyrone", "hunk", "jarty", "though", "soytan", "glowie", "alien", "caca", "calm", "reddit", "angel", "imp", "clittycel", "omgsisa", "skull", "robot", "steiner", "feelsgoodman", "kek", "jsid", "dreamy", "uncomfortable", "coping", "serious", "giga", "unc", "nophono"
};
private static readonly Dictionary Values = new(StringComparer.OrdinalIgnoreCase)
{
// Positive (+1)
["thumbsup"] = 1, ["gem"] = 1, ["wholesome"] = 1, ["fact"] = 1, ["tsmt"] = 1,
["keyed"] = 1, ["hot"] = 1, ["true"] = 1, ["feelsgoodman"] = 1, ["kek"] = 1,
["dreamy"] = 1, ["giga"] = 1, ["hunk"] = 1, ["jamming"] = 1, ["calm"] = 1,
["cat"] = 1, ["dog"] = 1,
// Negative (-1)
["thumbsdown"] = -1, ["coal"] = -1, ["brainlet"] = -1, ["disgusted"] = -1,
["itsover"] = -1, ["sick"] = -1, ["false"] = -1, ["ack"] = -1, ["rage"] = -1,
["fuming"] = -1, ["skull"] = -1,
};
public static bool IsBuiltIn(string emoteName) => Valid.Contains(emoteName, StringComparer.OrdinalIgnoreCase);
public static IReadOnlyList GetAll() => Valid;
public static int GetValue(string emoteName) =>
Values.TryGetValue(emoteName, out var value) ? value : 0;
}
}