using ZelWiki.Engine.Library; using ZelWiki.Engine.Library.Interfaces; using ZelWiki.Models; namespace ZelWiki.Engine.Implementation { /// /// Handles wiki emojis. /// public class EmojiHandler : IEmojiHandler { /// /// Handles an emoji instruction. /// /// Reference to the wiki state object /// The lookup key for the given emoji. /// The desired 1-100 scale factor for the emoji. public HandlerResult Handle(IZelEngineState state, string key, int scale) { var emoji = GlobalConfiguration.Emojis.FirstOrDefault(o => o.Shortcut == key); if (GlobalConfiguration.Emojis.Exists(o => o.Shortcut == key)) { if (scale != 100 && scale > 0 && scale <= 500) { var emojiImage = $"\"{emoji?.Name}\""; return new HandlerResult(emojiImage); } else { var emojiImage = $"\"{emoji?.Name}\""; return new HandlerResult(emojiImage); } } else { return new HandlerResult(key) { Instructions = [Constants.HandlerResultInstruction.DisallowNestedProcessing] }; } } } }