public void Can_Parse_Emojis_From_Text() { var config = new ConfigurationBuilder() .AddInMemoryCollection(new[] { new KeyValuePair <string, string>( "EmojiData:Url", "./emoji.json") }).Build(); var emojiParser = new EmojiParser(config); emojiParser.Initialize(); var sampleTweetJson = File.ReadAllText("./sample_timeline.json"); var sampleTweetObj = JObject.Parse(sampleTweetJson); var sampleTweets = sampleTweetObj["data"]?.Children(); var actual = new List <IEnumerable <Emoji> >(); foreach (var sampleTweet in sampleTweets) { var text = sampleTweet.Value <string>("text"); var actualResult = emojiParser.Parse(text); Assert.IsNotNull(actualResult); actual.Add(actualResult); } Assert.IsTrue(actual.ElementAt(0).Count() == 1); Assert.IsTrue(actual.ElementAt(1).Count() == 1); Assert.IsTrue(actual.ElementAt(2).Count() == 2); // Should be 3 as one appears twice... Assert.IsTrue(actual.ElementAt(3).Count() == 3); }
public void TestReplaceEmojis_Double_NotInList() { var list = new List <string>(); var parser = new EmojiParser(list, x => GetIcon(x)); var input = Char.ConvertFromUtf32(0x1f4a8) + Char.ConvertFromUtf32(0x1f4a9); var output = parser.ReplaceEmojis(input); Assert.AreEqual(input, output); }
public WndShortcutEditor(string title = null, string content = null, string code = null, string imageName = null) { this._isSubmit = false; this.InitializeComponent(); this._eParser = new EmojiParser(); this._data = new VdWndShortcutEditor(content, code, this); this.ShowImage(imageName); this.tboxQuestion.Text = (title ?? ""); Loaded += this.WndShortcutEditor_Loaded; }
public void TestReplaceEmojis_List1() { var list = new List <string>() { "1f4aa" }; var parser = new EmojiParser(list, x => GetIcon(x)); var input = "abcde"; var output = parser.ReplaceEmojis(input); Assert.AreEqual(input, output); }
public void TestReplaceEmojis_Double_InList2() { var list = new List <string>() { "1f4aa", "1f4aa_1f3fb" }; var parser = new EmojiParser(list, x => GetIcon(x)); var input = Char.ConvertFromUtf32(0x1f4aa) + Char.ConvertFromUtf32(0x1f3fb); var output = parser.ReplaceEmojis(input); Assert.AreEqual("ICON(1f4aa_1f3fb)", output); }
public void TestReplaceEmojis_List2() { var list = new List <string>() { "1f4aa" }; var parser = new EmojiParser(list, x => GetIcon(x)); var input = "abcdef" + Char.ConvertFromUtf32(0x1f4aa) + "GHIJKLM"; var output = parser.ReplaceEmojis(input); Assert.AreEqual("abcdefICON(1f4aa)GHIJKLM", output); }
static WordSpliter() { _ipParser = new IpParser(); _arabParser = new ArabNumberParser(); _chNumberParser = new ChineseNumberParser(); _emojiParser = EmojiParser.Parser; _emailParser = new EmailParser(); _englishParser = new EnglishWordParser(); _goodsParser = new GoodsUrlParser(); _urlParser = new UrlParser(); _chineseParser = new ChineseWordParser(); }
public void TestReplaceEmojis_Single_InList1() { var list = new List <string>() { "1f55e" }; var parser = new EmojiParser(list, x => GetIcon(x)); var ch = Char.ConvertFromUtf32(0x1f55e); var input = "" + ch; var output = parser.ReplaceEmojis(input); Assert.AreEqual("ICON(1f55e)", output); }
public void TestReplaceEmojis_NormalCharAndEmoji() { // # and 0x20e3 will result in 0023-20e3 (#=0023) var list = new List <string>() { "0023_20e3" }; var parser = new EmojiParser(list, x => GetIcon(x)); var input = "#" + Char.ConvertFromUtf32(0x20e3); var output = parser.ReplaceEmojis(input); Assert.AreEqual("ICON(0023_20e3)", output); }
public void Can_Load_Emojis_From_Url() { var config = new ConfigurationBuilder() .AddInMemoryCollection(new[] { new KeyValuePair <string, string>( "EmojiData:Url", "https://cdn.jsdelivr.net/npm/[email protected]/emoji.json") }).Build(); var emojiParser = new EmojiParser(config); emojiParser.Initialize(); Assert.IsNotNull(emojiParser.AvailableEmojis); Assert.IsTrue(emojiParser.AvailableEmojis.Count > 0); }
public void Can_Load_Emojis_From_File() { var config = new ConfigurationBuilder() .AddInMemoryCollection(new[] { new KeyValuePair <string, string>( "EmojiData:Url", "./emoji.json") }).Build(); var emojiParser = new EmojiParser(config); emojiParser.Initialize(); Assert.IsNotNull(emojiParser.AvailableEmojis); Assert.IsTrue(emojiParser.AvailableEmojis.Count > 0); }
private void AddDayElement(List <ScrollViewer> allViews, CalendarEvent e, bool prependTime = false) { var parsedEmoji = EmojiParser.GetCodepoints(e.Name); var strippedName = string.Join("", parsedEmoji.SourceSplit); if (!_dateAndListViewNumbers.Contains(e.StartDate.Date)) { return; } var list = allViews[_dateAndListViewNumbers.IndexOf(e.StartDate.Date)]?.Content as ListView; list?.Items?.Add(new CalendarListItemViewModel { EventId = e.Id, Name = prependTime ? $"{e.StartDate:hh:mm} - {strippedName}" : strippedName, IconUrl = parsedEmoji.Codepoints.Any() ? $"Assets\\{parsedEmoji.Codepoints.First()}.png" : "Assets\\1f4c5.png" });
public static void UpdateEmojiReplacements(string inputString, EmojiConfig config, System.Action <string, int> onEmojiChar) { if (!string.IsNullOrEmpty(inputString)) { inputString = EmojiParser.ParseEmoji(inputString); int i = 0; while (i < inputString.Length) { string singleChar = inputString.Substring(i, 1); if (singleChar.Equals("[")) { int endIndex = inputString.IndexOf("]", i); if (endIndex > i) { string emojiCode = inputString.Substring(i, endIndex - i + 1); int emojiIndex; if (config.map.TryGetValue(emojiCode.Substring(1, emojiCode.Length - 2), out emojiIndex)) { onEmojiChar(emojiCode, emojiIndex); i += emojiCode.Length; } else { onEmojiChar(singleChar, -1); i++; } } else { onEmojiChar(singleChar, -1); i++; } } else { onEmojiChar(singleChar, -1); i++; } } } }
public BookCreator(string inputDir, string outputDir, string emojiInputDir) { var emojiList = ReadEmojiList(emojiInputDir); _emojiInputDir = emojiInputDir; _emojis = new EmojiParser(emojiList, x => GetEmojiPath(x)); _header = File.ReadAllText("header.tex.tmpl"); _footer = File.ReadAllText("footer.tex.tmpl"); InputDir = inputDir; OutputDir = outputDir; ChatDir = Path.Combine(InputDir, "chat"); ConfigDir = Path.Combine(InputDir, "config"); ImageDir = ChatDir; ImagePoolDir = null; EmojiOutputDir = Path.Combine(OutputDir, "emojis"); Directory.CreateDirectory(EmojiOutputDir); }
private void Page_Loaded(object sender, RoutedEventArgs e) { var _compositor = GetVisual(MainGrid).Compositor; var animation = _compositor.CreateVector3KeyFrameAnimation(); animation.InsertKeyFrame(1.0f, new Vector3(200.0f, 200.0f, 0.0f)); animation.Duration = TimeSpan.FromSeconds(1); animation.Direction = Windows.UI.Composition.AnimationDirection.Alternate; animation.IterationBehavior = AnimationIterationBehavior.Forever; //Winston.StartAnimation("Offset", animation); var winstonBrush = _compositor.CreateSurfaceBrush(); var _loadedSurface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/winston.png")); winstonBrush.Surface = _loadedSurface; var visual = _compositor.CreateSpriteVisual(); //visual.Brush = winstonBrush; visual.Brush = _compositor.CreateColorBrush(Color.FromArgb(255, 255, 0, 0)); visual.Size = new Vector2(200, 200); //Compositor _compositor; ContainerVisual _container; SpriteVisual _colorVisual1, _colorVisual2; CompositionColorBrush _blackBrush, _greenBrush; //_compositor = Window.Current.Compositor; _container = _compositor.CreateContainerVisual(); _blackBrush = _compositor.CreateColorBrush(Colors.Black); _colorVisual1 = _compositor.CreateSpriteVisual(); _colorVisual1.Brush = _blackBrush; _colorVisual1.Size = new Vector2(156, 156); _colorVisual1.Offset = new Vector3(0, 0, 0); _container.Children.InsertAtBottom(_colorVisual1); _greenBrush = _compositor.CreateColorBrush(Color.FromArgb(0xff, 0x9A, 0xCD, 0x32)); _colorVisual2 = _compositor.CreateSpriteVisual(); _colorVisual2.Brush = _greenBrush; _colorVisual2.Size = new Vector2(150, 150); _colorVisual2.Offset = new Vector3(3, 3, 0); _container.Children.InsertAtBottom(_colorVisual2); GetVisual(MainGrid).Clip = _compositor.CreateInsetClip(0, 0, 0, 0); //visual.StartAnimation("Offset", animation); // -------------------- // add all of the items... //var input = "Holy 🎈 if these are proper emojis, I'll be a curious 🦊!"; var input = "WE HAVE 🎨🖼 COOL 😍🥰😎💩🦊🦊🦊🦊💕❤💋😘😚 emojis!"; var result = EmojiParser.GetCodepoints(input); var titleElements = new List <UIElement>(); var a = result.Codepoints.ToList(); var b = result.SourceSplit.ToList(); while (a.Any() || b.Any()) { if (b.Any()) { titleElements.Add(new TextBlock { Text = b.First(), VerticalAlignment = VerticalAlignment.Center }); b.RemoveAt(0); } if (a.Any()) { Uri uri = new Uri($"ms-appx:///Assets/{a.First()}.png"); BitmapImage imgSource = new BitmapImage(uri); titleElements.Add(new Image { Source = imgSource, Width = 20, Height = 20, VerticalAlignment = VerticalAlignment.Center }); a.RemoveAt(0); } } //Uri uri = new Uri("ms-appx:///Assets/1f98a.png"); //BitmapImage imgSource = new BitmapImage(uri); //new TextBlock { Text = "Hello world ", VerticalAlignment = VerticalAlignment.Center }, //new Image { Source = imgSource, Width = 20, Height = 20, VerticalAlignment = VerticalAlignment.Center }, //new TextBlock { Text = " eyy.", VerticalAlignment = VerticalAlignment.Center } foreach (var element in titleElements) { A.Children.Add(element); } }