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);
        }
Beispiel #3
0
 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);
        }
Beispiel #7
0
 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"
            });
Beispiel #13
0
        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++;
                    }
                }
            }
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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);
            }
        }